This commit was manufactured by cvs2svn to create tag 'v20080407-2135'.

Sprout from master 2008-04-07 23:06:32 UTC Susan Franklin <sfranklin> 'Bug 224891 - [ui] Consider not using the word "feature" in p2 UI'
Cherrypick from master 2008-03-10 20:37:24 UTC Pascal Rapicault <prapicau> 'add sat4j':
    bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch
Delete:
    bundles/ie.wombat.jbdiff.test/.classpath
    bundles/ie.wombat.jbdiff.test/.project
    bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs
    bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs
    bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF
    bundles/ie.wombat.jbdiff.test/build.properties
    bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java
    bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java
    bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe
    bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe
    bundles/ie.wombat.jbdiff.test/testData/null.data
    bundles/ie.wombat.jbdiff.test/testData/one.data
    bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data
    bundles/ie.wombat.jbdiff.test/testData/onehundred.data
    bundles/ie.wombat.jbdiff.test/testData/onehundredX.data
    bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar
    bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar
    bundles/ie.wombat.jbdiff/.classpath
    bundles/ie.wombat.jbdiff/.project
    bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs
    bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs
    bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs
    bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
    bundles/ie.wombat.jbdiff/about.html
    bundles/ie.wombat.jbdiff/build.properties
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java
    bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt
    bundles/org.eclipse.equinox.frameworkadmin.equinox/.classpath
    bundles/org.eclipse.equinox.frameworkadmin.equinox/.project
    bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.frameworkadmin.equinox/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.frameworkadmin.equinox/about.html
    bundles/org.eclipse.equinox.frameworkadmin.equinox/build.properties
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Activator.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherImpl.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxConstants.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFrameworkAdminFactoryImpl.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwAdminImpl.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxLauncherData.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxManipulatorImpl.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Log.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Messages.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/messages.properties
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/EclipseVersion.java
    bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/FileUtils.java
    bundles/org.eclipse.equinox.frameworkadmin.test/.classpath
    bundles/org.eclipse.equinox.frameworkadmin.test/.project
    bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.frameworkadmin.test/Framework Admin Test.launch
    bundles/org.eclipse.equinox.frameworkadmin.test/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.frameworkadmin.test/build.properties
    bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/bundle_1/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.equinox.simpleconfigurator.jar
    bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi.jar
    bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi_3.4.0.jar
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/AbstractFwkAdminTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Activator.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Bug196525.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/CleanupTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/FwkAdminAndSimpleConfiguratorTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoConfigurationValueInEclipseIni.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoRenamingLauncherIni.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/OSGiVersionChange.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RelativePathTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RemovingAllBundles.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RenamingLauncherIni.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorComingAndGoing.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorTest.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestEclipseDataArea.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestRunningInstance.java
    bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/UtilsTest.java
    bundles/org.eclipse.equinox.frameworkadmin/.classpath
    bundles/org.eclipse.equinox.frameworkadmin/.project
    bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.frameworkadmin/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.frameworkadmin/about.html
    bundles/org.eclipse.equinox.frameworkadmin/build.properties
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Activator.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/SimpleBundlesState.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Utils.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulator.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulatorFactory.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundleInfo.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundlesState.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/ConfigData.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdmin.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminFactory.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminRuntimeException.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/LauncherData.java
    bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/Manipulator.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.classpath
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.project
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html
    bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties
    bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch
    bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties
    bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractBufferingStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractDeltaStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/DeltaComputer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/JarDeltaOptimizerStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java
    bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties
    bundles/org.eclipse.equinox.p2.artifact.processors/.classpath
    bundles/org.eclipse.equinox.p2.artifact.processors/.project
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.artifact.processors/about.html
    bundles/org.eclipse.equinox.p2.artifact.processors/build.properties
    bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties
    bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/AbstractDeltaProcessorStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java
    bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/verifier/MD5Verifier.java
    bundles/org.eclipse.equinox.p2.artifact.repository/.classpath
    bundles/org.eclipse.equinox.p2.artifact.repository/.project
    bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.artifact.repository/about.html
    bundles/org.eclipse.equinox.p2.artifact.repository/build.properties
    bundles/org.eclipse.equinox.p2.artifact.repository/p2 tools - mirror artifacts.launch
    bundles/org.eclipse.equinox.p2.artifact.repository/plugin.properties
    bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml
    bundles/org.eclipse.equinox.p2.artifact.repository/schema/artifactRepositories.exsd
    bundles/org.eclipse.equinox.p2.artifact.repository/schema/processingSteps.exsd
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/Mirroring.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/AbstractRepositoryManager.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Activator.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRequest.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/DownloadStatus.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ECFTransport.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/FileDownloadRequest.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Messages.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorRequest.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/SignatureVerifier.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Transport.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/messages.properties
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/DownloadJob.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/Mapper.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/UniversalUniqueIdentifier.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/ArtifactDescriptor.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactDescriptor.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepositoryManager.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRequest.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IFileArtifactRepository.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IStateful.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepDescriptor.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/AbstractArtifactRepository.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/IArtifactRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/SimpleArtifactRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.console/.classpath
    bundles/org.eclipse.equinox.p2.console/.project
    bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.console/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.console/Provisioning console.launch
    bundles/org.eclipse.equinox.p2.console/about.html
    bundles/org.eclipse.equinox.p2.console/build.properties
    bundles/org.eclipse.equinox.p2.console/plugin.properties
    bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/Activator.java
    bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java
    bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvisioningHelper.java
    bundles/org.eclipse.equinox.p2.core/.classpath
    bundles/org.eclipse.equinox.p2.core/.options
    bundles/org.eclipse.equinox.p2.core/.project
    bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.core/about.html
    bundles/org.eclipse.equinox.p2.core/build.properties
    bundles/org.eclipse.equinox.p2.core/plugin.properties
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Activator.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/BasicLocation.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaIo.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaNio.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Messages.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/ProvisioningEventBus.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/StringPool.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Headers.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/LogHelper.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Messages.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/OrderedProperties.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/ServiceHelper.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Tracing.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/messages.properties
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/messages.properties
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/Messages.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLConstants.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLParser.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLWriter.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/messages.properties
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/ProvisionException.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/IProvisioningEventBus.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/ProvisioningListener.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/SynchronousProvisioningListener.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/location/AgentLocation.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/IRepository.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryCreationException.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryEvent.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Collector.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/CompoundQuery.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/IQueryable.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Query.java
    bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/spi/p2/core/repository/AbstractRepository.java
    bundles/org.eclipse.equinox.p2.director.app/.classpath
    bundles/org.eclipse.equinox.p2.director.app/.cvsignore
    bundles/org.eclipse.equinox.p2.director.app/.externalToolBuilders/Build Director Ant Tasks.launch
    bundles/org.eclipse.equinox.p2.director.app/.project
    bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.director.app/about.html
    bundles/org.eclipse.equinox.p2.director.app/build.properties
    bundles/org.eclipse.equinox.p2.director.app/config.ini
    bundles/org.eclipse.equinox.p2.director.app/director app.launch
    bundles/org.eclipse.equinox.p2.director.app/director.product
    bundles/org.eclipse.equinox.p2.director.app/plugin.properties
    bundles/org.eclipse.equinox.p2.director.app/plugin.xml
    bundles/org.eclipse.equinox.p2.director.app/scripts/buildExtraJAR.xml
    bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Activator.java
    bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Application.java
    bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Messages.java
    bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/messages.properties
    bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java
    bundles/org.eclipse.equinox.p2.director/.classpath
    bundles/org.eclipse.equinox.p2.director/.cvsignore
    bundles/org.eclipse.equinox.p2.director/.project
    bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.director/about.html
    bundles/org.eclipse.equinox.p2.director/build.properties
    bundles/org.eclipse.equinox.p2.director/plugin.properties
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/BasicIUFilter.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/DirectorActivator.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/HasMatchCollector.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUFilter.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUProfilePropertyQuery.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUPropertyQuery.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUTransformationHelper.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/OperationGenerator.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/PatchingIU.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Picker.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/QueryableArray.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Recommendation.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RecommendationDescriptor.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RequirementBasedFilter.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimpleDirector.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Slicer.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/TwoTierMap.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/ResolutionHelper.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/StateMetadataMap.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/Transformer.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/UnsatisfiedCapability.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IDirector.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProfileChangeRequest.java
    bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProvisioningPlan.java
    bundles/org.eclipse.equinox.p2.exemplarysetup/.classpath
    bundles/org.eclipse.equinox.p2.exemplarysetup/.project
    bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.exemplarysetup/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.exemplarysetup/about.html
    bundles/org.eclipse.equinox.p2.exemplarysetup/build.properties
    bundles/org.eclipse.equinox.p2.exemplarysetup/plugin.properties
    bundles/org.eclipse.equinox.p2.exemplarysetup/src/org/eclipse/equinox/internal/p2/exemplarysetup/Activator.java
    bundles/org.eclipse.equinox.p2.extensionlocation/.classpath
    bundles/org.eclipse.equinox.p2.extensionlocation/.cvsignore
    bundles/org.eclipse.equinox.p2.extensionlocation/.project
    bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.extensionlocation/build.properties
    bundles/org.eclipse.equinox.p2.extensionlocation/plugin.properties
    bundles/org.eclipse.equinox.p2.extensionlocation/plugin.xml
    bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/Activator.java
    bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
    bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
    bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.garbagecollector/.classpath
    bundles/org.eclipse.equinox.p2.garbagecollector/.options
    bundles/org.eclipse.equinox.p2.garbagecollector/.project
    bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.garbagecollector/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.garbagecollector/about.html
    bundles/org.eclipse.equinox.p2.garbagecollector/build.properties
    bundles/org.eclipse.equinox.p2.garbagecollector/plugin.properties
    bundles/org.eclipse.equinox.p2.garbagecollector/plugin.xml
    bundles/org.eclipse.equinox.p2.garbagecollector/schema/GarbageCollector.exsd
    bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/CoreGarbageCollector.java
    bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GCActivator.java
    bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GarbageCollector.java
    bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/IMarkSetProvider.java
    bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/MarkSet.java
    bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/Messages.java
    bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/messages.properties
    bundles/org.eclipse.equinox.p2.installer/.classpath
    bundles/org.eclipse.equinox.p2.installer/.project
    bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.installer/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.installer/README.txt
    bundles/org.eclipse.equinox.p2.installer/about.html
    bundles/org.eclipse.equinox.p2.installer/build.properties
    bundles/org.eclipse.equinox.p2.installer/config.ini
    bundles/org.eclipse.equinox.p2.installer/installer.product
    bundles/org.eclipse.equinox.p2.installer/plugin.properties
    bundles/org.eclipse.equinox.p2.installer/plugin.xml
    bundles/org.eclipse.equinox.p2.installer/product_lg.gif
    bundles/org.eclipse.equinox.p2.installer/sdk-installer.properties
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/HeadlessInstallAdvisor.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallApplication.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallUpdateProductOperation.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallerActivator.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/Messages.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/messages.properties
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/InstallDialog.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/SWTInstallAdvisor.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/IInstallOperation.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallAdvisor.java
    bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallDescription.java
    bundles/org.eclipse.equinox.p2.jarprocessor/.classpath
    bundles/org.eclipse.equinox.p2.jarprocessor/.project
    bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.jarprocessor/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.jarprocessor/about.html
    bundles/org.eclipse.equinox.p2.jarprocessor/build.properties
    bundles/org.eclipse.equinox.p2.jarprocessor/plugin.properties
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/CommandStep.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Main.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/SignCommandStep.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/StreamProcessor.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/VerifyStep.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/IProcessStep.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java
    bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor.java
    bundles/org.eclipse.equinox.p2.metadata.generator/.classpath
    bundles/org.eclipse.equinox.p2.metadata.generator/.cvsignore
    bundles/org.eclipse.equinox.p2.metadata.generator/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch
    bundles/org.eclipse.equinox.p2.metadata.generator/.project
    bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.0_Foundation-1.0.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.1_Foundation-1.1.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.2.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.3.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.4.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.5.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/JRE-1.1.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/JavaSE-1.6.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.metadata.generator/Metadata Generator SDK.launch
    bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.0.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.1.profile
    bundles/org.eclipse.equinox.p2.metadata.generator/about.html
    bundles/org.eclipse.equinox.p2.metadata.generator/build.properties
    bundles/org.eclipse.equinox.p2.metadata.generator/config.ini
    bundles/org.eclipse.equinox.p2.metadata.generator/generator.product
    bundles/org.eclipse.equinox.p2.metadata.generator/p2-izer update site.launch
    bundles/org.eclipse.equinox.p2.metadata.generator/plugin.properties
    bundles/org.eclipse.equinox.p2.metadata.generator/plugin.xml
    bundles/org.eclipse.equinox.p2.metadata.generator/scripts/buildExtraJAR.xml
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Activator.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Messages.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/ProductQuery.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DefaultSiteParser.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DigestParser.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/FeatureParser.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/Messages.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/ProductFile.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteCategory.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteFeature.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/messages.properties
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/messages.properties
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/BundleDescriptionFactory.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/EclipseInstallGeneratorInfoProvider.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Feature.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/FeatureEntry.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/GeneratorBundleInfo.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/IGeneratorInfo.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/MetadataGeneratorHelper.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/URLEntry.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java
    bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties
    bundles/org.eclipse.equinox.p2.metadata.repository/.classpath
    bundles/org.eclipse.equinox.p2.metadata.repository/.project
    bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.metadata.repository/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.metadata.repository/about.html
    bundles/org.eclipse.equinox.p2.metadata.repository/build.properties
    bundles/org.eclipse.equinox.p2.metadata.repository/plugin.properties
    bundles/org.eclipse.equinox.p2.metadata.repository/plugin.xml
    bundles/org.eclipse.equinox.p2.metadata.repository/schema/metadataRepositories.exsd
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Activator.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/ECFMetadataTransport.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/LocalMetadataRepository.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Messages.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataWriter.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/XMLConstants.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/messages.properties
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepositoryManager.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/AbstractMetadataRepository.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/IMetadataRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/SimpleMetadataRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.metadata/.classpath
    bundles/org.eclipse.equinox.p2.metadata/.project
    bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.metadata/about.html
    bundles/org.eclipse.equinox.p2.metadata/build.properties
    bundles/org.eclipse.equinox.p2.metadata/plugin.properties
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ArtifactKey.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnit.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitFragment.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/Messages.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/MetadataActivator.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/UpdateDescriptor.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/messages.properties
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IArtifactKey.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnit.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnitFragment.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IUpdateDescriptor.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/MetadataFactory.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/ProvidedCapability.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/RequiredCapability.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointData.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointType.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/CapabilityQuery.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/IUPropertyQuery.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/InstallableUnitQuery.java
    bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/UpdateQuery.java
    bundles/org.eclipse.equinox.p2.publisher/.classpath
    bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch
    bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Publisher Ant Tasks.launch
    bundles/org.eclipse.equinox.p2.publisher/.project
    bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.publisher/Eclipse install publisher.launch
    bundles/org.eclipse.equinox.p2.publisher/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.publisher/Toast backend publisher.launch
    bundles/org.eclipse.equinox.p2.publisher/Toast client publisher.launch
    bundles/org.eclipse.equinox.p2.publisher/about.html
    bundles/org.eclipse.equinox.p2.publisher/build.properties
    bundles/org.eclipse.equinox.p2.publisher/plugin.properties
    bundles/org.eclipse.equinox.p2.publisher/plugin.xml
    bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.0_Foundation-1.0.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.1_Foundation-1.1.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.2.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.3.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.4.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.5.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/JRE-1.1.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/JavaSE-1.6.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.0.profile
    bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.1.profile
    bundles/org.eclipse.equinox.p2.publisher/scripts/buildExtraJAR.xml
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublisherApplication.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublishingAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Activator.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/BundleDescriptionFactory.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/CompoundQueryable.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/FileSetDescriptor.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/GeneratorBundleInfo.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IProductDescriptor.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherInfo.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherResult.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/InstallPublisherApplication.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Messages.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/MetadataGeneratorHelper.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/ProductPublisherApplication.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Publisher.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherInfo.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherResult.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AbstractAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AccumulateConfigDataAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BrandedExecutableAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundleShapeAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundlesAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigCUsAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DataLoader.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DefaultCUsAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EclipseInstallAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxExecutableAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxLauncherCUAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ExecutablesDescriptor.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/FeaturesAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleShapeAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IConfigAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IFeatureAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ILaunchingAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootFilesAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootIUAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IVersionAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/JREAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LaunchingAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LocalUpdateSiteAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/MergeResultsAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductFileAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/SiteXMLAction.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/VersionAdvice.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DefaultSiteParser.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DigestParser.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Feature.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureEntry.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureParser.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Messages.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/ProductFile.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteCategory.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteFeature.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteModel.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/URLEntry.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/UpdateSite.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/messages.properties
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/messages.properties
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/product/BrandingIron.java
    bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/pde/internal/swt/tools/IconExe.java
    bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java
    bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java
    bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties
    bundles/org.eclipse.equinox.p2.publisher/temp.folder/ant_tasks/generator-ant.jar.bin/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.class
    bundles/org.eclipse.equinox.p2.reconciler.dropins/.classpath
    bundles/org.eclipse.equinox.p2.reconciler.dropins/.cvsignore
    bundles/org.eclipse.equinox.p2.reconciler.dropins/.project
    bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.reconciler.dropins/about.html
    bundles/org.eclipse.equinox.p2.reconciler.dropins/build.properties
    bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.properties
    bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.xml
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java
    bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties
    bundles/org.eclipse.equinox.p2.reconciler/.classpath
    bundles/org.eclipse.equinox.p2.reconciler/.cvsignore
    bundles/org.eclipse.equinox.p2.reconciler/.project
    bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.reconciler/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.reconciler/about.html
    bundles/org.eclipse.equinox.p2.reconciler/build.properties
    bundles/org.eclipse.equinox.p2.reconciler/plugin.properties
    bundles/org.eclipse.equinox.p2.reconciler/plugin.xml
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java
    bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties
    bundles/org.eclipse.equinox.p2.sar/.classpath
    bundles/org.eclipse.equinox.p2.sar/.project
    bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.sar/about.html
    bundles/org.eclipse.equinox.p2.sar/build.properties
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java
    bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java
    bundles/org.eclipse.equinox.p2.tests/.classpath
    bundles/org.eclipse.equinox.p2.tests/.project
    bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/Test Director CDT.launch
    bundles/org.eclipse.equinox.p2.tests/Test Director SDK.launch
    bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall CDT.launch
    bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall SDK.launch
    bundles/org.eclipse.equinox.p2.tests/about.html
    bundles/org.eclipse.equinox.p2.tests/build.properties
    bundles/org.eclipse.equinox.p2.tests/plugin.properties
    bundles/org.eclipse.equinox.p2.tests/plugin.xml
    bundles/org.eclipse.equinox.p2.tests/rawData/Test Data Generator.launch
    bundles/org.eclipse.equinox.p2.tests/rawData/enginerepo.jardesc
    bundles/org.eclipse.equinox.p2.tests/rawData/org.eclipse.equinox.prov.engine_0.1.0.200709241631.jar
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ManualTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestActivator.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestData.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestMetadataRepository.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/Pack200ProcessorTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/ArtifactOutputStreamTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLRepositoryTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Adder.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ByteShifter.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Counter.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Multiplier.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepHandlerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AutomatedDirectorTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/Bug203637.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OperationGenerationTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest2.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/PickerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RecommendationTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ReplacePlanTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ResolutionHelperTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RollbackTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/SingletonTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UninstallTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UpdateTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AbstractDirectoryWatcherTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/DirectoryWatcherTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/ProfileSynchronizerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/RepositoryListenerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/TestRepositoryWatcher.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/DownloadManagerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/embeddedequinox/EmbeddedEquinox.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/EngineTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseSetTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileRegistryTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/TouchpointTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/DirectorTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/End2EndTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/RepoValidator.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/EclipseSDK33Test.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/SiteParserTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/TestGeneratorInfo.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/MultipleIUAndFragmentTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/JarURLRepositoryTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/LocalMetadataRepositoryTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllOptional.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AnotherSingleton.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/Bug207319.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DependencyOnSelf.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DropinsScenario.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/GreedyRequirement.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter2.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MinimalInstall.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency2.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency3.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement2.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptional.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalNonGreedyRequirement.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies2.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies3.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleProvider.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleSingleton.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NoRequirements.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest2.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest3.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleSingleton.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/UninstallEverything.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/SarTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/BundlesTxtTest.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/SimpleConfiguratorTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java
    bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java
    bundles/org.eclipse.equinox.p2.tests/test.xml
    bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.common_3.4.0.v20070910.jar
    bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.simpleconfigurator.jar
    bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.osgi_3.4.0.v20071030.jar
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.eclipse.osgi.services_3.1.200.v20070605.jar
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about.html
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about_files/cpl-v10.html
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/junit.jar
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/plugin.properties
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20070827.jar
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.osgi.services_3.1.200.v20070605.jar
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about.html
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about_files/cpl-v10.html
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/junit.jar
    bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/plugin.properties
    bundles/org.eclipse.equinox.p2.tests/testData/enginerepo.jar
    bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/plugins/org.eclipse.osgi.services_3.1.200.v20070605.jar
    bundles/org.eclipse.equinox.p2.tests/testData/generator/Europa/site.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.properties
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.xml
    bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/readme.txt
    bundles/org.eclipse.equinox.p2.tests/testData/jarprocessor.jar.pack.gz
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2-3.3.jbdiff
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2.exe
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.3.exe
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1-2.jar
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1.jar
    bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.2.jar
    bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/aaa_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.linux_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.win32_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_2.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectory/plugin.xml
    bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/plugin.xml
    bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJAR.jar
    bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJARTwo.jar
    bundles/org.eclipse.equinox.p2.tests/testData/sar/alien.zip
    bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar
    bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar
    bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar
    bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar
    bundles/org.eclipse.equinox.p2.tests/testData/sar/test.zip
    bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml
    bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jar
    bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml
    bundles/org.eclipse.equinox.p2.tools/.classpath
    bundles/org.eclipse.equinox.p2.tools/.cvsignore
    bundles/org.eclipse.equinox.p2.tools/.project
    bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.tools/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.tools/about.html
    bundles/org.eclipse.equinox.p2.tools/build.properties
    bundles/org.eclipse.equinox.p2.tools/p2 tools - file server.launch
    bundles/org.eclipse.equinox.p2.tools/plugin.properties
    bundles/org.eclipse.equinox.p2.tools/plugin.xml
    bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/Activator.java
    bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java
    bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java
    bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/UpdateCheckerApplication.java
    bundles/org.eclipse.equinox.p2.tools/updatechecker app.launch
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.classpath
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.project
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/about.html
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/build.properties
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.properties
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Activator.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/AggregatedBundleRepository.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MarkSetProvider.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Messages.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MetadataGeneratorUtils.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/PlatformConfigurationWrapper.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/SourceManipulator.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/WhatIsRunning.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionConstants.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionFactory.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddJVMArgumentAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddProgramArgumentAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddSourceBundleAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/CollectAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallFeatureAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/Messages.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MkdirAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveJVMArgumentAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveProgramArgumentAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveSourceBundleAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RmdirAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkDependentPropertyAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkIndependentPropertyAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetLauncherNameAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetProgramPropertyAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallFeatureAction.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/messages.properties
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/messages.properties
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Configuration.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationConstants.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Feature.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Site.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Utils.java
    bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/XMLWriter.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/.classpath
    bundles/org.eclipse.equinox.p2.touchpoint.natives/.project
    bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.touchpoint.natives/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.touchpoint.natives/about.html
    bundles/org.eclipse.equinox.p2.touchpoint.natives/build.properties
    bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.properties
    bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.xml
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Activator.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/BackupFiles.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Messages.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/NativeTouchpoint.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Permissions.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Zip.java
    bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/messages.properties
    bundles/org.eclipse.equinox.p2.updatechecker/.classpath
    bundles/org.eclipse.equinox.p2.updatechecker/.cvsignore
    bundles/org.eclipse.equinox.p2.updatechecker/.project
    bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.pde.core.prefs
    bundles/org.eclipse.equinox.p2.updatechecker/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.p2.updatechecker/about.html
    bundles/org.eclipse.equinox.p2.updatechecker/build.properties
    bundles/org.eclipse.equinox.p2.updatechecker/plugin.properties
    bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/Activator.java
    bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java
    bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateChecker.java
    bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateListener.java
    bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/UpdateEvent.java
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.classpath
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.cvsignore
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.project
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/about.html
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/build.properties
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/plugin.properties
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/Activator.java
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorFactoryImpl.java
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java
    bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java
    bundles/org.eclipse.equinox.simpleconfigurator/.classpath
    bundles/org.eclipse.equinox.simpleconfigurator/.cvsignore
    bundles/org.eclipse.equinox.simpleconfigurator/.externalToolBuilders/Copy built version of simple configurator into metadata generator.launch
    bundles/org.eclipse.equinox.simpleconfigurator/.project
    bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF
    bundles/org.eclipse.equinox.simpleconfigurator/about.html
    bundles/org.eclipse.equinox.simpleconfigurator/build.properties
    bundles/org.eclipse.equinox.simpleconfigurator/localbuild.xml
    bundles/org.eclipse.equinox.simpleconfigurator/plugin.properties
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/provisional/configurator/Configurator.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/Activator.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/ConfigApplier.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorFactory.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ApplyCommand.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ConfiguratorCommandProvider.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/BundleInfo.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/EquinoxUtils.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/StateResolverUtils.java
    bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/Utils.java
    org.eclipse.equinox.p2.releng/.project
    org.eclipse.equinox.p2.releng/HOW TO RUN.txt
    org.eclipse.equinox.p2.releng/Provisioning base.target
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/customBuildCallbacks.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/epl-v10.html
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/license.html
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/.project
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/eclipse_update_120.jpg
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/epl-v10.html
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.xml
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/license.html
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/build.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/eclipse_update_120.jpg
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/epl-v10.html
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/feature.properties
    org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/license.html
    org.eclipse.equinox.p2.releng/projectSet-extssh.psf
    org.eclipse.equinox.p2.releng/projectSet.psf
diff --git a/bundles/ie.wombat.jbdiff.test/.classpath b/bundles/ie.wombat.jbdiff.test/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/ie.wombat.jbdiff.test/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/ie.wombat.jbdiff.test/.project b/bundles/ie.wombat.jbdiff.test/.project
deleted file mode 100644
index ac8a8a0..0000000
--- a/bundles/ie.wombat.jbdiff.test/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>ie.wombat.jbdiff.test</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs b/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index dc78f95..0000000
--- a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Dec 18 11:44:16 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs b/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 0c5082b..0000000
--- a/bundles/ie.wombat.jbdiff.test/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Nov 01 14:26:02 CET 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF b/bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF
deleted file mode 100644
index d302fe5..0000000
--- a/bundles/ie.wombat.jbdiff.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JBDiff Test Plug-in
-Bundle-SymbolicName: ie.wombat.jbdiff.test
-Bundle-Version: 0.1.0.1
-Bundle-Activator: ie.wombat.jbdiff.test.Activator
-Import-Package: org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Require-Bundle: org.junit,
- ie.wombat.jbdiff
diff --git a/bundles/ie.wombat.jbdiff.test/build.properties b/bundles/ie.wombat.jbdiff.test/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/bundles/ie.wombat.jbdiff.test/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java b/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java
deleted file mode 100644
index 0d0bb3f..0000000
--- a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/Activator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package ie.wombat.jbdiff.test;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	private static BundleContext context;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		Activator.context = null;
-	}
-
-	/**
-	 * @return the context
-	 */
-	public static BundleContext getContext() {
-		return context;
-	}
-
-}
diff --git a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java b/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java
deleted file mode 100644
index 5f5e7d8..0000000
--- a/bundles/ie.wombat.jbdiff.test/src/ie/wombat/jbdiff/test/DiffPatchTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package ie.wombat.jbdiff.test;
-
-import ie.wombat.jbdiff.JBDiff;
-import ie.wombat.jbdiff.JBPatch;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-public class DiffPatchTest extends TestCase {
-
-	public void testNullData() throws Exception {
-		bench("null.data", "null.data");
-	}
-
-	public void testOneData() throws Exception {
-		bench("one.data", "one.data");
-	}
-
-	public void testOneHundredData() throws Exception {
-		bench("onehundred.data", "onehundred.data");
-	}
-
-	public void testOneHundredXData() throws Exception {
-		bench("onehundred.data", "onehundredX.data");
-	}
-
-	public void testOneXHundredXData() throws Exception {
-		bench("onehundred.data", "oneXhundredX.data");
-	}
-
-	public void testPdeCoreJar() throws Exception {
-		bench("org.eclipse.pde.core_3.2.jar", "org.eclipse.pde.core_3.3.jar");
-	}
-
-	public void testEclipse() throws Exception {
-		bench("eclipse-3.2.exe", "eclipse-3.3.exe");
-	}
-
-	private void bench(String resource1, String resource2) throws Exception {
-
-		byte[] oldData = getTestData(resource1);
-		byte[] newData = getTestData(resource2);
-
-		System.out.println(resource1 + "(" + (oldData.length / 1024)
-				+ " kb) -> " + resource2 + "(" + (newData.length / 1024)
-				+ " kb)");
-
-		diffAndPatchJBDiff(oldData, newData);
-
-		System.out.println("");
-	}
-
-	/**
-	 * @param resource1
-	 * @param resource2
-	 * @throws IOException
-	 */
-	private void diffAndPatchJBDiff(byte[] oldData, byte[] newData)
-			throws IOException {
-
-		try {
-
-			long start = System.currentTimeMillis();
-
-			byte[] diff = JBDiff.bsdiff(oldData, oldData.length, newData,
-					newData.length);
-
-			long diffEnd = System.currentTimeMillis();
-
-			byte[] patch = JBPatch.bspatch(oldData, oldData.length, diff);
-
-			long patchEnd = System.currentTimeMillis();
-
-			System.out.println("JBDiff: Size= " + diff.length + " b ("
-					+ diff.length / 1024 + " kb), Diffing " + (diffEnd - start)
-					+ " ms, Patching: " + (patchEnd - diffEnd) + " ms");
-
-			assertTrue(Arrays.equals(newData, patch));
-
-		} catch (RuntimeException re) {
-			System.err.println("JBDiff: error: " + re.getMessage());
-		}
-	}
-
-	private static byte[] getTestData(String name) throws IOException {
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		InputStream input = new BufferedInputStream(Activator.getContext()
-				.getBundle().getEntry("testData/" + name).openStream());
-		int r;
-		while ((r = input.read()) != -1) {
-			out.write(r);
-		}
-		input.close();
-		out.close();
-		return out.toByteArray();
-	}
-}
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe b/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe
deleted file mode 100644
index 7826d1e..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.2.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe b/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe
deleted file mode 100644
index c5cd8f0..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/eclipse-3.3.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff.test/testData/null.data b/bundles/ie.wombat.jbdiff.test/testData/null.data
deleted file mode 100644
index e69de29..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/null.data
+++ /dev/null
diff --git a/bundles/ie.wombat.jbdiff.test/testData/one.data b/bundles/ie.wombat.jbdiff.test/testData/one.data
deleted file mode 100644
index 56a6051..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/one.data
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data b/bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data
deleted file mode 100644
index bb1077f..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/oneXhundredX.data
+++ /dev/null
@@ -1 +0,0 @@
-0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X0123456789X
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/onehundred.data b/bundles/ie.wombat.jbdiff.test/testData/onehundred.data
deleted file mode 100644
index edd4e96..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/onehundred.data
+++ /dev/null
@@ -1 +0,0 @@
-0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/onehundredX.data b/bundles/ie.wombat.jbdiff.test/testData/onehundredX.data
deleted file mode 100644
index cb96be8..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/onehundredX.data
+++ /dev/null
@@ -1 +0,0 @@
-012345678901234567890123456789012345678901234567890X234567890123456789012345678901234567890123456789
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar b/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar
deleted file mode 100644
index f772f86..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.2.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar b/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar
deleted file mode 100644
index a78ea76..0000000
--- a/bundles/ie.wombat.jbdiff.test/testData/org.eclipse.pde.core_3.3.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/ie.wombat.jbdiff/.classpath b/bundles/ie.wombat.jbdiff/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/ie.wombat.jbdiff/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/ie.wombat.jbdiff/.project b/bundles/ie.wombat.jbdiff/.project
deleted file mode 100644
index 76d4441..0000000
--- a/bundles/ie.wombat.jbdiff/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>ie.wombat.jbdiff</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs b/bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index d46233b..0000000
--- a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Nov 14 12:49:16 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs b/bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f99d271..0000000
--- a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue Dec 18 11:43:17 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs b/bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 950e194..0000000
--- a/bundles/ie.wombat.jbdiff/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Nov 01 14:00:53 CET 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF b/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
deleted file mode 100644
index 8c78997..0000000
--- a/bundles/ie.wombat.jbdiff/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Jbdiff Plug-in
-Bundle-SymbolicName: ie.wombat.jbdiff
-Bundle-Version: 0.1.0.1
-Import-Package: org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Export-Package: ie.wombat.jbdiff
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
diff --git a/bundles/ie.wombat.jbdiff/about.html b/bundles/ie.wombat.jbdiff/about.html
deleted file mode 100644
index bf09c26..0000000
--- a/bundles/ie.wombat.jbdiff/about.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-
-  
-  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-
-  
-  <title>About</title>
-</head>
-
-
-<body lang="EN-US">
-
-<h3>About This Content</h3>
-
-<p>June 5, 2006</p>
-
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content").  
-		Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-		Eclipse Public License Version 1.0 ("EPL").  A copy of the EPL is available 
-		at <a href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/legal/epl-v10.html</a>.
-		For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-		being redistributed by another party ("Redistributor") and different terms and conditions may
-		apply to your use of any object code in the Content.  Check the Redistributor&rsquo;s license 
-		that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-		indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-		and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-<h3>Third Party Content</h3>
-
-<p>The Content includes items that have been sourced from third parties as set out below. If you 
-		did not receive this Content directly from the Eclipse Foundation, the following is provided 
-		for informational purposes only, and you should look to the Redistributor&rsquo;s license for 
-		terms and conditions of use.</p>
-
-<em>
-<h4>ie.wombat.jbdiff&nbsp;</h4>
-
-<p>This library version is based on JBDiff (<a href="http://www.wombat.ie/software/jbdiff/downloads/">http://www.wombat.ie/software/jbdiff/downloads/</a>) which is also available under the OSI Approved :: BSD License (original) <a href="http://www.opensource.org/licenses/bsd-license.html">http://www.opensource.org/licenses/bsd-license.html</a><br />
-
-</p>
-
-</em>
-</body>
-</html>
diff --git a/bundles/ie.wombat.jbdiff/build.properties b/bundles/ie.wombat.jbdiff/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/bundles/ie.wombat.jbdiff/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java
deleted file mode 100644
index 870c661..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBDiff.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/*
- * Copyright (c) 2005, Joe Desbonnet, (jdesbonnet@gmail.com)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the <organization> nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ie.wombat.jbdiff;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.zip.GZIPOutputStream;
-
-/**
- * Java Binary Diff utility. Based on bsdiff (v4.2) by Colin Percival (see
- * http://www.daemonology.net/bsdiff/ ) and distributed under BSD license.
- * 
- * <p>
- * Running this on large files will probably require an increase of the default
- * maximum heap size (use java -Xmx200m)
- * </p>
- * 
- * @author Joe Desbonnet, joe@galway.net
- * 
- */
-public class JBDiff {
-
-	// JBDiff extensions by Stefan.Liebig@compeople.de:
-	//
-	// - uses GZIP compressor to compress ALL of the blocks (ctrl,diff,extra).
-	// - added interfaces that allows using of JBDiff with streams and byte
-	// arrays.
-
-	private static final String VERSION = "jbdiff-0.1.0.1";
-
-	// This is ´jbdiff40´.
-	private static final byte[] MAGIC_BYTES = new byte[] { 0x6a, 0x62, 0x64,
-			0x69, 0x66, 0x66, 0x34, 0x30 };
-
-	private final static void split(int[] I, int[] V, int start, int len, int h) {
-
-		int i, j, k, x, tmp, jj, kk;
-
-		if (len < 16) {
-			for (k = start; k < start + len; k += j) {
-				j = 1;
-				x = V[I[k] + h];
-				for (i = 1; k + i < start + len; i++) {
-					if (V[I[k + i] + h] < x) {
-						x = V[I[k + i] + h];
-						j = 0;
-					}
-
-					if (V[I[k + i] + h] == x) {
-						tmp = I[k + j];
-						I[k + j] = I[k + i];
-						I[k + i] = tmp;
-						j++;
-					}
-
-				}
-
-				for (i = 0; i < j; i++) {
-					V[I[k + i]] = k + j - 1;
-				}
-				if (j == 1) {
-					I[k] = -1;
-				}
-			}
-
-			return;
-		}
-
-		x = V[I[start + len / 2] + h];
-		jj = 0;
-		kk = 0;
-		for (i = start; i < start + len; i++) {
-			if (V[I[i] + h] < x) {
-				jj++;
-			}
-			if (V[I[i] + h] == x) {
-				kk++;
-			}
-		}
-
-		jj += start;
-		kk += jj;
-
-		i = start;
-		j = 0;
-		k = 0;
-		while (i < jj) {
-			if (V[I[i] + h] < x) {
-				i++;
-			} else if (V[I[i] + h] == x) {
-				tmp = I[i];
-				I[i] = I[jj + j];
-				I[jj + j] = tmp;
-				j++;
-			} else {
-				tmp = I[i];
-				I[i] = I[kk + k];
-				I[kk + k] = tmp;
-				k++;
-			}
-
-		}
-
-		while (jj + j < kk) {
-			if (V[I[jj + j] + h] == x) {
-				j++;
-			} else {
-				tmp = I[jj + j];
-				I[jj + j] = I[kk + k];
-				I[kk + k] = tmp;
-				k++;
-			}
-
-		}
-
-		if (jj > start) {
-			split(I, V, start, jj - start, h);
-		}
-
-		for (i = 0; i < kk - jj; i++) {
-			V[I[jj + i]] = kk - 1;
-		}
-
-		if (jj == kk - 1) {
-			I[jj] = -1;
-		}
-
-		if (start + len > kk) {
-			split(I, V, kk, start + len - kk, h);
-		}
-
-	}
-
-	/**
-	 * Fast suffix sporting. Larsson and Sadakane's qsufsort algorithm. See
-	 * http://www.cs.lth.se/Research/Algorithms/Papers/jesper5.ps
-	 * 
-	 * @param I
-	 * @param V
-	 * @param oldBuf
-	 * @param oldsize
-	 */
-	private static void qsufsort(int[] I, int[] V, byte[] oldBuf, int oldsize) {
-
-		// int oldsize = oldBuf.length;
-		int[] buckets = new int[256];
-
-		// No need to do that in Java.
-		// for ( int i = 0; i < 256; i++ ) {
-		// buckets[i] = 0;
-		// }
-
-		for (int i = 0; i < oldsize; i++) {
-			buckets[oldBuf[i] & 0xff]++;
-		}
-
-		for (int i = 1; i < 256; i++) {
-			buckets[i] += buckets[i - 1];
-		}
-
-		for (int i = 255; i > 0; i--) {
-			buckets[i] = buckets[i - 1];
-		}
-
-		buckets[0] = 0;
-
-		for (int i = 0; i < oldsize; i++) {
-			I[++buckets[oldBuf[i] & 0xff]] = i;
-		}
-
-		I[0] = oldsize;
-		for (int i = 0; i < oldsize; i++) {
-			V[i] = buckets[oldBuf[i] & 0xff];
-		}
-		V[oldsize] = 0;
-
-		for (int i = 1; i < 256; i++) {
-			if (buckets[i] == buckets[i - 1] + 1) {
-				I[buckets[i]] = -1;
-			}
-		}
-
-		I[0] = -1;
-
-		for (int h = 1; I[0] != -(oldsize + 1); h += h) {
-			int len = 0;
-			int i;
-			for (i = 0; i < oldsize + 1;) {
-				if (I[i] < 0) {
-					len -= I[i];
-					i -= I[i];
-				} else {
-					// if(len) I[i-len]=-len;
-					if (len != 0) {
-						I[i - len] = -len;
-					}
-					len = V[I[i]] + 1 - i;
-					split(I, V, i, len, h);
-					i += len;
-					len = 0;
-				}
-
-			}
-
-			if (len != 0) {
-				I[i - len] = -len;
-			}
-		}
-
-		for (int i = 0; i < oldsize + 1; i++) {
-			I[V[i]] = i;
-		}
-	}
-
-	/**
-	 * Count the number of bytes that match in oldBuf (starting at offset
-	 * oldOffset) and newBuf (starting at offset newOffset).
-	 * 
-	 * @param oldBuf
-	 * @param oldOffset
-	 * @param newBuf
-	 * @param newOffset
-	 * @return
-	 */
-	private final static int matchlen(byte[] oldBuf, int oldSize,
-			int oldOffset, byte[] newBuf, int newSize, int newOffset) {
-		// int end = Math
-		// .min(oldBuf.length - oldOffset, newBuf.length - newOffset);
-		int end = Math.min(oldSize - oldOffset, newSize - newOffset);
-		for (int i = 0; i < end; i++) {
-			if (oldBuf[oldOffset + i] != newBuf[newOffset + i]) {
-				return i;
-			}
-		}
-		return end;
-	}
-
-	private final static int search(int[] I, byte[] oldBuf, int oldSize,
-			byte[] newBuf, int newSize, int newBufOffset, int start, int end,
-			IntByRef pos) {
-
-		if (end - start < 2) {
-			int x = matchlen(oldBuf, oldSize, I[start], newBuf, newSize,
-					newBufOffset);
-			int y = matchlen(oldBuf, oldSize, I[end], newBuf, newSize,
-					newBufOffset);
-
-			if (x > y) {
-				pos.value = I[start];
-				return x;
-			} else {
-				pos.value = I[end];
-				return y;
-			}
-		}
-
-		int x = start + (end - start) / 2;
-		if (Util.memcmp(oldBuf, oldSize, I[x], newBuf, newSize, newBufOffset) < 0) {
-			return search(I, oldBuf, oldSize, newBuf, newSize, newBufOffset, x,
-					end, pos);
-		} else {
-			return search(I, oldBuf, oldSize, newBuf, newSize, newBufOffset,
-					start, x, pos);
-		}
-
-	}
-
-	/**
-	 * @param oldFile
-	 * @param newFile
-	 * @param diffFile
-	 * @throws IOException
-	 */
-	public static void bsdiff(File oldFile, File newFile, File diffFile)
-			throws IOException {
-		InputStream oldInputStream = new BufferedInputStream(
-				new FileInputStream(oldFile));
-		InputStream newInputStream = new BufferedInputStream(
-				new FileInputStream(newFile));
-		OutputStream diffOutputStream = new FileOutputStream(diffFile);
-
-		byte[] diffBytes = bsdiff(oldInputStream, (int) oldFile.length(),
-				newInputStream, (int) newFile.length());
-
-		diffOutputStream.write(diffBytes);
-		diffOutputStream.close();
-	}
-
-	/**
-	 * @param oldInputStream
-	 * @param oldsize
-	 * @param newInputStream
-	 * @param newsize
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bsdiff(InputStream oldInputStream, int oldsize,
-			InputStream newInputStream, int newsize) throws IOException {
-
-		byte[] oldBuf = new byte[oldsize];
-
-		Util.readFromStream(oldInputStream, oldBuf, 0, oldsize);
-		oldInputStream.close();
-
-		byte[] newBuf = new byte[newsize];
-		Util.readFromStream(newInputStream, newBuf, 0, newsize);
-		newInputStream.close();
-
-		return bsdiff(oldBuf, oldsize, newBuf, newsize);
-	}
-
-	/**
-	 * @param oldBuf
-	 * @param oldsize
-	 * @param newBuf
-	 * @param newsize
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bsdiff(byte[] oldBuf, int oldsize, byte[] newBuf,
-			int newsize) throws IOException {
-
-		int[] I = new int[oldsize + 1];
-		qsufsort(I, new int[oldsize + 1], oldBuf, oldsize);
-
-		// diff block
-		int dblen = 0;
-		byte[] db = new byte[newsize];
-
-		// extra block
-		int eblen = 0;
-		byte[] eb = new byte[newsize];
-
-		/*
-		 * Diff file is composed as follows:
-		 * 
-		 * Header (32 bytes) Data (from offset 32 to end of file)
-		 * 
-		 * Header: Offset 0, length 8 bytes: file magic "jbdiff40" Offset 8,
-		 * length 8 bytes: length of compressed ctrl block Offset 16, length 8
-		 * bytes: length of compressed diff block Offset 24, length 8 bytes:
-		 * length of new file
-		 * 
-		 * Data: 32 (length ctrlBlockLen): ctrlBlock (bzip2) 32+ctrlBlockLen
-		 * (length diffBlockLen): diffBlock (bzip2) 32+ctrlBlockLen+diffBlockLen
-		 * (to end of file): extraBlock (bzip2)
-		 * 
-		 * ctrlBlock comprises a set of records, each record 12 bytes. A record
-		 * comprises 3 x 32 bit integers. The ctrlBlock is not compressed.
-		 */
-
-		ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
-		DataOutputStream diffOut = new DataOutputStream(byteOut);
-
-		/*
-		 * Write as much of header as we have now. Size of ctrlBlock and
-		 * diffBlock must be filled in later.
-		 */
-		diffOut.write(MAGIC_BYTES);
-		diffOut.writeLong(-1); // place holder for ctrlBlockLen
-		diffOut.writeLong(-1); // place holder for diffBlockLen
-		diffOut.writeLong(newsize);
-		diffOut.flush();
-
-		GZIPOutputStream bzip2Out = new GZIPOutputStream(diffOut);
-		DataOutputStream dataOut = new DataOutputStream(bzip2Out);
-
-		int oldscore, scsc;
-
-		int overlap, Ss, lens;
-		int i;
-		int scan = 0;
-		int len = 0;
-		int lastscan = 0;
-		int lastpos = 0;
-		int lastoffset = 0;
-
-		IntByRef pos = new IntByRef();
-		// int ctrlBlockLen = 0;
-
-		while (scan < newsize) {
-			oldscore = 0;
-
-			for (scsc = scan += len; scan < newsize; scan++) {
-
-				len = search(I, oldBuf, oldsize, newBuf, newsize, scan, 0,
-						oldsize, pos);
-
-				for (; scsc < scan + len; scsc++) {
-					if ((scsc + lastoffset < oldsize)
-							&& (oldBuf[scsc + lastoffset] == newBuf[scsc])) {
-						oldscore++;
-					}
-				}
-
-				if (((len == oldscore) && (len != 0)) || (len > oldscore + 8)) {
-					break;
-				}
-
-				if ((scan + lastoffset < oldsize)
-						&& (oldBuf[scan + lastoffset] == newBuf[scan])) {
-					oldscore--;
-				}
-			}
-
-			if ((len != oldscore) || (scan == newsize)) {
-				int s = 0;
-				int Sf = 0;
-				int lenf = 0;
-				for (i = 0; (lastscan + i < scan) && (lastpos + i < oldsize);) {
-					if (oldBuf[lastpos + i] == newBuf[lastscan + i])
-						s++;
-					i++;
-					if (s * 2 - i > Sf * 2 - lenf) {
-						Sf = s;
-						lenf = i;
-					}
-				}
-
-				int lenb = 0;
-				if (scan < newsize) {
-					s = 0;
-					int Sb = 0;
-					for (i = 1; (scan >= lastscan + i) && (pos.value >= i); i++) {
-						if (oldBuf[pos.value - i] == newBuf[scan - i])
-							s++;
-						if (s * 2 - i > Sb * 2 - lenb) {
-							Sb = s;
-							lenb = i;
-						}
-					}
-				}
-
-				if (lastscan + lenf > scan - lenb) {
-					overlap = (lastscan + lenf) - (scan - lenb);
-					s = 0;
-					Ss = 0;
-					lens = 0;
-					for (i = 0; i < overlap; i++) {
-						if (newBuf[lastscan + lenf - overlap + i] == oldBuf[lastpos
-								+ lenf - overlap + i]) {
-							s++;
-						}
-						if (newBuf[scan - lenb + i] == oldBuf[pos.value - lenb
-								+ i]) {
-							s--;
-						}
-						if (s > Ss) {
-							Ss = s;
-							lens = i + 1;
-						}
-					}
-
-					lenf += lens - overlap;
-					lenb -= lens;
-				}
-
-				// ? byte casting introduced here -- might affect things
-				for (i = 0; i < lenf; i++) {
-					db[dblen + i] = (byte) (newBuf[lastscan + i] - oldBuf[lastpos
-							+ i]);
-				}
-
-				for (i = 0; i < (scan - lenb) - (lastscan + lenf); i++) {
-					eb[eblen + i] = newBuf[lastscan + lenf + i];
-				}
-
-				dblen += lenf;
-				eblen += (scan - lenb) - (lastscan + lenf);
-
-				/*
-				 * Write control block entry (3 x int)
-				 */
-				// diffOut.writeInt( lenf );
-				// diffOut.writeInt( ( scan - lenb ) - ( lastscan + lenf ) );
-				// diffOut.writeInt( ( pos[0] - lenb ) - ( lastpos + lenf ) );
-				// ctrlBlockLen += 12;
-				dataOut.writeInt(lenf);
-				dataOut.writeInt((scan - lenb) - (lastscan + lenf));
-				dataOut.writeInt((pos.value - lenb) - (lastpos + lenf));
-
-				lastscan = scan - lenb;
-				lastpos = pos.value - lenb;
-				lastoffset = pos.value - scan;
-			} // end if
-		} // end while loop
-
-		dataOut.flush();
-		bzip2Out.finish();
-
-		// now compressed ctrlBlockLen
-		int ctrlBlockLen = diffOut.size() - Util.HEADER_SIZE;
-		// System.err.println( "Diff: ctrlBlockLen=" + ctrlBlockLen );
-
-		// GZIPOutputStream gzOut;
-
-		/*
-		 * Write diff block
-		 */
-		// gzOut = new GZIPOutputStream( diffOut );
-		bzip2Out = new GZIPOutputStream(diffOut);
-		bzip2Out.write(db, 0, dblen);
-		bzip2Out.finish();
-		bzip2Out.flush();
-		int diffBlockLen = diffOut.size() - ctrlBlockLen - Util.HEADER_SIZE;
-		// System.err.println( "Diff: diffBlockLen=" + diffBlockLen );
-
-		/*
-		 * Write extra block
-		 */
-		// gzOut = new GZIPOutputStream( diffOut );
-		bzip2Out = new GZIPOutputStream(diffOut);
-		bzip2Out.write(eb, 0, eblen);
-		bzip2Out.finish();
-		bzip2Out.flush();
-		// long extraBlockLen = diffOut.size() - diffBlockLen - ctrlBlockLen -
-		// HEADER_SIZE;
-		// System.err.println( "Diff: extraBlockLen=" + extraBlockLen );
-
-		diffOut.close();
-
-		/*
-		 * Write missing header info.
-		 */
-		ByteArrayOutputStream byteHeaderOut = new ByteArrayOutputStream(
-				Util.HEADER_SIZE);
-		DataOutputStream headerOut = new DataOutputStream(byteHeaderOut);
-		headerOut.write(MAGIC_BYTES);
-		headerOut.writeLong(ctrlBlockLen); // place holder for ctrlBlockLen
-		headerOut.writeLong(diffBlockLen); // place holder for diffBlockLen
-		headerOut.writeLong(newsize);
-		headerOut.close();
-
-		// Copy header information into the diff
-		byte[] diffBytes = byteOut.toByteArray();
-		byte[] headerBytes = byteHeaderOut.toByteArray();
-
-		System.arraycopy(headerBytes, 0, diffBytes, 0, headerBytes.length);
-
-		return diffBytes;
-		// /*
-		// * Write missing header info. Need to reopen the file with
-		// RandomAccessFile
-		// * for this.
-		// */
-		// RandomAccessFile diff = new RandomAccessFile( diffFile, "rw" );
-		// diff.seek( 8 );
-		// diff.writeLong( ctrlBlockLen ); // ctrlBlockLen (compressed) @offset
-		// 8
-		// diff.writeLong( diffBlockLen ); // diffBlockLen (compressed) @offset
-		// 16
-		// diff.close();
-	}
-
-	/**
-	 * Run JBDiff from the command line. Params: oldfile newfile difffile. diff
-	 * file will be created.
-	 * 
-	 * @param arg
-	 * @throws IOException
-	 */
-	public static void main(String[] arg) throws IOException {
-
-		if (arg.length != 3) {
-			System.err
-					.println("usage example: java -Xmx200m ie.wombat.jbdiff.JBDiff oldfile newfile patchfile\n");
-			return;
-		}
-
-		File oldFile = new File(arg[0]);
-		File newFile = new File(arg[1]);
-		File diffFile = new File(arg[2]);
-
-		bsdiff(oldFile, newFile, diffFile);
-
-	}
-
-	private static class IntByRef {
-		private int value;
-	}
-}
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java
deleted file mode 100644
index 1d17a72..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/JBPatch.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (c) 2005, Joe Desbonnet, (jdesbonnet@gmail.com)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the <organization> nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */package ie.wombat.jbdiff;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.zip.GZIPInputStream;
-
-/**
- * Java Binary patcher (based on bspatch by Colin Percival)
- * 
- * @author Joe Desbonnet, joe@galway.net
- */
-public class JBPatch {
-
-	// JBPatch extensions by Stefan.Liebig@compeople.de:
-	//
-	// - uses GZIP compressor to compress ALL of the blocks (ctrl,diff,extra).
-	// - added an interface that allows using of JBPatch with streams and byte
-	// arrays
-
-	private static final String VERSION = "jbdiff-0.1.0";
-
-	/**
-	 * Run JBPatch from the command line. Params: oldfile newfile patchfile.
-	 * newfile will be created.
-	 * 
-	 * @param arg
-	 * @throws IOException
-	 */
-	public static void main(String[] arg) throws IOException {
-
-		if (arg.length != 3) {
-			System.err
-					.println("usage example: java -Xmx200m ie.wombat.jbdiff.JBPatch oldfile newfile patchfile");
-		}
-
-		File oldFile = new File(arg[0]);
-		File newFile = new File(arg[1]);
-		File diffFile = new File(arg[2]);
-
-		bspatch(oldFile, newFile, diffFile);
-	}
-
-	/**
-	 * @param oldFile
-	 * @param newFile
-	 * @param diffFile
-	 * @throws IOException
-	 */
-	public static void bspatch(File oldFile, File newFile, File diffFile)
-			throws IOException {
-		InputStream oldInputStream = new BufferedInputStream(
-				new FileInputStream(oldFile));
-		byte[] diffBytes = new byte[(int) diffFile.length()];
-		InputStream diffInputStream = new FileInputStream(diffFile);
-		Util.readFromStream(diffInputStream, diffBytes, 0, diffBytes.length);
-
-		byte[] newBytes = bspatch(oldInputStream, (int) oldFile.length(),
-				diffBytes);
-
-		OutputStream newOutputStream = new FileOutputStream(newFile);
-		newOutputStream.write(newBytes);
-		newOutputStream.close();
-	}
-
-	/**
-	 * @param oldInputStream
-	 * @param diffInputStream
-	 * @return
-	 */
-	public static byte[] bspatch(InputStream oldInputStream, int oldsize,
-			byte[] diffBytes) throws IOException {
-		/*
-		 * Read in old file (file to be patched) to oldBuf
-		 */
-		// int oldsize = (int) oldFile.length();
-		// byte[] oldBuf = new byte[oldsize + 1];
-		byte[] oldBuf = new byte[oldsize];
-		// InputStream oldIn = new FileInputStream( oldFile );
-		Util.readFromStream(oldInputStream, oldBuf, 0, oldsize);
-		oldInputStream.close();
-		// oldIn.close();
-
-		return JBPatch.bspatch(oldBuf, oldsize, diffBytes);
-	}
-
-	/**
-	 * @param oldBuf
-	 * @param oldsize
-	 * @param diffBytes
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bspatch(byte[] oldBuf, int oldsize, byte[] diffBytes)
-			throws IOException {
-		return bspatch(oldBuf, oldsize, diffBytes, diffBytes.length);
-	}
-
-	/**
-	 * @param oldBuf
-	 * @param oldsize
-	 * @param diffBuf
-	 * @param diffSize
-	 * @return
-	 * @throws IOException
-	 */
-	public static byte[] bspatch(byte[] oldBuf, int oldsize, byte[] diffBuf,
-			int diffSize) throws IOException {
-
-		DataInputStream diffIn = new DataInputStream(new ByteArrayInputStream(
-				diffBuf, 0, diffSize));
-
-		// skip headerMagic at header offset 0 (length 8 bytes)
-		diffIn.skip(8);
-
-		// ctrlBlockLen after bzip2 compression at heater offset 8 (length 8
-		// bytes)
-		long ctrlBlockLen = diffIn.readLong();
-
-		// diffBlockLen after bzip2 compression at header offset 16 (length 8
-		// bytes)
-		long diffBlockLen = diffIn.readLong();
-
-		// size of new file at header offset 24 (length 8 bytes)
-		int newsize = (int) diffIn.readLong();
-
-		// System.err.println( "newsize=" + newsize );
-		// System.err.println( "ctrlBlockLen=" + ctrlBlockLen );
-		// System.err.println( "diffBlockLen=" + diffBlockLen );
-		// System.err.println( "newsize=" + newsize );
-
-		InputStream in;
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(Util.HEADER_SIZE);
-		DataInputStream ctrlBlockIn = new DataInputStream(new GZIPInputStream(
-				in));
-
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(ctrlBlockLen + Util.HEADER_SIZE);
-		InputStream diffBlockIn = new GZIPInputStream(in);
-
-		in = new ByteArrayInputStream(diffBuf, 0, diffSize);
-		in.skip(diffBlockLen + ctrlBlockLen + Util.HEADER_SIZE);
-		InputStream extraBlockIn = new GZIPInputStream(in);
-
-		// byte[] newBuf = new byte[newsize + 1];
-		byte[] newBuf = new byte[newsize];
-
-		int oldpos = 0;
-		int newpos = 0;
-		int[] ctrl = new int[3];
-		// int nbytes;
-		while (newpos < newsize) {
-
-			for (int i = 0; i <= 2; i++) {
-				// ctrl[i] = diffIn.readInt();
-				ctrl[i] = ctrlBlockIn.readInt();
-				// System.err.println (" ctrl[" + i + "]=" + ctrl[i]);
-			}
-
-			if (newpos + ctrl[0] > newsize) {
-				throw new IOException("Corrupt patch.");
-			}
-
-			/*
-			 * Read ctrl[0] bytes from diffBlock stream
-			 */
-
-			Util.readFromStream(diffBlockIn, newBuf, newpos, ctrl[0]);
-
-			for (int i = 0; i < ctrl[0]; i++) {
-				if ((oldpos + i >= 0) && (oldpos + i < oldsize)) {
-					newBuf[newpos + i] += oldBuf[oldpos + i];
-				}
-			}
-
-			newpos += ctrl[0];
-			oldpos += ctrl[0];
-
-			if (newpos + ctrl[1] > newsize) {
-				throw new IOException("Corrupt patch.");
-			}
-
-			Util.readFromStream(extraBlockIn, newBuf, newpos, ctrl[1]);
-
-			newpos += ctrl[1];
-			oldpos += ctrl[2];
-		}
-
-		// TODO: Check if at end of ctrlIn
-		// TODO: Check if at the end of diffIn
-		// TODO: Check if at the end of extraIn
-
-		// This check is not needed since the byte array has been allocated with
-		// this constraint!
-		// if ( newBuf.length - 1 != newsize ) {
-		// throw new IOException( "Corrupt patch." );
-		// }
-
-		ctrlBlockIn.close();
-		diffBlockIn.close();
-		extraBlockIn.close();
-		diffIn.close();
-
-		return newBuf;
-		// OutputStream out = new FileOutputStream( newFile );
-		// out.write( newBuf, 0, newBuf.length - 1 );
-		// out.close();
-	}
-}
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt
deleted file mode 100644
index 8b8b4d5..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/LICENSE.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (c) 2005, Joe Desbonnet (jdesbonnet@gmail.com).
-* Based on a direct translation of bsdiff utility by Colin Percival 
-* and available at http://www.daemonology.net/bsdiff/ under the 
-* same license.
-
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the <organization> nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
\ No newline at end of file
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt
deleted file mode 100644
index 8235662..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/README.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-README file for JBDiff (Java Binary Diff) 
-Version: 0.1.1
-Release date: 1 Oct 2007
-
-JBDiff (Java Binary Diff) utility is a Java translation of the bsdiff (v4.2) utility 
-by Colin Percival. See http://www.daemonology.net/bsdiff/
-
-The file format is similar to, but currently not compatible with the bsdiff utility. 
-This is because bsdiff uses bzip2 for compression which is not available in the 
-standard Java libraries. Instead I use gzip (java.util.zip.*)
-
-The diff utility is very memory hungry. Attempting to diff very large files with 
-insufficient RAM may cause your computer to 'trash' (ie become unusably slow and may
-require a reset to recover). Comparing two 20MB files will take approx 80 seconds 
-on a 2GHz Pentium 4 and will require a maximum heap size of at least 220 MBytes. The
-maximum heap size can be specified using the -Xmx switch to the Java VM (see examples
-below). The patch utility has more modest resource requirements.
-
-EXAMPLES:
-
-To compare old.bin with new.bin and produce diff file new-old.diff:
-
-java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBDiff old.bin new.bin new-old.diff
-
-To patch old.bin with new-old.diff to produce new.bin:
-
-java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBPatch old.bin new.bin new-old.diff
-
-TODO:
-
-This first release is a rather blind port of the bsdiff utility. A vast bulk of
-the code ported to Java without any modification. There is scope 
-for optimization (the C bsdiff runs in approx 50% faster than JBDiff).
-
-Also it would be nice to be able to produce output that is compatible with bsdiff.
-I need a bzip2 library for that.
-
-Any suggestions, feedback and bugs will be much appreciated. Please email
-to joe@galway.net
-
-LICENSE:
-
-Now available under BSD license (previously GPL).
-
-CHANGES SINCE 0.1.0 RELEASE:
-
-Change of license from GPL v2 to BSD license.
-
-Joe Desbonnet
-jdesbonnet@gmail.com
-1 Oct 2007
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java
deleted file mode 100644
index 54d5eaf..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/Util.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2005, Joe Desbonnet, (jdesbonnet@gmail.com)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the <organization> nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package ie.wombat.jbdiff;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * @author
- * @author Joe Desbonnet, joe@galway.net
- * 
- */
-public class Util {
-
-	// JBDiff extensions by Stefan.Liebig@compeople.de:
-	//
-	// - introduced a HEADER_SIZE constant here
-
-	/**
-	 * Length of the diff file header.
-	 */
-	public static final int HEADER_SIZE = 32;
-
-	/**
-	 * Equiv of C library memcmp().
-	 * 
-	 * @param s1
-	 * @param s1offset
-	 * @param s2
-	 * @param n
-	 * @return
-	 */
-	/*
-	 * public final static int memcmp(byte[] s1, int s1offset, byte[] s2, int
-	 * s2offset, int n) {
-	 * 
-	 * if ((s1offset + n) > s1.length) { n = s1.length - s1offset; } if
-	 * ((s2offset + n) > s2.length) { n = s2.length - s2offset; } for (int i =
-	 * 0; i < n; i++) { if (s1[i + s1offset] != s2[i + s2offset]) { return s1[i +
-	 * s1offset] < s2[i + s2offset] ? -1 : 1; } }
-	 * 
-	 * return 0; }
-	 */
-
-	/**
-	 * Equiv of C library memcmp().
-	 * 
-	 * @param s1
-	 * @param s1offset
-	 * @param s2
-	 * @param n
-	 * @return
-	 */
-	public final static int memcmp(byte[] s1, int s1Size, int s1offset,
-			byte[] s2, int s2Size, int s2offset) {
-
-		int n = s1Size - s1offset;
-
-		if (n > (s2Size - s2offset)) {
-			n = s2Size - s2offset;
-		}
-		for (int i = 0; i < n; i++) {
-			if (s1[i + s1offset] != s2[i + s2offset]) {
-				return s1[i + s1offset] < s2[i + s2offset] ? -1 : 1;
-			}
-		}
-
-		return 0;
-		// int n = s1.length - s1offset;
-		//
-		// if (n > (s2.length - s2offset)) {
-		// n = s2.length - s2offset;
-		// }
-		// for (int i = 0; i < n; i++) {
-		// if (s1[i + s1offset] != s2[i + s2offset]) {
-		// return s1[i + s1offset] < s2[i + s2offset] ? -1 : 1;
-		// }
-		// }
-		//
-		// return 0;
-	}
-
-	/**
-	 * Read from input stream and fill the given buffer from the given offset up
-	 * to length len.
-	 * 
-	 * @param in
-	 * @param buf
-	 * @param offset
-	 * @param len
-	 * @throws IOException
-	 */
-	public static final void readFromStream(InputStream in, byte[] buf,
-			int offset, int len) throws IOException {
-
-		int totalBytesRead = 0;
-		while (totalBytesRead < len) {
-			int bytesRead = in.read(buf, offset + totalBytesRead, len
-					- totalBytesRead);
-			if (bytesRead < 0) {
-				throw new IOException(
-						"Could not read expected number of bytes.");
-			}
-			totalBytesRead += bytesRead;
-		}
-	}
-
-}
diff --git a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt b/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt
deleted file mode 100644
index dd65be1..0000000
--- a/bundles/ie.wombat.jbdiff/src/ie/wombat/jbdiff/readme-more.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This library version is based on JBDiff (http://www.wombat.ie/software/jbdiff/downloads/jbdiff-0.1.1.tar.gz)
-which is also available under the OSI Approved :: BSD License (original)
-http://www.opensource.org/licenses/bsd-license.html
-
-Version 0.1.0.1
- - Extended interface so that it is not only file based and uses GZIP compressor for all data structures.
-
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.classpath b/bundles/org.eclipse.equinox.frameworkadmin.equinox/.classpath
deleted file mode 100644
index ce0c7a5..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.project b/bundles/org.eclipse.equinox.frameworkadmin.equinox/.project
deleted file mode 100644
index 2625e9b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.frameworkadmin.equinox</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f847166..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,340 +0,0 @@
-#Wed Jan 23 10:00:41 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index ad9b6dd..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:57:33 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 51a3350..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Tue Nov 21 00:29:05 EST 2006
-eclipse.preferences.version=1
-pluginProject.equinox=false
-pluginProject.extensions=false
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.frameworkadmin.equinox/META-INF/MANIFEST.MF
deleted file mode 100644
index 11c2696..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,30 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: FrameworkAdmin Service for Equinox
-Bundle-SymbolicName: org.eclipse.equinox.frameworkadmin.equinox;singleton:=true
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.frameworkadmin.equinox.Activator
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Import-Package: org.eclipse.core.runtime.adaptor,
- org.eclipse.core.runtime.internal.adaptor,
- org.eclipse.equinox.internal.frameworkadmin.utils,
- org.eclipse.equinox.internal.provisional.configuratormanipulator,
- org.eclipse.equinox.internal.provisional.frameworkadmin,
- org.eclipse.osgi.framework.adaptor;resolution:=optional,
- org.eclipse.osgi.framework.debug;resolution:=optional,
- org.eclipse.osgi.framework.internal.core,
- org.eclipse.osgi.service.datalocation;version="1.0.0";resolution:=optional,
- org.eclipse.osgi.service.environment;version="1.0.0";resolution:=optional,
- org.eclipse.osgi.service.resolver;version="1.1.0";resolution:=optional,
- org.eclipse.osgi.storagemanager;version="1.0.0";resolution:=optional,
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.log;version="1.3.0",
- org.osgi.service.startlevel;version="1.0.0",
- org.osgi.util.tracker;version="1.3.2"
-Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox;x-friends:=org.eclipse.equinox.p2.metadata.generator,
- org.eclipse.equinox.internal.frameworkadmin.equinox.utils;x-internal:=true
-Require-Bundle: org.eclipse.equinox.common
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.4
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/about.html b/bundles/org.eclipse.equinox.frameworkadmin.equinox/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/build.properties b/bundles/org.eclipse.equinox.frameworkadmin.equinox/build.properties
deleted file mode 100644
index 611da44..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Activator.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Activator.java
deleted file mode 100644
index 4a3ec86..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Activator.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdmin;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.osgi.framework.*;
-
-/**
- * This bundle provides the {@link FrameworkAdmin} implementation for Felix.
- * 
- * This bundle registers {@link Manipulator} object with these service property values.
- *  
- *  FW_NAME = "Equinox";
- * 	FW_VERSION = "3.3";
- *	LAUCNHER_NAME = "Eclipse.exe";
- *  LAUNCHER_VERSION = "3.2";
- * 
- * The launching by the eclipse launcher is supported.
- * 
- * Handling plugins in non Jar format is not supported.
- * 
- * FwBundleState supports retrieving fw persistent data
- *  and  resolving bundles if running on equinox.
- * FwBundleState Does NOT support retrieving start Levels from fw persistent data location/
- *   
- */
-public class Activator implements BundleActivator {
-	private static BundleContext context;
-	private ServiceRegistration registrationFA;
-	EquinoxFwAdminImpl fwAdmin = null;
-
-	private void registerFwAdmin() {
-		Dictionary props = new Hashtable();
-		props.put(Constants.SERVICE_VENDOR, "Eclipse.org");
-
-		props.put(FrameworkAdmin.SERVICE_PROP_KEY_FW_NAME, EquinoxConstants.FW_NAME);
-		props.put(FrameworkAdmin.SERVICE_PROP_KEY_FW_VERSION, EquinoxConstants.FW_VERSION);
-		props.put(FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_NAME, EquinoxConstants.LAUNCHER_NAME);
-		props.put(FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_VERSION, EquinoxConstants.LAUNCHER_VERSION);
-
-		if (EquinoxFwAdminImpl.isRunningFw(context)) {
-			props.put(FrameworkAdmin.SERVICE_PROP_KEY_RUNNING_SYSTEM_FLAG, "true");
-			fwAdmin = new EquinoxFwAdminImpl(context, true);
-		} else
-			fwAdmin = new EquinoxFwAdminImpl(context);
-
-		registrationFA = context.registerService(FrameworkAdmin.class.getName(), fwAdmin, props);
-	}
-
-	/**
-	 * TODO: These services are never disposed.
-	 */
-	public static Object acquireService(String serviceName) {
-		//be tolerant of concurrent shutdown
-		BundleContext theContext = context;
-		if (theContext == null)
-			return null;
-		ServiceReference reference = theContext.getServiceReference(serviceName);
-		if (reference == null)
-			return null;
-		return theContext.getService(reference);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext bundleContext) throws Exception {
-		Activator.context = bundleContext;
-		Log.init(bundleContext);
-		registerFwAdmin();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext bundleContext) throws Exception {
-		Activator.context = null;
-		if (registrationFA != null)
-			registrationFA.unregister();
-		if (fwAdmin != null)
-			fwAdmin.deactivate();
-		Log.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherImpl.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherImpl.java
deleted file mode 100644
index 5b5a8b1..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherImpl.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
-import org.eclipse.equinox.internal.frameworkadmin.utils.SimpleBundlesState;
-import org.eclipse.equinox.internal.frameworkadmin.utils.Utils;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.service.log.LogService;
-
-public class EclipseLauncherImpl {
-	static String getStringOfCmd(String[] cmdarray) {
-		StringBuffer sb = new StringBuffer();
-		for (int i = 0; i < cmdarray.length; i++) {
-			sb.append(cmdarray[i]);
-			sb.append(" ");
-		}
-		return sb.toString();
-	}
-
-	//	BundleContext context = null;
-
-	EquinoxFwAdminImpl fwAdmin = null;
-
-	EclipseLauncherImpl(EquinoxFwAdminImpl fwAdmin) {
-		//EclipseLauncherImpl(BundleContext context, EquinoxFwAdminImpl fwAdmin) {
-		//		this.context = context;
-		this.fwAdmin = fwAdmin;
-	}
-
-	public Process launch(Manipulator manipulator, File cwd) throws IllegalArgumentException, IOException, FrameworkAdminRuntimeException {
-		SimpleBundlesState.checkAvailability(fwAdmin);
-		Log.log(LogService.LOG_DEBUG, this, "launch(Manipulator , File )", "");
-		LauncherData launcherData = manipulator.getLauncherData();
-		if (launcherData.getLauncher() == null)
-			return launchInMemory(manipulator, cwd);
-		return launchByLauncher(manipulator, cwd);
-	}
-
-	private Process launchByLauncher(Manipulator manipulator, File cwd) throws IOException {
-		LauncherData launcherData = manipulator.getLauncherData();
-
-		if (launcherData.getLauncher() == null)
-			throw new IllegalStateException("launcherData.getLauncher() must be set.");
-		String[] cmdarray = new String[] {launcherData.getLauncher().getAbsolutePath()};
-		//		try {
-		if (cwd == null)
-			cwd = launcherData.getLauncher().getParentFile();
-		Process process = Runtime.getRuntime().exec(cmdarray, null, cwd);
-		Log.log(LogService.LOG_DEBUG, "\t" + getStringOfCmd(cmdarray));
-		return process;
-	}
-
-	private Process launchInMemory(Manipulator manipulator, File cwd) throws IOException {
-		LauncherData launcherData = manipulator.getLauncherData();
-		Utils.checkAbsoluteFile(launcherData.getFwJar(), "fwJar");
-		//		this.launcherCInfo.fwJar = fwJar;
-		//		if (cwd == null)
-		//			cwd = fwJar.;
-		Utils.checkAbsoluteDir(cwd, "cwd");
-
-		List cmdList = new LinkedList();
-		if (launcherData.getJvm() != null)
-			cmdList.add(launcherData.getJvm().getAbsolutePath());
-		else
-			cmdList.add("java");
-
-		if (launcherData.getJvmArgs() != null)
-			for (int i = 0; i < launcherData.getJvmArgs().length; i++)
-				cmdList.add(launcherData.getJvmArgs()[i]);
-
-		cmdList.add("-jar");
-		cmdList.add(Utils.getRelativePath(launcherData.getFwJar(), cwd));
-
-		EquinoxManipulatorImpl.checkConsistencyOfFwConfigLocAndFwPersistentDataLoc(launcherData);//checkConsistency(this.launcherCInfo.fwConfigFile, this.launcherCInfo.fwInstancePrivateArea);
-		cmdList.add(EquinoxConstants.OPTION_CONFIGURATION);
-		cmdList.add(Utils.getRelativePath(launcherData.getFwPersistentDataLocation(), cwd));
-
-		if (launcherData.isClean())
-			cmdList.add(EquinoxConstants.OPTION_CLEAN);
-
-		String[] cmdarray = new String[cmdList.size()];
-		cmdList.toArray(cmdarray);
-		Log.log(LogService.LOG_DEBUG, "In CWD = " + cwd + "\n\t" + getStringOfCmd(cmdarray));
-		Process process = Runtime.getRuntime().exec(cmdarray, null, cwd);
-		return process;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java
deleted file mode 100644
index fae66ea..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EclipseLauncherParser.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.utils.FileUtils;
-import org.eclipse.equinox.internal.frameworkadmin.utils.Utils;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.LauncherData;
-import org.osgi.service.log.LogService;
-
-public class EclipseLauncherParser {
-
-	private String[] getConfigFileLines(LauncherData launcherData, File outputFile, boolean relative) {
-		List lines = new LinkedList();
-
-		boolean startUpFlag = false;
-		final String[] programArgs = launcherData.getProgramArgs();
-		if (programArgs != null && programArgs.length != 0)
-			for (int i = 0; i < programArgs.length; i++) {
-				if (programArgs[i].equals(EquinoxConstants.OPTION_STARTUP) && (programArgs[i + 1] != null || programArgs[i + 1].length() != 0)) {
-					lines.add(programArgs[i]);
-					lines.add(programArgs[++i]);
-					startUpFlag = true;
-				} else
-					lines.add(programArgs[i]);
-			}
-		if (launcherData.isClean())
-			lines.add(EquinoxConstants.OPTION_CLEAN);
-		File fwPersistentDataLocation = launcherData.getFwPersistentDataLocation();
-		File fwConfigLocation = launcherData.getFwConfigLocation();
-		if (fwPersistentDataLocation != null) {
-			if (fwConfigLocation != null) {
-				if (!fwPersistentDataLocation.equals(fwConfigLocation))
-					throw new IllegalStateException();
-			}
-			launcherData.setFwConfigLocation(fwPersistentDataLocation);
-		} else if (fwConfigLocation != null)
-			launcherData.setFwPersistentDataLocation(fwConfigLocation, launcherData.isClean());
-
-		if (launcherData.getFwConfigLocation() != null) {
-			lines.add(EquinoxConstants.OPTION_CONFIGURATION);
-			lines.add(launcherData.getFwConfigLocation().getAbsolutePath());
-		}
-
-		if (!startUpFlag)
-			if (launcherData.getFwJar() != null) {
-				lines.add(EquinoxConstants.OPTION_FW);
-				String path = "";
-				//if (relative)
-				//	path = Utils.getRelativePath(launcherData.getFwJar(), outputFile.getParentFile());
-				//else
-				path = launcherData.getFwJar().getAbsolutePath();
-				lines.add(path);
-			}
-
-		if (launcherData.getJvm() != null) {
-			lines.add(EquinoxConstants.OPTION_VM);
-			lines.add(launcherData.getJvm().getAbsolutePath());
-		}
-		final String[] jvmArgs = launcherData.getJvmArgs();
-		if (jvmArgs != null && jvmArgs.length != 0) {
-			lines.add(EquinoxConstants.OPTION_VMARGS);
-			for (int i = 0; i < jvmArgs.length; i++)
-				lines.add(jvmArgs[i]);
-		}
-		String[] ret = new String[lines.size()];
-		lines.toArray(ret);
-		return ret;
-	}
-
-	private void parseCmdLine(LauncherData launcherData, String[] lines) {
-		//Log.log(LogService.LOG_DEBUG, "inputFile=" + inputFile.getAbsolutePath());
-		//		final File launcherFile = launcherData.getLauncher();
-		final File launcherConfigFile = EquinoxManipulatorImpl.getLauncherConfigLocation(launcherData);
-
-		boolean clean = launcherData.isClean();
-		boolean needToUpdate = false;
-		File fwPersistentDataLoc = launcherData.getFwPersistentDataLocation();
-		File fwConfigLocation = launcherData.getFwConfigLocation();
-		if (fwPersistentDataLoc == null) {
-			if (fwConfigLocation == null) {
-				fwPersistentDataLoc = new File(launcherConfigFile.getParent(), EquinoxConstants.DEFAULT_CONFIGURATION);
-				fwConfigLocation = fwPersistentDataLoc;
-				needToUpdate = true;
-			} else {
-				fwPersistentDataLoc = fwConfigLocation;
-				needToUpdate = true;
-			}
-		} else {
-			if (fwConfigLocation == null) {
-				fwConfigLocation = fwPersistentDataLoc;
-				needToUpdate = true;
-			}
-		}
-
-		File fwJar = launcherData.getFwJar();
-		if (fwJar == null) {
-			String location = FileUtils.getEclipsePluginFullLocation(EquinoxConstants.FW_SYMBOLIC_NAME, new File(launcherConfigFile.getParent(), EquinoxConstants.PLUGINS_DIR));
-			if (location != null)
-				try {
-					fwJar = new File(new URL(location).getFile());
-					launcherData.setFwJar(fwJar);
-				} catch (MalformedURLException e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
-				}
-		}
-		// launcherData.initialize(); // reset except launcherFile.
-
-		//		launcherData.setLauncher(launcherFile);
-		boolean vmArgsFlag = false;
-
-		for (int i = 0; i < lines.length; i++) {
-			final String line = lines[i].trim();
-			StringTokenizer tokenizer = new StringTokenizer(line, " ");
-			if (line.startsWith("#"))
-				continue;
-			if (line.length() == 0)
-				continue;
-			if (tokenizer.countTokens() != 1) {
-				Log.log(LogService.LOG_WARNING, this, "parseCmdLine(String[] lines, File inputFile)", "Illegal Format:line=" + line + "tokenizer.countTokens()=" + tokenizer.countTokens());
-				//throw new IOException("Illegal Format:line=" + line + "tokenizer.countTokens()=" + tokenizer.countTokens());
-			}
-			if (vmArgsFlag) {
-				launcherData.addJvmArg(line);
-				continue;
-			}
-			if (line.startsWith("-vmargs")) {
-				vmArgsFlag = true;
-				continue;
-			}
-			if (line.startsWith(EquinoxConstants.OPTION_CONFIGURATION)) {
-				final String nextLine = lines[++i].trim();
-				File file = new File(nextLine);
-				if (!file.isAbsolute())
-					file = new File(launcherConfigFile.getParent() + File.separator + nextLine);
-				fwPersistentDataLoc = file;
-				needToUpdate = true;
-				continue;
-			} else if (line.startsWith(EquinoxConstants.OPTION_CLEAN)) {
-				clean = true;
-				needToUpdate = true;
-				continue;
-			} else if (line.startsWith(EquinoxConstants.OPTION_VM)) {
-				final String nextLine = lines[++i].trim();
-				File file = new File(nextLine);
-				if (!file.isAbsolute()) {
-					file = new File(launcherConfigFile.getAbsolutePath() + File.separator + nextLine);
-				}
-				launcherData.setJvm(file);
-				continue;
-			} else if (line.startsWith(EquinoxConstants.OPTION_FW)) {
-				final String nextLine = lines[++i].trim();
-				File file = new File(nextLine);
-				if (!file.isAbsolute()) {
-					file = new File(launcherConfigFile.getAbsolutePath() + File.separator + nextLine);
-				}
-				launcherData.setFwJar(file);
-				continue;
-			} else {
-				launcherData.addProgramArg(lines[i]);
-				//				Log.log(LogService.LOG_WARNING, this, "parseCmdLine(String[] lines, File inputFile)", "Unsupported by current impl:line=" + line);
-			}
-		}
-		if (needToUpdate) {
-			launcherData.setFwPersistentDataLocation(fwPersistentDataLoc, clean);
-			launcherData.setFwConfigLocation(fwPersistentDataLoc);
-		}
-	}
-
-	public void read(LauncherData launcherData) throws IOException {
-		final File launcherConfigFile = EquinoxManipulatorImpl.getLauncherConfigLocation(launcherData);
-		if (launcherConfigFile == null)
-			throw new IllegalStateException("launcherData.getLauncherConfigFile() should be set in advance.");
-		if (!launcherConfigFile.exists())
-			return;
-
-		BufferedReader br = null;
-		try {
-			br = new BufferedReader(new FileReader(launcherConfigFile));
-
-			String line;
-			List list = new LinkedList();
-			while ((line = br.readLine()) != null) {
-				list.add(line);
-			}
-			String[] lines = (String[]) list.toArray(new String[list.size()]);
-			String osgiInstallArea = getLauncher(lines) != null ? EquinoxManipulatorImpl.makeAbsolute(getLauncher(lines).getPath(), launcherData.getLauncher().getParentFile().getAbsolutePath()) : null;
-
-			String resolveNextLine = null;
-			for (int i = 0; i < lines.length; i++) {
-				if (resolveNextLine != null) {
-					lines[i] = EquinoxManipulatorImpl.makeAbsolute(lines[i], resolveNextLine);
-					resolveNextLine = null;
-				} else {
-					resolveNextLine = needsPathResolution(lines[i], osgiInstallArea, launcherData.getLauncher().getParentFile().getAbsolutePath() + File.separator);
-				}
-			}
-			this.parseCmdLine(launcherData, lines);
-		} finally {
-			if (br != null)
-				br.close();
-		}
-		Log.log(LogService.LOG_INFO, "Launcher Config file(" + launcherConfigFile.getAbsolutePath() + ") is read successfully.");
-	}
-
-	private File getLauncher(String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			if (args[i].equals(EquinoxConstants.OPTION_STARTUP) && i + 1 < args.length && args[i + 1].charAt(1) != '-') {
-				IPath parentFolder = new Path(args[i + 1]).removeLastSegments(1);
-				if (parentFolder.lastSegment().equals("plugins"))
-					return parentFolder.removeLastSegments(1).toFile();
-				return parentFolder.toFile();
-			}
-		}
-		return null;
-	}
-
-	//Return the base against which the path needs to be resolved, if resolution is needed.
-	private String needsPathResolution(String entry, String osgiInstallArea, String launcherFolder) {
-		if (EquinoxConstants.OPTION_CONFIGURATION.equalsIgnoreCase(entry))
-			return osgiInstallArea;
-		if ("--launcher.library".equalsIgnoreCase(entry))
-			return launcherFolder;
-		if (EquinoxConstants.OPTION_STARTUP.equalsIgnoreCase(entry))
-			return launcherFolder;
-		if (EquinoxConstants.OPTION_FW.equalsIgnoreCase(entry))
-			return osgiInstallArea != null ? osgiInstallArea : launcherFolder;
-		return null;
-	}
-
-	public void save(EquinoxLauncherData launcherData, boolean relative, boolean backup) throws IOException {
-		File launcherConfigFile = EquinoxManipulatorImpl.getLauncherConfigLocation(launcherData);
-
-		if (launcherConfigFile == null)
-			throw new IllegalStateException("launcherConfigFile cannot be set. launcher file should be set in advance.");
-		Utils.createParentDir(launcherConfigFile);
-		// backup file if exists.		
-		if (backup)
-			if (launcherConfigFile.exists()) {
-				File dest = Utils.getSimpleDataFormattedFile(launcherConfigFile);
-				if (!launcherConfigFile.renameTo(dest))
-					throw new IOException("Fail to rename from (" + launcherConfigFile + ") to (" + dest + ")");
-				Log.log(LogService.LOG_INFO, this, "saveConfigs()", "Succeed to rename from (" + launcherConfigFile + ") to (" + dest + ")");
-			}
-
-		BufferedWriter bw = null;
-		try {
-			bw = new BufferedWriter(new FileWriter(launcherConfigFile));
-
-			String[] lines = this.getConfigFileLines(launcherData, launcherConfigFile, relative);
-			String osgiInstallArea = getLauncher(lines) != null ? EquinoxManipulatorImpl.makeAbsolute(getLauncher(lines).getPath(), launcherData.getLauncher().getParentFile().getAbsolutePath()) : launcherData.getLauncher().getParentFile().getAbsolutePath();
-			String resolveNextLine = null;
-			for (int i = 0; i < lines.length; i++) {
-				if (resolveNextLine != null) {
-					lines[i] = EquinoxManipulatorImpl.makeRelative(lines[i], resolveNextLine);
-					resolveNextLine = null;
-				} else {
-					resolveNextLine = needsPathResolution(lines[i], osgiInstallArea, launcherData.getLauncher().getParentFile().getAbsolutePath() + File.separator);
-					//We don't write -configuration when it is the default value
-					if (EquinoxConstants.OPTION_CONFIGURATION.equalsIgnoreCase(lines[i])) {
-						resolveNextLine = null;
-						if (new Path(lines[i + 1]).removeLastSegments(1).equals(new Path(osgiInstallArea))) {
-							i++;
-							continue;
-						}
-					}
-				}
-				bw.write(lines[i]);
-				bw.newLine();
-			}
-			bw.flush();
-			Log.log(LogService.LOG_INFO, "Launcher Config file is saved successfully into:" + launcherConfigFile);
-		} finally {
-			if (bw != null)
-				bw.close();
-			if (launcherData.getPreviousLauncherIni() != null)
-				launcherData.getPreviousLauncherIni().delete();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java
deleted file mode 100644
index 87cde56..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java
+++ /dev/null
@@ -1,770 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.*;
-import org.eclipse.core.runtime.internal.adaptor.EclipseEnvironmentInfo;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.utils.FileUtils;
-import org.eclipse.equinox.internal.frameworkadmin.utils.SimpleBundlesState;
-import org.eclipse.equinox.internal.frameworkadmin.utils.Utils;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.eclipse.osgi.framework.internal.core.FrameworkProperties;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.*;
-import org.osgi.service.log.LogService;
-
-public class EquinoxBundlesState implements BundlesState {
-	static final long DEFAULT_TIMESTAMP = 0L;
-	private static final boolean DEBUG = false;
-	// While we recognize the amd64 architecture, we change
-	// this internally to be x86_64.
-	private static final String INTERNAL_AMD64 = "amd64"; //$NON-NLS-1$
-	private static final String INTERNAL_ARCH_I386 = "i386"; //$NON-NLS-1$
-	public static final String[] PROPS = {"osgi.os", "osgi.ws", "osgi.nl", "osgi.arch", Constants.FRAMEWORK_SYSTEMPACKAGES, "osgi.resolverMode", Constants.FRAMEWORK_EXECUTIONENVIRONMENT, "osgi.resolveOptional", "osgi.genericAliases"};
-
-	static boolean checkFullySupported() {
-		//TODO - This was previously doing a bogus check by attempting to instantiate a particular class - it's not clear what this is trying to do
-		return true;
-	}
-
-	/**
-	 * eclipse.exe will launch a fw where plugins/org.eclipse.osgi_*.*.*.*.jar
-	 * is an implementation of fw.
-	 * 
-	 * @param launcherData
-	 * @param configData
-	 * @return File of fwJar to be used.
-	 */
-	static File getFwJar(LauncherData launcherData, ConfigData configData) {
-		return getFwJar(launcherData, configData, true);
-		//
-		// // EclipseLauncherParser launcherParser = new
-		// EclipseLauncherParser(launcherData);
-		// // launcherParser.read();
-		// if (launcherData.getFwJar() != null)
-		// return launcherData.getFwJar();
-		//
-		// // check -D arguments of jvmArgs ?
-		// String[] jvmArgs = launcherData.getJvmArgs();
-		// String location = null;
-		// for (int i = 0; i < jvmArgs.length; i++) {
-		// if (jvmArgs[i].endsWith("-D" + "osgi.framework=")) {
-		// location = jvmArgs[i].substring(("-D" + "osgi.framework=").length());
-		// }
-		// }
-		// if (location != null)
-		// return new File(location);
-		//
-		// File ret = getSystemBundleFromBundleInfos(launcherData, configData);
-		// if (ret != null)
-		// return ret;
-		// return getSystemBundleBySearching(launcherData);
-	}
-
-	private static File getFwJar(LauncherData launcherData, ConfigData configData, boolean checkBundleInfos) {
-		// EclipseLauncherParser launcherParser = new
-		// EclipseLauncherParser(launcherData);
-		// launcherParser.read();
-		if (launcherData.getFwJar() != null) {
-			return launcherData.getFwJar();
-		}
-
-		// check -D arguments of jvmArgs ?
-		String[] jvmArgs = launcherData.getJvmArgs();
-		String location = null;
-		for (int i = 0; i < jvmArgs.length; i++) {
-			if (jvmArgs[i].endsWith("-D" + "osgi.framework=")) {
-				location = jvmArgs[i].substring(("-D" + "osgi.framework=").length());
-			}
-		}
-		if (location != null) {
-			return new File(location);
-		}
-
-		if (checkBundleInfos) {
-			File ret = getSystemBundleFromBundleInfos(configData);
-			if (ret != null) {
-				return ret;
-			}
-		}
-		return null;
-		//		return getSystemBundleBySearching(launcherData);
-	}
-
-	private static long getMaxId(State state) {
-		BundleDescription[] bundleDescriptions = state.getBundles();
-		long maxId = DEFAULT_TIMESTAMP;
-		for (int i = 0; i < bundleDescriptions.length; i++)
-			if (maxId < bundleDescriptions[i].getBundleId()) {
-				maxId = bundleDescriptions[i].getBundleId();
-			}
-		return maxId;
-	}
-
-	//	private static File getSystemBundleBySearching(LauncherData launcherData) {
-	//		File pluginsDir;
-	//		if (launcherData.getLauncher() == null) {
-	//			if (launcherData.getHome() == null)
-	//				return null;
-	//			pluginsDir = new File(launcherData.getHome(), "plugins");
-	//		} else {
-	//			pluginsDir = new File(launcherData.getLauncher().getParentFile(), "plugins");
-	//		}
-	//
-	//		String fullLocation = FileUtils.getEclipsePluginFullLocation(EquinoxConstants.FW_SYMBOLIC_NAME, pluginsDir);
-	//		if (fullLocation == null)
-	//			return null;
-	//		URL url = null;
-	//		try {
-	//			url = new URL(fullLocation);
-	//		} catch (MalformedURLException e) {
-	//			// TODO Auto-generated catch block
-	//			Log.log(LogService.LOG_WARNING, "fullLocation is not in proper format:" + fullLocation);
-	//		}
-	//		return url == null ? null : new File(url.getFile());
-	//	}
-
-	private static File getSystemBundleFromBundleInfos(BundleInfo[] bundleInfos) {
-		for (int i = 0; i < bundleInfos.length; i++) {
-			File match = isSystemBundle(bundleInfos[i]);
-			if (match != null)
-				return match;
-		}
-		return null;
-	}
-
-	private static File getSystemBundleFromBundleInfos(ConfigData configData) {
-		BundleInfo[] bundleInfos = configData.getBundles();
-		return getSystemBundleFromBundleInfos(bundleInfos);
-	}
-
-	static long getTimeStamp(File fwPersistentDataLocation) {
-		if (fwPersistentDataLocation == null)
-			return DEFAULT_TIMESTAMP;
-
-		File file = new File(fwPersistentDataLocation, EquinoxConstants.PERSISTENT_DIR_NAME);
-		if (!file.exists() || !file.isDirectory())
-			return DEFAULT_TIMESTAMP;
-		long ret = file.lastModified();
-		File[] lists = file.listFiles();
-		if (lists == null)
-			return ret;
-		for (int i = 0; i < lists.length; i++)
-			if (ret < lists[i].lastModified())
-				ret = lists[i].lastModified();
-		return ret;
-	}
-
-	public static File isSystemBundle(BundleInfo bundleInfo) {
-		if (bundleInfo == null || bundleInfo.getLocation() == null)
-			return null;
-		String bundleLocation = bundleInfo.getLocation();
-		if (bundleLocation.startsWith(EquinoxConstants.REFERENCE))
-			bundleLocation = bundleLocation.substring(EquinoxConstants.REFERENCE.length());
-		if (bundleLocation.startsWith("file:")) {
-			try {
-				String[] clauses = Utils.getClausesManifestMainAttributes(bundleLocation, Constants.BUNDLE_SYMBOLICNAME);
-				if (bundleLocation.indexOf(EquinoxConstants.FW_SYMBOLIC_NAME) > 0)
-					if (EquinoxConstants.PERSISTENT_DIR_NAME.equals(Utils.getPathFromClause(clauses[0])))
-						return new File(bundleLocation.substring("file:".length()));
-			} catch (RuntimeException e) {
-				e.printStackTrace();
-			}
-		}
-
-		return null;
-	}
-
-	// "osgi.os", "osgi.ws", "osgi.nl", "osgi.arch",
-	// Constants.FRAMEWORK_SYSTEMPACKAGES, "osgi.resolverMode",
-	// Constants.FRAMEWORK_EXECUTIONENVIRONMENT, "osgi.resolveOptional"
-	static Properties setDefaultPlatformProperties() {
-		Properties platformProperties = new Properties();
-		// set default value
-
-		String nl = Locale.getDefault().toString();
-		platformProperties.setProperty("osgi.nl", nl); //$NON-NLS-1$
-
-		// TODO remove EclipseEnvironmentInof
-		String os = EclipseEnvironmentInfo.guessOS(System.getProperty("os.name"));//$NON-NLS-1$);
-		platformProperties.setProperty("osgi.os", os); //$NON-NLS-1$
-
-		String ws = EclipseEnvironmentInfo.guessWS(os);
-		platformProperties.setProperty("osgi.ws", ws);
-
-		// if the user didn't set the system architecture with a command line
-		// argument then use the default.
-		String arch = null;
-		String name = FrameworkProperties.getProperty("os.arch");//$NON-NLS-1$
-		// Map i386 architecture to x86
-		if (name.equalsIgnoreCase(INTERNAL_ARCH_I386))
-			arch = org.eclipse.osgi.service.environment.Constants.ARCH_X86;
-		// Map amd64 architecture to x86_64
-		else if (name.equalsIgnoreCase(INTERNAL_AMD64))
-			arch = org.eclipse.osgi.service.environment.Constants.ARCH_X86_64;
-		else
-			arch = name;
-		platformProperties.setProperty("osgi.arch", arch); //$NON-NLS-1$			
-
-		platformProperties.setProperty(Constants.FRAMEWORK_SYSTEMPACKAGES, FrameworkProperties.getProperty(Constants.FRAMEWORK_SYSTEMPACKAGES));
-		platformProperties.setProperty(Constants.FRAMEWORK_EXECUTIONENVIRONMENT, FrameworkProperties.getProperty(Constants.FRAMEWORK_EXECUTIONENVIRONMENT));
-		platformProperties.setProperty("osgi.resolveOptional", "" + "true".equals(FrameworkProperties.getProperty("osgi.resolveOptional")));
-		return platformProperties;
-	}
-
-	EquinoxFwAdminImpl fwAdmin = null;
-
-	BundleContext context;
-
-	Manipulator manipulator = null;
-	Properties platfromProperties = new Properties();
-
-	long maxId = DEFAULT_TIMESTAMP;
-
-	StateObjectFactory soFactory = null;
-
-	State state = null;
-
-	/**
-	 * If useFwPersistentData flag equals false, this constructor will not take
-	 * a framework persistent data into account. Otherwise, it will.
-	 * 
-	 * @param context
-	 * @param fwAdmin
-	 * @param manipulator
-	 * @param useFwPersistentData
-	 */
-	EquinoxBundlesState(BundleContext context, EquinoxFwAdminImpl fwAdmin, Manipulator manipulator, boolean useFwPersistentData) {
-		this.context = context;
-		this.fwAdmin = fwAdmin;
-		// copy manipulator object for avoiding modifying the parameters of the
-		// manipulator.
-		this.manipulator = fwAdmin.getManipulator();
-		this.manipulator.setConfigData(manipulator.getConfigData());
-		this.manipulator.setLauncherData(manipulator.getLauncherData());
-		initialize(useFwPersistentData);
-	}
-
-	/**
-	 * This constructor does NOT take a framework persistent data into account.
-	 * It will create State object based on the specified platformProperties.
-	 * 
-	 * @param context
-	 * @param fwAdmin
-	 * @param manipulator
-	 * @param platformProperties
-	 */
-	EquinoxBundlesState(BundleContext context, EquinoxFwAdminImpl fwAdmin, Manipulator manipulator, Properties platformProperties) {
-		super();
-		this.context = context;
-		this.fwAdmin = fwAdmin;
-		// copy manipulator object for avoiding modifying the parameters of the
-		// manipulator.
-		this.manipulator = fwAdmin.getManipulator();
-		this.manipulator.setConfigData(manipulator.getConfigData());
-		this.manipulator.setLauncherData(manipulator.getLauncherData());
-		LauncherData launcherData = manipulator.getLauncherData();
-		ConfigData configData = manipulator.getConfigData();
-		BundleInfo[] bInfos = configData.getBundles();
-		this.composeNewState(launcherData, configData, platformProperties, bInfos);
-	}
-
-	/**
-	 * compose new state without reading framework persistent data. The
-	 * configData.getFwDependentProps() is used for the composition.
-	 * 
-	 * @param launcherData
-	 * @param configData
-	 * @param bInfos
-	 */
-	private void composeNewState(LauncherData launcherData, ConfigData configData, BundleInfo[] bInfos) {
-		this.composeNewState(launcherData, configData, configData.getFwDependentProps(), bInfos);
-	}
-
-	/**
-	 * compose new state without reading framework persistent data. The given
-	 * properties is used for the composition. If system bundle is not included
-	 * in the given bInfos, the fw jar launcherData contains will be used.
-	 * 
-	 * @param launcherData
-	 * @param configData
-	 * @param properties
-	 * @param bInfos
-	 */
-	private void composeNewState(LauncherData launcherData, ConfigData configData, Properties properties, BundleInfo[] bInfos) {
-		//Note, there use to be a lot more code in this method
-		File fwJar = getSystemBundleFromBundleInfos(configData);
-		launcherData.setFwJar(fwJar);
-		this.setFwJar(fwJar);
-		composeState(configData.getBundles(), properties, null);
-		resolve(true);
-	}
-
-	/**
-	 * compose state. If it cannot compose it by somehow, false is returned.
-	 * 
-	 * @param bInfos
-	 * @param props
-	 * @param fwPersistentDataLocation
-	 * @return if it cannot compose it by somehow, false is returned.
-	 * @throws IllegalArgumentException
-	 * @throws FrameworkAdminRuntimeException
-	 */
-	private boolean composeState(BundleInfo[] bInfos, Dictionary props, File fwPersistentDataLocation) throws IllegalArgumentException, FrameworkAdminRuntimeException {
-		BundleInfo[] infos = manipulator.getConfigData().getBundles();
-		this.manipulator.getConfigData().setBundles(null);
-		SimpleBundlesState.checkAvailability(fwAdmin);
-		this.setStateObjectFactory();
-		BundleDescription[] cachedInstalledBundles = null;
-		state = null;
-		boolean flagNewState = false;
-		if (fwPersistentDataLocation != null) {
-			//NOTE Here there was a big chunk of code reading the framework state persisted on disk
-			// and I removed it because it was causing various problems. See in previous revision
-			this.manipulator.getConfigData().setBundles(infos);
-			return false;
-		}
-		state = soFactory.createState(true);
-		flagNewState = true;
-		cachedInstalledBundles = new BundleDescription[0];
-		if (props == null) {
-			this.manipulator.getConfigData().setBundles(infos);
-			return false;
-		}
-		setPlatformPropertiesToState(props);
-		setPlatformProperties(state);
-
-		// remove initial bundle which were installed but not listed in
-		// fwConfigFileBInfos.
-		// bundleList.addAll(Arrays.asList(cachedInstalledBundles));
-		for (int i = 0; i < cachedInstalledBundles.length; i++) {
-			if (cachedInstalledBundles[i].getLocation().startsWith("initial@")) {
-				String location = FileUtils.getRealLocation(manipulator, cachedInstalledBundles[i].getLocation(), true);
-				boolean found = false;
-				for (int j = 0; j < bInfos.length; j++) {
-					if (bInfos[j].getLocation().equals(location)) {
-						found = true;
-						break;
-					}
-				}
-				if (!found)
-					state.removeBundle(cachedInstalledBundles[i].getBundleId());
-			}
-		}
-
-		try {
-			maxId = state.getHighestBundleId();
-		} catch (NoSuchMethodError e) {
-			maxId = getMaxId(state);
-		}
-		if (DEBUG) {
-			System.out.println("");
-			Log.log(LogService.LOG_DEBUG, this, "composeExpectedState()", "installBundle():");
-		}
-		if (flagNewState) {
-			int indexSystemBundle = -1;
-			for (int j = 0; j < bInfos.length; j++)
-				if (isSystemBundle(bInfos[j]) != null) {
-					indexSystemBundle = j;
-					break;
-				}
-
-			if (indexSystemBundle > 0) {
-				BundleInfo[] newBundleInfos = new BundleInfo[bInfos.length];
-				newBundleInfos[0] = bInfos[indexSystemBundle];
-				System.arraycopy(bInfos, 0, newBundleInfos, 1, indexSystemBundle);
-				if (indexSystemBundle < bInfos.length - 1)
-					System.arraycopy(bInfos, indexSystemBundle + 1, newBundleInfos, indexSystemBundle + 1, bInfos.length - indexSystemBundle - 1);
-				bInfos = newBundleInfos;
-			}
-		}
-		for (int j = 0; j < bInfos.length; j++) {
-			if (DEBUG)
-				Log.log(LogService.LOG_DEBUG, this, "composeExpectedState()", "bInfos[" + j + "]=" + bInfos[j]);
-			try {
-				this.installBundle(bInfos[j]);
-				// System.out.println("install bInfos[" + j + "]=" + bInfos[j]);
-			} catch (RuntimeException e) {
-				//catch the exception and continue
-				Log.log(LogService.LOG_ERROR, this, "composeExpectedState()", "BundleInfo:" + bInfos[j], e);
-			}
-		}
-		return true;
-	}
-
-	public BundleInfo convert(BundleDescription toConvert) {
-		boolean markedAsStarted = false;
-		int sl = BundleInfo.NO_LEVEL;
-
-		String location = null;
-		// This algorithm is not sophisticated.
-		if (toConvert.getBundleId() == 0 && EquinoxConstants.FW_SYMBOLIC_NAME.equals(toConvert.getSymbolicName())) {
-			// Converting the System Bundle
-			String symbolicNameTarget = toConvert.getSymbolicName();
-			Version versionTarget = toConvert.getVersion();
-			try {
-				File fwJar = manipulator.getLauncherData().getFwJar();
-				if (fwJar != null) {
-					String fwJarLocation = fwJar.toURL().toExternalForm();
-					String[] clauses = Utils.getClausesManifestMainAttributes(fwJarLocation, Constants.BUNDLE_SYMBOLICNAME);
-					String fwJarSymbolicName = Utils.getPathFromClause(clauses[0]);
-					String fwJarVersionSt = Utils.getManifestMainAttributes(fwJarLocation, Constants.BUNDLE_VERSION);
-					if (fwJarSymbolicName.equals(symbolicNameTarget) && fwJarVersionSt.equals(versionTarget.toString())) {
-						location = fwJarLocation;
-						markedAsStarted = true;
-					}
-				}
-			} catch (MalformedURLException e1) {
-				// TODO Auto-generated catch block
-				e1.printStackTrace();
-			} catch (FrameworkAdminRuntimeException e1) {
-				// TODO Auto-generated catch block
-				e1.printStackTrace();
-			}
-		} else {
-			location = FileUtils.getEclipseRealLocation(manipulator, toConvert.getLocation());
-			BundleInfo[] originalBInfos = manipulator.getConfigData().getBundles();
-			// if (DEBUG)
-			// System.out.println("toConvert=" + location);
-			boolean found = false;
-			for (int i = 0; i < originalBInfos.length; i++) {
-				// if (DEBUG)
-				// System.out.println("originalBInfos[" + i + "]=" +
-				// originalBInfos[i].getLocation());
-				if (originalBInfos[i].getLocation().equals(location)) {
-					markedAsStarted = originalBInfos[i].isMarkedAsStarted();
-					sl = getStartLevel(originalBInfos[i].getStartLevel());
-					found = true;
-					break;
-				}
-			}
-			if (!found) {
-				// TODO current equinox impl has no way to get the start level
-				// info persistently stored.
-				markedAsStarted = false;
-				sl = BundleInfo.NO_LEVEL;
-			}
-		}
-		BundleInfo result = new BundleInfo();
-		result.setSymbolicName(toConvert.getSymbolicName());
-		result.setVersion(toConvert.getVersion().toString());
-		result.setLocation(location);
-		result.setResolved(toConvert.isResolved());
-		result.setMarkedAsStarted(markedAsStarted);
-		result.setStartLevel(sl);
-		result.setBundleId(toConvert.getBundleId());
-		return result;
-	}
-
-	public BundleInfo[] convertState(BundleDescription[] bundles) {
-		BundleInfo[] result = new BundleInfo[bundles.length];
-		for (int i = 0; i < bundles.length; i++) {
-			result[i] = convert(bundles[i]);
-		}
-		return result;
-	}
-
-	public BundleInfo[] getExpectedState() throws FrameworkAdminRuntimeException {
-		SimpleBundlesState.checkAvailability(fwAdmin);
-		return convertState(state.getBundles());
-	}
-
-	Properties getPlatformProperties() {
-		return platfromProperties;
-	}
-
-	public BundleInfo[] getPrerequisteBundles(BundleInfo bInfo) {
-		Set set = new HashSet();
-		BundleDescription bundle = state.getBundleByLocation(bInfo.getLocation());
-		ImportPackageSpecification[] imports = bundle.getImportPackages();
-		for (int i = 0; i < imports.length; i++) {
-			BaseDescription supplier = imports[i].getSupplier();
-			if (supplier == null) {
-				if (!imports[i].getDirective(Constants.RESOLUTION_DIRECTIVE).equals(ImportPackageSpecification.RESOLUTION_OPTIONAL))
-					throw new IllegalStateException("Internal error: import supplier should not be null");
-			} else
-				set.add(supplier.getSupplier());
-			// System.out.println(supplier.getSupplier());
-		}
-		BundleDescription[] requires = bundle.getResolvedRequires();
-		for (int i = 0; i < requires.length; i++) {
-			set.add(requires[i]);
-		}
-		BundleDescription[] bundles = new BundleDescription[set.size()];
-		set.toArray(bundles);
-		return convertState(bundles);
-	}
-
-	private int getStartLevel(int startLevel) {
-		return (startLevel == BundleInfo.NO_LEVEL ? manipulator.getConfigData().getInitialBundleStartLevel() : startLevel);
-	}
-
-	public BundleInfo getSystemBundle() {
-		BundleDescription bundle = this.getSystemBundleDescription();
-		return (bundle != null ? convert(bundle) : null);
-	}
-
-	private BundleDescription getSystemBundleDescription() {
-		BundleDescription bundle = state.getBundle(0);
-		if (bundle == null || bundle.getHost() != null) { // null or a
-			// fragment bundle.
-			return null;
-		}
-		// if (DEBUG) {
-		// System.out.println("EquinoxConstants.FW_SYMBOLIC_NAME=" +
-		// EquinoxConstants.FW_SYMBOLIC_NAME);
-		// System.out.println("bundle.getSymbolicName()=" +
-		// bundle.getSymbolicName());
-		// }
-		return (EquinoxConstants.FW_SYMBOLIC_NAME.equals(bundle.getSymbolicName()) ? bundle : null);
-	}
-
-	public BundleInfo[] getSystemFragmentedBundles() {
-		BundleDescription bundle = this.getSystemBundleDescription();
-		if (bundle == null)
-			return null;
-		return convertState(bundle.getFragments());
-	}
-
-	public String[] getUnsatisfiedConstraints(BundleInfo bInfo) {
-		BundleDescription description = state.getBundleByLocation(bInfo.getLocation());
-		PlatformAdmin platformAdmin = (PlatformAdmin) Activator.acquireService(PlatformAdmin.class.getName());
-		StateHelper helper = platformAdmin.getStateHelper();
-		VersionConstraint[] constraints = helper.getUnsatisfiedConstraints(description);
-		String[] ret = new String[constraints.length];
-		for (int i = 0; i < constraints.length; i++)
-			ret[i] = constraints[i].toString();
-		return ret;
-	}
-
-	private void initialize(boolean useFwPersistentData) {
-		LauncherData launcherData = manipulator.getLauncherData();
-		ConfigData configData = manipulator.getConfigData();
-		BundleInfo[] bInfos = configData.getBundles();
-
-		if (!useFwPersistentData) {
-			composeNewState(launcherData, configData, bInfos);
-			return;
-		}
-
-		EquinoxManipulatorImpl.checkConsistencyOfFwConfigLocAndFwPersistentDataLoc(launcherData);
-		if (launcherData.isClean()) {
-			composeNewState(launcherData, configData, bInfos);
-		} else {
-			if (manipulator.getLauncherData().getFwPersistentDataLocation() == null) {
-				// TODO default value should be set more precisely.
-				File installArea = null;
-				String installAreaSt = configData.getFwDependentProp(EquinoxConstants.PROP_INSTALL);
-				if (installAreaSt == null) {
-					if (manipulator.getLauncherData().getLauncher() == null) {
-						// TODO implement
-					} else {
-						installArea = manipulator.getLauncherData().getLauncher().getParentFile();
-					}
-				} else {
-					if (installAreaSt.startsWith("file:"))
-						installArea = new File(installAreaSt.substring("file:".length()));
-					else
-						throw new IllegalStateException("Current implementation assume that property value keyed by " + EquinoxConstants.PROP_INSTALL + " must start with \"file:\". But it was not:" + installAreaSt);
-				}
-				if (DEBUG)
-					Log.log(LogService.LOG_DEBUG, this, "initialize(useFwPersistentDat)", "installArea=" + installArea);
-				File fwPersistentDataLocation = new File(installArea, "configuration");
-				manipulator.getLauncherData().setFwPersistentDataLocation(fwPersistentDataLocation, false);
-			}
-			if (!composeState(bInfos, null, manipulator.getLauncherData().getFwPersistentDataLocation()))
-				composeNewState(launcherData, configData, bInfos);
-			resolve(true);
-			// if(this.getSystemBundle()==null)
-		}
-	}
-
-	public void installBundle(BundleInfo bInfo) throws FrameworkAdminRuntimeException {
-		SimpleBundlesState.checkAvailability(fwAdmin);
-		boolean found = false;
-
-		BundleDescription[] currentInstalledBundles = state.getBundles();
-		String newLocation = FileUtils.getRealLocation(manipulator, bInfo.getLocation(), true);
-		Dictionary manifest = Utils.getOSGiManifest(newLocation);
-		if (manifest == null)
-			return;
-
-		String newSymbolicName = (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME);
-		int position = newSymbolicName.indexOf(";"); //$NON-NLS-1$
-		if (position >= 0)
-			newSymbolicName = newSymbolicName.substring(0, position).trim();
-		String newVersion = (String) manifest.get(Constants.BUNDLE_VERSION);
-		for (int i = 0; i < currentInstalledBundles.length; i++) {
-			String location = FileUtils.getRealLocation(manipulator, currentInstalledBundles[i].getLocation(), true);
-			if (newLocation.equals(location)) {
-				found = true;
-				break;
-			}
-			String symbolicName = currentInstalledBundles[i].getSymbolicName();
-			if (newSymbolicName.equals(symbolicName)) {
-				String version = currentInstalledBundles[i].getVersion().toString();
-				if (newVersion.equals(version)) {
-					found = true;
-					break;
-				}
-			}
-		}
-
-		if (!found) {
-			BundleDescription newBundleDescription = null;
-			try {
-				bInfo.setBundleId(++maxId);
-				newBundleDescription = soFactory.createBundleDescription(state, manifest, newLocation, bInfo.getBundleId());
-				state.addBundle(newBundleDescription);
-				manipulator.getConfigData().addBundle(bInfo);
-			} catch (BundleException e) {
-				Log.log(LogService.LOG_WARNING, this, "installBundle(BundleInfo)", e);
-			}
-		}
-	}
-
-	public boolean isFullySupported() {
-		return true;
-	}
-
-	public boolean isResolved() {
-		return state.isResolved();
-	}
-
-	public boolean isResolved(BundleInfo bInfo) {
-		BundleDescription description = state.getBundleByLocation(bInfo.getLocation());
-		if (description == null)
-			return false;
-		return description.isResolved();
-	}
-
-	public void resolve(boolean increment) {
-		state.resolve(increment);
-	}
-
-	void setFwJar(File fwJar) {
-		manipulator.getLauncherData().setFwJar(fwJar);
-	}
-
-	/**
-	 * get platforme properties from the given state.
-	 * 
-	 * @param state
-	 */
-	private void setPlatformProperties(State state) {
-		Dictionary platformProperties = state.getPlatformProperties()[0];
-		platfromProperties.clear();
-		if (platformProperties != null) {
-			for (Enumeration enumeration = platformProperties.keys(); enumeration.hasMoreElements();) {
-				String key = (String) enumeration.nextElement();
-				Object value = platformProperties.get(key);
-				platfromProperties.setProperty(key, (String) value);
-			}
-		}
-		if (DEBUG)
-			Utils.printoutProperties(System.out, "PlatformProperties[0]", platfromProperties);
-	}
-
-	/**
-	 * set platfromProperties required to compose state object into
-	 * platformProperties of this state.
-	 * 
-	 * @param props
-	 */
-	private void setPlatformPropertiesToState(Dictionary props) {
-		Properties platformProperties = setDefaultPlatformProperties();
-
-		for (Enumeration enumeration = props.keys(); enumeration.hasMoreElements();) {
-			String key = (String) enumeration.nextElement();
-			for (int i = 0; i < PROPS.length; i++) {
-				if (key.equals(PROPS[i])) {
-					platformProperties.put(key, props.get(key));
-					break;
-				}
-			}
-		}
-		state.setPlatformProperties(platformProperties);
-	}
-
-	private void setStateObjectFactory() {
-		if (soFactory != null)
-			return;
-		PlatformAdmin platformAdmin = (PlatformAdmin) Activator.acquireService(PlatformAdmin.class.getName());
-		// PlatformAdmin platformAdmin = (PlatformAdmin)
-		// heBundleHelper.getDefault().acquireService(PlatformAdmin.class.getName());
-		soFactory = platformAdmin.getFactory();
-	}
-
-	public String toString() {
-		if (state == null)
-			return null;
-		StringBuffer sb = new StringBuffer();
-		BundleDescription[] bundleDescriptions = state.getBundles();
-		for (int i = 0; i < bundleDescriptions.length; i++) {
-			sb.append(bundleDescriptions[i].getBundleId() + ":");
-			sb.append(bundleDescriptions[i].toString() + "(");
-			sb.append(bundleDescriptions[i].isResolved() + ")");
-			String[] ees = bundleDescriptions[i].getExecutionEnvironments();
-			for (int j = 0; j < ees.length; j++)
-				sb.append(ees[j] + " ");
-			sb.append("\n");
-		}
-		sb.append("PlatformProperties:\n");
-		Dictionary[] dics = state.getPlatformProperties();
-		for (int i = 0; i < dics.length; i++) {
-			for (Enumeration enumeration = dics[i].keys(); enumeration.hasMoreElements();) {
-				String key = (String) enumeration.nextElement();
-				String value = (String) dics[i].get(key);
-				sb.append(" (" + key + "," + value + ")\n");
-			}
-		}
-		sb.append("\n");
-		return sb.toString();
-	}
-
-	public void uninstallBundle(BundleInfo bInfo) throws FrameworkAdminRuntimeException {
-		SimpleBundlesState.checkAvailability(fwAdmin);
-		long id = DEFAULT_TIMESTAMP;
-		String targetLocation = bInfo.getLocation();
-		BundleDescription[] currentInstalledBundles = state.getBundles();
-		for (int i = 0; i < currentInstalledBundles.length; i++) {
-			String location = currentInstalledBundles[i].getLocation();
-			// TODO Is handling "reference:" needed ?
-			// if(location.startsWith("reference:"))
-			// location = location.substring("reference:".length());
-			if (targetLocation.equals(location)) {
-				id = currentInstalledBundles[i].getBundleId();
-				break;
-			}
-		}
-		if (id != DEFAULT_TIMESTAMP) {
-
-			try {
-				Dictionary manifest = Utils.getOSGiManifest(bInfo.getLocation());
-				if (manifest == null) {
-					Log.log(LogService.LOG_WARNING, this, "uninstallBundle(BundleInfo)", "Unable to get bundle manifest for: " + bInfo.getLocation());
-					return;
-				}
-				BundleDescription bundleDescription = soFactory.createBundleDescription(state, manifest, bInfo.getLocation(), id);
-				state.removeBundle(bundleDescription);
-				manipulator.getConfigData().removeBundle(bInfo);
-			} catch (BundleException e) {
-				Log.log(LogService.LOG_WARNING, this, "uninstallBundle(BundleInfo)", e);
-				// throw new ManipulatorException("Fail to
-				// createBundleDescription of bInfo:" + bInfo.toString(), e,
-				// ManipulatorException.OTHERS);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxConstants.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxConstants.java
deleted file mode 100644
index f7b4875..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxConstants.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-public class EquinoxConstants {
-
-	/**
-	 * If BundleContext#getProperty(PROP_KEY_USE_REFERENCE) does not equal "false", 
-	 * Manipulator#save() will add "reference:" to any bundle location specified osgi.bundles in order to avoid
-	 * caching its bundle jar.  Otherwise, it will add nothing to any bundle location.
-	 */
-	public static final String PROP_KEY_USE_REFERENCE = "org.eclipse.equinox.frameworkadmin.equinox.useReference"; //$NON-NLS-1$
-
-	public static final String PLUGINS_DIR = "plugins"; //$NON-NLS-1$
-	public final static String FW_SYMBOLIC_NAME = "org.eclipse.osgi"; //$NON-NLS-1$
-	public static final String DEFAULT_CONFIGURATION = "configuration"; //$NON-NLS-1$
-	public static final String CONFIG_INI = "config.ini"; //$NON-NLS-1$
-
-	public final static String FW_VERSION = "3.3"; //$NON-NLS-1$
-	public final static String FW_NAME = "Equinox"; //$NON-NLS-1$
-	public final static String LAUNCHER_VERSION = "3.2"; //$NON-NLS-1$
-	public final static String LAUNCHER_NAME = "Eclipse.exe"; //$NON-NLS-1$
-
-	public static final String OPTION_CONFIGURATION = "-configuration"; //$NON-NLS-1$
-	public static final String OPTION_FW = "-framework"; //$NON-NLS-1$
-	public static final String OPTION_VM = "-vm"; //$NON-NLS-1$
-	public static final String OPTION_VMARGS = "-vmargs"; //$NON-NLS-1$
-	public static final String OPTION_CLEAN = "-clean"; //$NON-NLS-1$
-	public static final String OPTION_STARTUP = "-startup"; //$NON-NLS-1$
-	public static final String OPTION_SHOWSPLASH = "-showsplash"; //$NON-NLS-1$
-
-	// System properties
-	public static final String PROP_BUNDLES = "osgi.bundles"; //$NON-NLS-1$
-	public static final String PROP_BUNDLES_STARTLEVEL = "osgi.bundles.defaultStartLevel"; //$NON-NLS-1$ //The start level used to install the bundles
-	public static final String PROP_INITIAL_STARTLEVEL = "osgi.startLevel"; //$NON-NLS-1$ //The start level when the fwl start
-	public static final String PROP_INSTALL = "osgi.install"; //$NON-NLS-1$
-	public static final String PROP_ECLIPSE_COMMANDS = "eclipse.commands"; //$NON-NLS-1$
-	public static final String PROP_OSGI_FW = "osgi.framework"; //$NON-NLS-1$
-	public static final String PROP_LAUNCHER_PATH = "osgi.launcherPath"; //$NON-NLS-1$
-	public static final String PROP_LAUNCHER_NAME = "osgi.launcherIni"; //$NON-NLS-1$
-
-	public static final String INI_EXTENSION = ".ini"; //$NON-NLS-1$
-	public static final String EXE_EXTENSION = ".exe"; //$NON-NLS-1$
-
-	public static final String PROP_EQUINOX_DEPENDENT_PREFIX = "osgi."; //$NON-NLS-1$
-	static final String REFERENCE = "reference:"; //$NON-NLS-1$
-	public static final String PERSISTENT_DIR_NAME = "org.eclipse.osgi"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFrameworkAdminFactoryImpl.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFrameworkAdminFactoryImpl.java
deleted file mode 100644
index 7298905..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFrameworkAdminFactoryImpl.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulatorFactory;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdmin;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdminFactory;
-
-public class EquinoxFrameworkAdminFactoryImpl extends FrameworkAdminFactory {
-	public FrameworkAdmin createFrameworkAdmin() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-		String className = System.getProperty(ConfiguratorManipulatorFactory.SYSTEM_PROPERTY_KEY);
-		if (className == null)
-			return new EquinoxFwAdminImpl();
-		return new EquinoxFwAdminImpl(className);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwAdminImpl.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwAdminImpl.java
deleted file mode 100644
index c82363d..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwAdminImpl.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Dictionary;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.utils.EclipseVersion;
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulator;
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulatorFactory;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-
-public class EquinoxFwAdminImpl implements FrameworkAdmin {
-
-	/**
-	 * If both the vendor and the Bundle-Version in the manifest match, 
-	 * return true. Otherwise false.
-	 *  
-	 * @return flag true if the ManipulatorAdmin object can handle currently running fw launch. 
-	 */
-	static boolean isRunningFw(BundleContext context) {
-		//TODO implementation for Eclipse.exe and for Equinox
-		String fwVendor = context.getProperty(Constants.FRAMEWORK_VENDOR);
-		if (!"Eclipse".equals(fwVendor))
-			return false;
-		//TODO decide if this version can be supported by this bundle.
-		Dictionary header = context.getBundle(0).getHeaders();
-		String versionSt = (String) header.get("Bundle-Version");
-		EclipseVersion version = new EclipseVersion(versionSt);
-		int value = version.compareTo(new EclipseVersion(EquinoxConstants.FW_VERSION));
-		if (value > 0) {
-			return true;
-		}
-		// TODO need to identify the version of eclipse.exe used for this launch, if used. 
-
-		//		String eclipseCommandsSt = context.getProperty(EquinoxConstants.PROP_ECLIPSE_COMMANDS);
-		//	StringTokenizer tokenizer = new StringTokenizer(eclipseCommandsSt,"\n");
-		return false;
-	}
-
-	BundleContext context = null;
-
-	boolean active = false;
-
-	private boolean runningFw = false;
-	private ConfiguratorManipulator configuratorManipulator = null;
-
-	//	private String configuratorManipulatorFactoryName = null;
-
-	EquinoxFwAdminImpl() {
-		this(null, false);
-	}
-
-	EquinoxFwAdminImpl(BundleContext context) {
-		this(context, false);
-	}
-
-	EquinoxFwAdminImpl(String configuratorManipulatorFactoryName) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-		this.context = null;
-		this.active = true;
-		this.runningFw = false;
-		//		this.configuratorManipulatorFactoryName = configuratorManipulatorFactoryName;
-		loadConfiguratorManipulator(configuratorManipulatorFactoryName);
-	}
-
-	private void loadConfiguratorManipulator(String configuratorManipulatorFactoryName) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-		if (configuratorManipulatorFactoryName == null)
-			this.configuratorManipulator = null;
-		else
-			this.configuratorManipulator = ConfiguratorManipulatorFactory.getInstance(configuratorManipulatorFactoryName);
-		return;
-	}
-
-	EquinoxFwAdminImpl(BundleContext context, boolean runningFw) {
-		this.context = context;
-		this.active = true;
-		this.runningFw = runningFw;
-	}
-
-	void deactivate() {
-		active = false;
-	}
-
-	public Manipulator getManipulator() {
-		return new EquinoxManipulatorImpl(context, this);
-	}
-
-	public Manipulator getRunningManipulator() {
-		if (this.runningFw)
-			return new EquinoxManipulatorImpl(context, this, true);
-		return null;
-	}
-
-	public boolean isActive() {
-		return active;
-	}
-
-	public Process launch(Manipulator manipulator, File cwd) throws IllegalArgumentException, FrameworkAdminRuntimeException, IOException {
-		//return new EclipseLauncherImpl(context, this).launch(manipulator, cwd);
-		return new EclipseLauncherImpl(this).launch(manipulator, cwd);
-	}
-
-	public ConfiguratorManipulator getConfiguratorManipulator() {
-		return configuratorManipulator;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java
deleted file mode 100644
index d04e47b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Properties;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.utils.FileUtils;
-import org.eclipse.equinox.internal.frameworkadmin.utils.Utils;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.log.LogService;
-
-public class EquinoxFwConfigFileParser {
-	private static final String CONFIG_DIR = "@config.dir/"; //$NON-NLS-1$
-	private static final String KEY_ECLIPSE_PROV_CACHE = "eclipse.p2.cache"; //$NON-NLS-1$
-	private static final String KEY_ECLIPSE_PROV_DATA_AREA = "eclipse.p2.data.area"; //$NON-NLS-1$
-	private static final String KEY_ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_CONFIGURL = "org.eclipse.equinox.simpleconfigurator.configUrl"; //$NON-NLS-1$
-	private static final String KEY_OSGI_BUNDLES = "osgi.bundles"; //$NON-NLS-1$
-	private static final String KEY_OSGI_FRAMEWORK = "osgi.framework"; //$NON-NLS-1$
-	private static final String KEY_OSGI_LAUNCHER_PATH = "osgi.launcherPath"; //$NON-NLS-1$
-	private static final String[] PATHS = new String[] {KEY_OSGI_LAUNCHER_PATH, KEY_ECLIPSE_PROV_CACHE};
-
-	private static boolean DEBUG = false;
-	private static String USE_REFERENCE_STRING = null;
-
-	public EquinoxFwConfigFileParser(BundleContext context) {
-		if (context != null)
-			USE_REFERENCE_STRING = context.getProperty(EquinoxConstants.PROP_KEY_USE_REFERENCE);
-
-	}
-
-	private static String getCommandLine(BundleInfo bundleInfo, final URL baseUrl) {
-		String location = bundleInfo.getLocation();
-		if (location == null)
-			return null;
-		boolean useReference = true;
-		if (location.startsWith("file:")) { //$NON-NLS-1$
-			if (USE_REFERENCE_STRING != null && USE_REFERENCE_STRING.equals("false")) //$NON-NLS-1$
-				useReference = false;
-		}
-
-		try {
-			new URL(location);
-		} catch (MalformedURLException e) {
-			Log.log(LogService.LOG_ERROR, "EquinoxFwConfigFileParser.getCommandLine():bundleInfo=" + bundleInfo, e); //$NON-NLS-1$
-			//			Never happen. ignore.
-		}
-		if (useReference)
-			if (!location.startsWith("reference:")) //$NON-NLS-1$
-				location = "reference:" + location; //$NON-NLS-1$
-
-		int startLevel = bundleInfo.getStartLevel();
-		boolean toBeStarted = bundleInfo.isMarkedAsStarted();
-
-		StringBuffer sb = new StringBuffer();
-		//		if (baseUrl != null && bundleUrl.getProtocol().equals("file")) {
-		//			String bundlePath = bundleUrl.toString();
-		//			bundlePath = Utils.getRelativePath(bundleUrl, baseUrl);
-		//			sb.append(bundlePath);
-		//		} else
-		sb.append(location);
-		if (startLevel == BundleInfo.NO_LEVEL && !toBeStarted)
-			return sb.toString();
-		sb.append('@');
-		if (startLevel != BundleInfo.NO_LEVEL)
-			sb.append(startLevel);
-		if (toBeStarted)
-			sb.append(":start"); //$NON-NLS-1$
-		return sb.toString();
-	}
-
-	private static Properties getConfigProps(BundleInfo[] bInfos, ConfigData configData, LauncherData launcherData, boolean relative, File fwJar) {
-		Properties props = new Properties();
-
-		if (configData.getInitialBundleStartLevel() != BundleInfo.NO_LEVEL)
-			props.setProperty(EquinoxConstants.PROP_BUNDLES_STARTLEVEL, Integer.toString(configData.getInitialBundleStartLevel()));
-		if (configData.getBeginingFwStartLevel() != BundleInfo.NO_LEVEL)
-			props.setProperty(EquinoxConstants.PROP_INITIAL_STARTLEVEL, Integer.toString(configData.getBeginingFwStartLevel()));
-
-		final File launcher = launcherData.getLauncher();
-		if (launcher != null) {
-			String launcherName = launcher.getName();
-			if (launcherName.endsWith(EquinoxConstants.EXE_EXTENSION)) {
-				props.setProperty(EquinoxConstants.PROP_LAUNCHER_NAME, launcherName.substring(0, launcherName.lastIndexOf(EquinoxConstants.EXE_EXTENSION)));
-				props.setProperty(EquinoxConstants.PROP_LAUNCHER_PATH, launcher.getParentFile().getAbsolutePath());
-			}
-		}
-
-		String fwJarSt = null;
-		try {
-			if (fwJar != null) {
-				fwJarSt = fwJar.toURL().toExternalForm();
-			}
-		} catch (MalformedURLException e) {
-			// Never happens
-			e.printStackTrace();
-		}
-
-		if (bInfos != null) {
-			StringBuffer sb = new StringBuffer();
-			for (int i = 0; i < bInfos.length; i++) {
-				normalizeLocation(bInfos[i]);
-				if (fwJarSt != null && fwJarSt.equals(bInfos[i].getLocation()))
-					continue; //framework jar should not appear in the bundles list
-				sb.append(getCommandLine(bInfos[i], null));
-				if (i + 1 < bInfos.length)
-					sb.append(',');
-			}
-			props.setProperty(EquinoxConstants.PROP_BUNDLES, sb.toString());
-
-		}
-		//TODO The following merging operations are suspicious.
-		props = Utils.appendProperties(props, configData.getFwIndependentProps());
-
-		props = Utils.appendProperties(props, configData.getFwDependentProps());
-
-		//Deal with the fw jar and ensure it is not set. 
-		//TODO This can't be done before because of the previous calls to appendProperties 
-		if (fwJarSt != null)
-			props.setProperty(EquinoxConstants.PROP_OSGI_FW, fwJarSt /* fwJar.getAbsolutePath() */);
-		else
-			props.remove(EquinoxConstants.PROP_OSGI_FW);
-
-		return props;
-	}
-
-	private static boolean getMarkedAsStartedFormat(String msg, String original) {
-		if (msg == null)
-			return false;
-		msg = msg.trim();
-		int colon = msg.indexOf(":"); //$NON-NLS-1$
-		if (colon > -1) {
-			return msg.substring(colon + 1).equals("start"); //$NON-NLS-1$
-		}
-		return msg.equals("start"); //$NON-NLS-1$
-	}
-
-	private static int getStartLevel(String msg, String original) {
-		if (msg == null)
-			return BundleInfo.NO_LEVEL;
-		msg = msg.trim();
-		int colon = msg.indexOf(":"); //$NON-NLS-1$
-		if (colon > 0) {
-			try {
-				return Integer.parseInt(msg.substring(0, colon));
-			} catch (NumberFormatException e) {
-				return BundleInfo.NO_LEVEL;
-			}
-		}
-		return BundleInfo.NO_LEVEL;
-	}
-
-	static boolean isFwDependent(String key) {
-		// TODO This algorithm is temporal. 
-		if (key.startsWith(EquinoxConstants.PROP_EQUINOX_DEPENDENT_PREFIX))
-			return true;
-		return false;
-	}
-
-	private static void normalizeLocation(BundleInfo bInfo) {
-		String location = bInfo.getLocation();
-		try {
-			if (location.startsWith("file:")) { //$NON-NLS-1$
-				bInfo.setLocation(new URL(location).toExternalForm());
-			} else {
-				bInfo.setLocation(new File(location).toURL().toExternalForm());
-			}
-		} catch (MalformedURLException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		//			location = location.substring("file:".length());
-		//			if (!location.startsWith("/"))
-		//				location = "/" + location;
-		//			//		if (fwJarSt != null)
-		//			//			if (fwJarSt.equals(location))
-		//			//				continue;
-		//			location = Utils.replaceAll(location, File.separator, "/");
-		//			//String jarName = location.substring(location.lastIndexOf("/") + 1);
-		//			//		if (jarName.startsWith(EquinoxConstants.FW_JAR_PLUGIN_NAME))
-		//			//			continue;
-		//			bInfo.setLocation("file:" + location);
-		//		}
-	}
-
-	/**
-	 * @param value
-	 */
-	private static void setInstallingBundles(Manipulator manipulator, String value) throws NumberFormatException {
-		ConfigData configData = manipulator.getConfigData();
-		if (value != null) {
-			String[] bInfoStrings = Utils.getTokens(value, ","); //$NON-NLS-1$
-			for (int i = 0; i < bInfoStrings.length; i++) {
-				String token = bInfoStrings[i].trim();
-				token = FileUtils.getRealLocation(manipulator, token, false).trim();
-
-				int indexI = token.indexOf("@"); //$NON-NLS-1$
-				String location = (indexI == -1) ? token : token.substring(0, indexI);
-				String realLocation = FileUtils.getEclipseRealLocation(manipulator, location);
-				String slAndFlag = (indexI > -1) ? token.substring(indexI + 1) : null;
-
-				boolean markedAsStarted = getMarkedAsStartedFormat(slAndFlag, token);
-				int startLevel = getStartLevel(slAndFlag, token);
-
-				if (realLocation != null)
-					configData.addBundle(new BundleInfo(realLocation, startLevel, markedAsStarted));
-				else
-					configData.addBundle(new BundleInfo(location, null, null, startLevel, markedAsStarted));
-			}
-		}
-	}
-
-	/**
-	 * inputFile must be not a directory but a file.
-	 * 
-	 * @param manipulator
-	 * @param inputFile
-	 * @throws IOException
-	 */
-	public void readFwConfig(Manipulator manipulator, File inputFile) throws IOException {
-		if (inputFile.isDirectory())
-			throw new IllegalArgumentException(NLS.bind(Messages.exception_inputFileIsDirectory, inputFile));
-
-		//Initialize data structures
-		ConfigData configData = manipulator.getConfigData();
-		LauncherData launcherData = manipulator.getLauncherData();
-		configData.initialize();
-
-		//Load properties
-		Properties props = new Properties();
-		InputStream is = null;
-		try {
-			is = new FileInputStream(inputFile);
-			props.load(is);
-		} finally {
-			try {
-				is.close();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			is = null;
-		}
-
-		//Start figuring out stuffs 
-		URL rootURL = launcherData.getLauncher() != null ? launcherData.getLauncher().getParentFile().toURL() : null;
-
-		//Extracting fwkJar location needs to be done first 
-		String launcherName = null;
-		String launcherPath = null;
-		configData.setBundles(null);
-
-		File fwJar = null;
-		if (props.getProperty(EquinoxConstants.PROP_OSGI_FW) != null) {
-			props.setProperty(KEY_OSGI_FRAMEWORK, EquinoxManipulatorImpl.makeAbsolute(props.getProperty(EquinoxConstants.PROP_OSGI_FW), getOSGiInstallArea(launcherData).toURL()));
-			String fwJarString = props.getProperty(KEY_OSGI_FRAMEWORK);
-			if (fwJarString != null) {
-				fwJar = new File(new URL(fwJarString).getFile());
-				launcherData.setFwJar(fwJar);
-				configData.addBundle(new BundleInfo(fwJarString));
-			}
-		}
-
-		props = makeAbsolute(props, rootURL, fwJar, inputFile.getParentFile(), getOSGiInstallArea(manipulator.getLauncherData()));
-		for (Enumeration enumeration = props.keys(); enumeration.hasMoreElements();) {
-			String key = (String) enumeration.nextElement();
-			String value = props.getProperty(key);
-			if (key.equals(EquinoxConstants.PROP_BUNDLES_STARTLEVEL))
-				configData.setInitialBundleStartLevel(Integer.parseInt(value));
-			else if (key.equals(EquinoxConstants.PROP_INITIAL_STARTLEVEL)) {
-				configData.setBeginningFwStartLevel(Integer.parseInt(value));
-			} else if (key.equals(EquinoxConstants.PROP_BUNDLES)) {
-				setInstallingBundles(manipulator, value);
-			} else {
-				if (isFwDependent(key)) {
-					configData.setFwDependentProp(key, value);
-				} else
-					configData.setFwIndependentProp(key, value);
-				if (key.equals(EquinoxConstants.PROP_LAUNCHER_NAME))
-					if (launcherData.getLauncher() == null)
-						launcherName = value;
-				if (key.equals(EquinoxConstants.PROP_LAUNCHER_PATH))
-					if (launcherData.getLauncher() == null)
-						launcherPath = value;
-			}
-		}
-		if (launcherName != null && launcherPath != null) {
-			launcherData.setLauncher(new File(launcherPath, launcherName + EquinoxConstants.EXE_EXTENSION));
-		}
-
-		Log.log(LogService.LOG_INFO, NLS.bind(Messages.log_configFile, inputFile.getAbsolutePath()));
-	}
-
-	private static Properties makeRelative(Properties props, URL rootURL, File fwJar, File configArea, File osgiInstallArea) throws IOException {
-		for (int i = 0; i < PATHS.length; i++) {
-			String path = props.getProperty(PATHS[i]);
-			if (path != null)
-				props.put(PATHS[i], EquinoxManipulatorImpl.makeRelative(path, rootURL.getFile()));
-		}
-
-		if (props.getProperty(KEY_OSGI_FRAMEWORK) != null && osgiInstallArea != null) {
-			props.put(KEY_OSGI_FRAMEWORK, EquinoxManipulatorImpl.makeRelative(props.getProperty(KEY_OSGI_FRAMEWORK), osgiInstallArea.toURL()));
-		}
-
-		if (props.getProperty(KEY_ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_CONFIGURL) != null) {
-			props.put(KEY_ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_CONFIGURL, EquinoxManipulatorImpl.makeRelative(props.getProperty(KEY_ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_CONFIGURL), configArea.toURL()));
-		}
-
-		if (props.getProperty(KEY_ECLIPSE_PROV_DATA_AREA) != null) {
-			String url = props.getProperty(KEY_ECLIPSE_PROV_DATA_AREA);
-			if (url != null) {
-				String result = EquinoxManipulatorImpl.makeRelative(url, configArea.toURL());
-				//We only relativize up to the level where the p2 and config folder are siblings (e.g. foo/p2 and foo/config)
-				if (result.startsWith("file:../..")) //$NON-NLS-1$
-					result = url;
-				else if (!result.equals(url) && result.startsWith("file:")) //$NON-NLS-1$
-					result = CONFIG_DIR + result.substring(5);
-				props.put(KEY_ECLIPSE_PROV_DATA_AREA, result);
-			}
-		}
-
-		String value = props.getProperty(KEY_OSGI_BUNDLES);
-		if (value != null && fwJar != null) {
-			File parent = fwJar.getParentFile();
-			if (parent != null)
-				props.setProperty(KEY_OSGI_BUNDLES, EquinoxManipulatorImpl.makeArrayRelative(value, parent.toURL()));
-		}
-		return props;
-	}
-
-	private static Properties makeAbsolute(Properties props, URL rootURL, File fwJar, File configArea, File osgiInstallArea) throws IOException {
-		for (int i = 0; i < PATHS.length; i++) {
-			String path = props.getProperty(PATHS[i]);
-			if (path != null)
-				props.setProperty(PATHS[i], EquinoxManipulatorImpl.makeAbsolute(path, rootURL.getFile()));
-		}
-
-		if (props.getProperty(KEY_ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_CONFIGURL) != null) {
-			props.put(KEY_ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_CONFIGURL, EquinoxManipulatorImpl.makeAbsolute(props.getProperty(KEY_ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_CONFIGURL), configArea.toURL()));
-		}
-
-		if (props.getProperty(KEY_ECLIPSE_PROV_DATA_AREA) != null) {
-			String url = props.getProperty(KEY_ECLIPSE_PROV_DATA_AREA);
-			if (url != null) {
-				if (url.startsWith(CONFIG_DIR))
-					url = "file:" + url.substring(CONFIG_DIR.length()); //$NON-NLS-1$
-				props.put(KEY_ECLIPSE_PROV_DATA_AREA, EquinoxManipulatorImpl.makeAbsolute(url, configArea.toURL()));
-			}
-		}
-
-		String value = props.getProperty(KEY_OSGI_BUNDLES);
-		if (value != null && fwJar != null) {
-			File parent = fwJar.getParentFile();
-			if (parent != null)
-				props.setProperty(KEY_OSGI_BUNDLES, EquinoxManipulatorImpl.makeArrayAbsolute(value, parent.toURL()));
-		}
-		return props;
-	}
-
-	public static File getOSGiInstallArea(LauncherData launcherData) {
-		if (launcherData == null)
-			return null;
-		String[] args = launcherData.getProgramArgs();
-		if (args == null)
-			return null;
-		for (int i = 0; i < args.length; i++) {
-			if (args[i].equals("-startup") && i + 1 < args.length && args[i + 1].charAt(1) != '-') { //$NON-NLS-1$
-				return fromOSGiJarToOSGiInstallArea(args[i + 1]);
-			}
-		}
-		if (launcherData.getFwJar() != null)
-			return fromOSGiJarToOSGiInstallArea(launcherData.getFwJar().getAbsolutePath());
-		if (launcherData.getLauncher() != null)
-			return launcherData.getLauncher().getParentFile();
-		return null;
-	}
-
-	private static File fromOSGiJarToOSGiInstallArea(String path) {
-		IPath parentFolder = new Path(path).removeLastSegments(1);
-		if (parentFolder.lastSegment().equals("plugins")) //$NON-NLS-1$
-			return parentFolder.removeLastSegments(1).toFile();
-		return parentFolder.toFile();
-	}
-
-	public void saveFwConfig(BundleInfo[] bInfos, Manipulator manipulator, boolean backup, boolean relative) throws IOException {//{
-		ConfigData configData = manipulator.getConfigData();
-		LauncherData launcherData = manipulator.getLauncherData();
-		File fwJar = EquinoxBundlesState.getFwJar(launcherData, configData);
-		launcherData.setFwJar(fwJar);
-		File outputFile = launcherData.getFwConfigLocation();
-		if (outputFile.exists()) {
-			if (outputFile.isFile()) {
-				if (!outputFile.getName().equals(EquinoxConstants.CONFIG_INI))
-					throw new IllegalStateException(NLS.bind(Messages.exception_fwConfigLocationName, outputFile.getAbsolutePath(), EquinoxConstants.CONFIG_INI));
-			} else { // Directory
-				outputFile = new File(outputFile, EquinoxConstants.CONFIG_INI);
-			}
-		} else {
-			if (!outputFile.getName().equals(EquinoxConstants.CONFIG_INI)) {
-				if (!outputFile.mkdir())
-					throw new IOException(NLS.bind(Messages.exception_failedToCreateDir, outputFile));
-				outputFile = new File(outputFile, EquinoxConstants.CONFIG_INI);
-			}
-		}
-		String header = NLS.bind(Messages.msg_ConfigFileHeader, this.getClass().getName());
-
-		Properties configProps = getConfigProps(bInfos, configData, launcherData, relative, fwJar);
-		if (configProps == null || configProps.size() == 0) {
-			Log.log(LogService.LOG_WARNING, this, "saveFwConfig() ", Messages.log_configProps); //$NON-NLS-1$
-			return;
-		}
-		Utils.createParentDir(outputFile);
-
-		if (DEBUG)
-			Utils.printoutProperties(System.out, "configProps", configProps); //$NON-NLS-1$
-
-		if (backup)
-			if (outputFile.exists()) {
-				File dest = Utils.getSimpleDataFormattedFile(outputFile);
-				if (!outputFile.renameTo(dest))
-					throw new IOException(NLS.bind(Messages.exception_failedToRename, outputFile, dest));
-				Log.log(LogService.LOG_INFO, this, "saveFwConfig()", NLS.bind(Messages.log_renameSuccessful, outputFile, dest)); //$NON-NLS-1$
-			}
-
-		FileOutputStream out = null;
-		try {
-			out = new FileOutputStream(outputFile);
-			configProps = makeRelative(configProps, launcherData.getLauncher().getParentFile().toURL(), fwJar, outputFile.getParentFile(), getOSGiInstallArea(manipulator.getLauncherData()));
-			configProps.store(out, header);
-			Log.log(LogService.LOG_INFO, NLS.bind(Messages.log_fwConfigSave, outputFile));
-		} finally {
-			try {
-				out.flush();
-				out.close();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			out = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxLauncherData.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxLauncherData.java
deleted file mode 100644
index 869115b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxLauncherData.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.io.File;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.LauncherData;
-
-public class EquinoxLauncherData extends LauncherData {
-	File previousLauncher = null;
-
-	public EquinoxLauncherData(String fwName, String fwVersion, String launcherName, String launcherVersion) {
-		super(fwName, fwVersion, launcherName, launcherVersion);
-	}
-
-	public void setLauncher(File launcherFile) {
-		if (previousLauncher == null && launcherFile != null && !launcherFile.equals(getLauncher()))
-			previousLauncher = EquinoxManipulatorImpl.getLauncherConfigLocation(this);
-		super.setLauncher(launcherFile);
-	}
-
-	File getPreviousLauncherIni() {
-		return previousLauncher;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxManipulatorImpl.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxManipulatorImpl.java
deleted file mode 100644
index dd5053b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxManipulatorImpl.java
+++ /dev/null
@@ -1,695 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.utils.FileUtils;
-import org.eclipse.equinox.internal.frameworkadmin.utils.SimpleBundlesState;
-import org.eclipse.equinox.internal.frameworkadmin.utils.Utils;
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.osgi.framework.*;
-import org.osgi.service.log.LogService;
-import org.osgi.service.startlevel.StartLevel;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class EquinoxManipulatorImpl implements Manipulator {
-	private static final long DEFAULT_LASTMODIFIED = 0L;
-	private static final boolean LOG_ILLEGALSTATEEXCEPTION = false;
-	private static final String COMMA = ","; //$NON-NLS-1$
-	private static final String FILE_PROTOCOL = "file:"; //$NON-NLS-1$
-
-	/**
-	 * If the fwConfigLocation is a file and its name does not equal "config.ini",
-	 * throw an IllegaStateException. 
-	 * If the fwConfigLocation is a file and its name equals "config.ini",
-	 * fwConfigLocation will be updated by its parent directory.
-	 * 
-	 * Then, reset fwConfigLocation and fwPersistentDataLocation to be matched.
-	 * 
-	 * @param launcherData
-	 */
-	static void checkConsistencyOfFwConfigLocAndFwPersistentDataLoc(LauncherData launcherData) {
-		File fwConfigLocation = launcherData.getFwConfigLocation();
-		File fwPersistentDataLocation = launcherData.getFwPersistentDataLocation();
-
-		if (fwConfigLocation != null) {
-			if (fwConfigLocation.isFile()) {
-				if (fwConfigLocation.getName().equals(EquinoxConstants.CONFIG_INI))
-					fwConfigLocation = fwConfigLocation.getParentFile();
-				else
-					throw new IllegalStateException("fwConfigLocation is not a directory but its name does NOT equal \"" + EquinoxConstants.CONFIG_INI + "\"!\n" + "\tfwConfigLocation=" + fwConfigLocation.getAbsolutePath() + "\n\t,fwPersistentDataLocation=" + fwPersistentDataLocation.getAbsolutePath());
-				launcherData.setFwConfigLocation(fwConfigLocation);
-			}
-			if (fwPersistentDataLocation != null) {
-				//				Log.log(LogService.LOG_DEBUG, "fwConfigLocation=" + fwConfigLocation.getAbsolutePath() + ",\n\tfwInstancePrivateArea=" + fwPersistentDataLocation.getAbsolutePath());
-				//if (!fwConfigLocation.getParentFile().equals(fwPersistentDataLocation))
-				//throw new IllegalStateException("!configFile.getParentFile().equals(fwInstancePrivateArea)\n" + "\tconfigFile=" + fwConfigLocation.getAbsolutePath() + "\n\t,fwInstancePrivateArea=" + fwPersistentDataLocation.getAbsolutePath());
-				if (!fwConfigLocation.equals(fwPersistentDataLocation))
-					throw new IllegalStateException("!fwConfigLocation.equals(fwPersistentDataLocation)\n" + "\t!fwConfigLocation=" + fwConfigLocation.getAbsolutePath() + "\n\t,fwPersistentDataLocation=" + fwPersistentDataLocation.getAbsolutePath());
-			} else
-				launcherData.setFwPersistentDataLocation(fwConfigLocation, launcherData.isClean());
-			//launcherData.setFwPersistentDataLocation(fwConfigLocation.getParentFile(), launcherData.isClean());
-		} else {
-			if (fwPersistentDataLocation != null) {
-				launcherData.setFwConfigLocation(fwPersistentDataLocation);
-				//launcherData.setFwConfigLocation(new File(fwPersistentDataLocation, EquinoxConstants.CONFIG_INI));
-			} else {
-				File home = launcherData.getHome();
-				if (home == null)
-					throw new IllegalStateException("All of fwConfigLocation, fwPersistentDataLocation, and home are not set");
-				fwConfigLocation = new File(home, "configuration");
-				launcherData.setFwPersistentDataLocation(fwConfigLocation, launcherData.isClean());
-				launcherData.setFwConfigLocation(fwConfigLocation);
-			}
-		}
-	}
-
-	static File getLauncherConfigLocation(LauncherData launcherData) {
-		File launcherConfigLocation = launcherData.getLauncherConfigLocation();
-		if (launcherConfigLocation != null)
-			return launcherConfigLocation;
-
-		File launcher = launcherData.getLauncher();
-		if (launcher == null)
-			return null;
-		String launcherName = launcher.getName();
-		int dotLocation = launcherName.lastIndexOf(".");
-		if (dotLocation != -1)
-			launcherName = launcherName.substring(0, dotLocation);
-		File result = new File(launcher.getParent() + File.separator + launcherName + EquinoxConstants.INI_EXTENSION);
-		//		launcherData.setLauncherConfigLocation(result);
-		return result;
-	}
-
-	ConfigData configData = new ConfigData(EquinoxConstants.FW_NAME, EquinoxConstants.FW_VERSION, EquinoxConstants.LAUNCHER_NAME, EquinoxConstants.LAUNCHER_VERSION);
-	EquinoxLauncherData launcherData = new EquinoxLauncherData(EquinoxConstants.FW_NAME, EquinoxConstants.FW_VERSION, EquinoxConstants.LAUNCHER_NAME, EquinoxConstants.LAUNCHER_VERSION);
-
-	BundleContext context = null;
-	private Properties platformProperties = new Properties();
-
-	ServiceTracker cmTracker;
-	int trackingCount = -1;
-
-	//	private final boolean runtime;
-
-	ConfiguratorManipulator configuratorManipulator;
-
-	EquinoxFwAdminImpl fwAdmin = null;
-
-	EquinoxManipulatorImpl(BundleContext context, EquinoxFwAdminImpl fwAdmin) {
-		this(context, fwAdmin, false);
-	}
-
-	EquinoxManipulatorImpl(BundleContext context, EquinoxFwAdminImpl fwAdmin, boolean runtime) {
-		this.context = context;
-		this.fwAdmin = fwAdmin;
-		if (context != null) {
-			cmTracker = new ServiceTracker(context, ConfiguratorManipulator.class.getName(), null);
-			cmTracker.open();
-		}
-		//		this.runtime = runtime;
-		if (runtime)
-			initializeRuntime();
-		// XXX For Equinox, default value of Initial Bundle Start Level is 4.
-		// Precisely speaking, it's not correct. 
-		// Equinox doesn't support setting initial bundle start level as an OSGi terminology.
-		// Only bundles installed by config.ini and updateconfigurator will have that start level(4).
-		// Others has a start level of 1.
-		configData.setInitialBundleStartLevel(4);
-	}
-
-	public BundlesState getBundlesState() throws FrameworkAdminRuntimeException {
-		if (context == null)
-			return new SimpleBundlesState(fwAdmin, this, EquinoxConstants.FW_SYMBOLIC_NAME);
-
-		if (!EquinoxBundlesState.checkFullySupported())
-			return new SimpleBundlesState(fwAdmin, this, EquinoxConstants.FW_SYMBOLIC_NAME);
-
-		if (platformProperties.isEmpty())
-			return new EquinoxBundlesState(context, fwAdmin, this, false);
-		// XXX checking if fwDependent or fwIndependent platformProperties are updated after the platformProperties was created might be required for better implementation.		
-		return new EquinoxBundlesState(context, fwAdmin, this, platformProperties);
-	}
-
-	public ConfigData getConfigData() throws FrameworkAdminRuntimeException {
-		return configData;
-	}
-
-	public BundleInfo[] getExpectedState() throws IllegalArgumentException, FrameworkAdminRuntimeException {
-		//Log.log(LogService.LOG_DEBUG, this, "getExpectedState()", "BEGIN");
-		SimpleBundlesState.checkAvailability(fwAdmin);
-
-		BundlesState bundleState = this.getBundlesState();
-		if (bundleState instanceof SimpleBundlesState)
-			return new BundleInfo[0];
-		bundleState.resolve(true);
-
-		return bundleState.getExpectedState();
-	}
-
-	public LauncherData getLauncherData() throws FrameworkAdminRuntimeException {
-		return launcherData;
-	}
-
-	/**
-	 * Return the configuration location.
-	 * 
-	 * @see Location
-	 */
-	private File getRunningConfigurationLocation() {
-		ServiceTracker tracker = null;
-		Filter filter = null;
-		try {
-			filter = context.createFilter(Location.CONFIGURATION_FILTER);
-		} catch (InvalidSyntaxException e) {
-			// ignore this. It should never happen as we have tested the above format.
-		}
-		tracker = new ServiceTracker(context, filter, null);
-		tracker.open();
-		Location location = (Location) tracker.getService();
-		URL url = location.getURL();
-		if (!url.getProtocol().equals("file"))
-			return null;
-		return new File(url.getFile());
-	}
-
-	private File getRunningLauncherFile() {
-		File launcherFile = null;
-		String eclipseCommandsSt = context.getProperty(EquinoxConstants.PROP_ECLIPSE_COMMANDS);
-		if (eclipseCommandsSt == null)
-			return null;
-
-		StringTokenizer tokenizer = new StringTokenizer(eclipseCommandsSt, "\n");
-		boolean found = false;
-		String launcherSt = null;
-		while (tokenizer.hasMoreTokens()) {
-			String token = tokenizer.nextToken();
-			if (found) {
-				launcherSt = token;
-				break;
-			}
-			if (token.equals("-launcher"))
-				found = true;
-		}
-		if (launcherSt != null)
-			launcherFile = new File(launcherSt);
-		return launcherFile;
-	}
-
-	private Properties getRunningPlatformProperties() {
-		Properties props = new Properties();
-		for (int i = 0; i < EquinoxBundlesState.PROPS.length; i++) {
-			String value = context.getProperty(EquinoxBundlesState.PROPS[i]);
-			if (value != null)
-				props.setProperty(EquinoxBundlesState.PROPS[i], value);
-		}
-		return props;
-	}
-
-	public long getTimeStamp() {
-		long ret = this.getTimeStampWithoutFwPersistentData();
-		if (this.launcherData.isClean())
-			return ret;
-		long lastModifiedFwPersistent = EquinoxBundlesState.getTimeStamp(launcherData.getFwPersistentDataLocation());
-		return Math.max(ret, lastModifiedFwPersistent);
-	}
-
-	private long getTimeStampWithoutFwPersistentData() {
-		SimpleBundlesState.checkAvailability(fwAdmin);
-		File launcherConfigFile = getLauncherConfigLocation(launcherData);
-		long lastModifiedLauncherConfigFile = DEFAULT_LASTMODIFIED;
-		long lastModifiedFwConfigFile = DEFAULT_LASTMODIFIED;
-		if (launcherConfigFile != null) {
-			// use launcher. -- > load from LaucnherConfig file.
-			lastModifiedLauncherConfigFile = launcherConfigFile.lastModified();
-		}
-		checkConsistencyOfFwConfigLocAndFwPersistentDataLoc(launcherData);
-
-		if (launcherData.getFwConfigLocation() != null) {
-			File fwConfigFile = new File(launcherData.getFwConfigLocation(), EquinoxConstants.CONFIG_INI);
-			lastModifiedFwConfigFile = fwConfigFile.lastModified();
-		}
-		long ret = Math.max(lastModifiedLauncherConfigFile, lastModifiedFwConfigFile);
-		return ret;
-	}
-
-	//	// 
-	//	public void load() throws IllegalStateException, IOException, FrameworkAdminRuntimeException {
-	//		this.load(true);
-	//	}
-
-	public void initialize() {
-		Log.log(LogService.LOG_DEBUG, this, "initialize()", "BEGIN");
-		configData.initialize();
-		launcherData.initialize();
-	}
-
-	private void initializeRuntime() {
-		//TODO refine the implementation. using some MAGIC dependent on Eclipse.exe and Equinox implementation,
-		// set parameters according to the current running fw.
-
-		// 1. retrieve location data from Location services registered by equinox fw.
-		String fwJarLocation = context.getProperty(EquinoxConstants.PROP_OSGI_FW);
-		if (!fwJarLocation.startsWith("file:"))
-			throw new IllegalStateException("Current implementation assume that property value keyed by " + EquinoxConstants.PROP_OSGI_FW + " must start with \"file:\". But it was not:" + fwJarLocation);
-		File fwJar = new File(fwJarLocation.substring("file:".length()));
-		//System.out.println("fwJar=" + fwJar);
-		File fwConfigLocation = getRunningConfigurationLocation();
-		File launcherFile = getRunningLauncherFile();
-		launcherData.setFwJar(fwJar);
-		launcherData.setFwPersistentDataLocation(fwConfigLocation, false);
-		launcherData.setLauncher(launcherFile);
-		try {
-			this.loadWithoutFwPersistentData();
-		} catch (IOException e1) {
-			// TODO Auto-generated catch block
-			e1.printStackTrace();
-		}
-
-		// 2. Create a Manipulator object fully initialized to the current running fw.
-
-		ServiceReference reference = context.getServiceReference(StartLevel.class.getName());
-		StartLevel startLevel = (StartLevel) context.getService(reference);
-		Bundle[] bundles = context.getBundles();
-		BundleInfo[] bInfos = new BundleInfo[bundles.length];
-		for (int i = 0; i < bundles.length; i++) {
-			//			System.out.println("bundles[" + i + "]=" + bundles[i]);
-			try {
-				if (bundles[i].getBundleId() == 0) // SystemBundle
-					bInfos[i] = new BundleInfo(bundles[i].getSymbolicName(), (String) bundles[i].getHeaders().get(Constants.BUNDLE_VERSION), FileLocator.getBundleFile(bundles[i]).getAbsolutePath(), -1, true);
-				else {
-					bInfos[i] = new BundleInfo(bundles[i].getSymbolicName(), (String) bundles[i].getHeaders().get(Constants.BUNDLE_VERSION), FileLocator.getBundleFile(bundles[i]).getAbsolutePath(), startLevel.getBundleStartLevel(bundles[i]), startLevel.isBundlePersistentlyStarted(bundles[i]));
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		configData.setBundles(bInfos);
-		platformProperties = this.getRunningPlatformProperties();
-
-		// copy system properties to ConfigData
-		Properties props = System.getProperties();
-		for (Enumeration enumeration = props.keys(); enumeration.hasMoreElements();) {
-			String key = (String) enumeration.nextElement();
-			String value = props.getProperty(key);
-			if (toBeEliminated(key))
-				continue;
-			if (EquinoxFwConfigFileParser.isFwDependent(key))
-				configData.setFwDependentProp(key, value);
-			else
-				configData.setFwIndependentProp(key, value);
-		}
-
-		// update initialBundleStartLevel
-		StartLevel slAdmin = (StartLevel) Activator.acquireService(StartLevel.class.getName());
-		int initialBSL = configData.getInitialBundleStartLevel();
-		if (initialBSL != slAdmin.getInitialBundleStartLevel())
-			configData.setInitialBundleStartLevel(slAdmin.getInitialBundleStartLevel());
-
-		//		for (int j = 0; j < bInfos.length; j++)
-		//			configData.addBundle(bInfos[j]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator#load()
-	 */
-	public void load() throws IllegalStateException, IOException, FrameworkAdminRuntimeException {
-		Log.log(LogService.LOG_DEBUG, this, "load()", "BEGIN");
-		loadWithoutFwPersistentData();
-
-		BundlesState bundlesState = null;
-		if (EquinoxBundlesState.checkFullySupported()) {
-			//	bundlesState = new EquinoxBundlesState(context, fwAdmin, this, true, runtime);
-			bundlesState = new EquinoxBundlesState(context, fwAdmin, this, !launcherData.isClean());
-			platformProperties = ((EquinoxBundlesState) bundlesState).getPlatformProperties();
-
-		} else {
-			bundlesState = new SimpleBundlesState(fwAdmin, this, EquinoxConstants.FW_SYMBOLIC_NAME);
-			platformProperties.clear();
-		}
-		updateAccordingToExpectedState(bundlesState);
-		//		if (!useConfigurator)
-		//			return;
-		setConfiguratorManipulator();
-		if (this.configuratorManipulator == null)
-			return;
-		configuratorManipulator.updateBundles(this);
-		return;
-	}
-
-	private void loadWithoutFwPersistentData() throws IOException {
-		SimpleBundlesState.checkAvailability(fwAdmin);
-		File launcherConfigFile = getLauncherConfigLocation(launcherData);
-		if (launcherConfigFile != null) {
-			// use launcher. -- > load from LaucnherConfig file.
-			// the parameters in memory will be updated.
-			EclipseLauncherParser parser = new EclipseLauncherParser();
-			parser.read(launcherData);
-		}
-		checkConsistencyOfFwConfigLocAndFwPersistentDataLoc(launcherData);
-
-		File fwConfigFile = new File(launcherData.getFwConfigLocation(), EquinoxConstants.CONFIG_INI);
-		EquinoxFwConfigFileParser parser = new EquinoxFwConfigFileParser(context);
-		if (fwConfigFile.exists())
-			parser.readFwConfig(this, fwConfigFile);
-
-	}
-
-	// Save all parameter in memory into proper config files.
-	public void save(boolean backup) throws IOException, FrameworkAdminRuntimeException {
-		Log.log(LogService.LOG_DEBUG, this, "save()", "BEGIN");
-		SimpleBundlesState.checkAvailability(fwAdmin);
-
-		try {
-			updateAccordingToExpectedState(this.getBundlesState());
-		} catch (IllegalStateException e) {
-			// ignore.
-		}
-		//		File fwJar = EquinoxBundlesState.getFwJar(launcherData, configData);
-		//		if (fwJar != null)
-		//			launcherData.setFwJar(fwJar);
-
-		//if (context != null)
-		ConfiguratorManipulator previousConfigurator = setConfiguratorManipulator();
-		if (previousConfigurator != null)
-			previousConfigurator.cleanup(this);
-
-		BundleInfo[] newBInfos = null;
-		if (configuratorManipulator != null) { // Optimize BundleInfo[] 
-			try {
-				newBInfos = configuratorManipulator.save(this, backup);
-			} catch (IllegalStateException e) {
-				// TODO Auto-generated catch block
-				if (LOG_ILLEGALSTATEEXCEPTION)
-					Log.log(LogService.LOG_WARNING, this, "save()", e);
-				newBInfos = configData.getBundles();
-			}
-		} else {
-			newBInfos = configData.getBundles();
-		}
-
-		boolean stateIsEmpty = configData.getBundles().length == 0;
-
-		File launcherConfigFile = getLauncherConfigLocation(launcherData);
-		if (launcherConfigFile != null) {
-			if (!stateIsEmpty) {
-				// Use launcher. -- > save LauncherConfig file.
-				EclipseLauncherParser launcherParser = new EclipseLauncherParser();
-				launcherParser.save(launcherData, true, backup);
-			} else {
-				// No bundles in configuration, so delete the launcher config file
-				launcherConfigFile.delete();
-			}
-		}
-
-		checkConsistencyOfFwConfigLocAndFwPersistentDataLoc(launcherData);
-
-		//		//if (context != null)
-		//		setConfiguratorManipulator();
-		//
-		//		BundleInfo[] newBInfos = null;
-		//		if (configuratorManipulator != null) { // Optimize BundleInfo[] 
-		//			try {
-		//				newBInfos = configuratorManipulator.save(this, backup);
-		//			} catch (IllegalStateException e) {
-		//				// TODO Auto-generated catch block
-		//				if (LOG_ILLEGALSTATEEXCEPTION)
-		//					Log.log(LogService.LOG_WARNING, this, "save()", e);
-		//				newBInfos = configData.getBundles();
-		//			}
-		//		} else {
-		//			newBInfos = configData.getBundles();
-		//		}
-
-		if (!stateIsEmpty) {
-			// Save FwConfigFile
-			EquinoxFwConfigFileParser parser = new EquinoxFwConfigFileParser(context);
-			parser.saveFwConfig(newBInfos.length != 0 ? newBInfos : getConfigData().getBundles(), this, backup, false);
-		} else {
-			File configDir = launcherData.getFwConfigLocation();
-			File outputFile = new File(configDir, EquinoxConstants.CONFIG_INI);
-			if (outputFile != null && outputFile.exists()) {
-				outputFile.delete();
-			}
-			if (configDir != null && configDir.exists()) {
-				configDir.delete();
-			}
-		}
-	}
-
-	public void setConfigData(ConfigData configData) {
-		this.configData.initialize();
-		this.configData.setInitialBundleStartLevel(configData.getInitialBundleStartLevel());
-		this.configData.setBeginningFwStartLevel(configData.getBeginingFwStartLevel());
-		BundleInfo[] bInfos = configData.getBundles();
-		for (int i = 0; i < bInfos.length; i++)
-			this.configData.addBundle(bInfos[i]);
-		this.configData.setFwIndependentProps(configData.getFwIndependentProps());
-		if (this.configData.getFwName().equals(configData.getFwName()))
-			if (this.configData.getFwVersion().equals(configData.getFwVersion())) {
-				// TODO refine the algorithm to copying fw dependent props.
-				//  configData.getFwName()/getFwVersion()/
-				//	getLauncherName()/getLauncherVersion() might be taken into consideration. 
-				this.configData.setFwDependentProps(configData.getFwDependentProps());
-			}
-	}
-
-	/**
-	 * 1. get all ServiceReferences of ConfiguratorManipulator.   
-	 * 2. Check if there any ConfiguratorBundle in the Bundles list that can be manipulated by 
-	 * 	the available ConfiguratorManipulators.
-	 * 3. Choose the one that will be firstly started among them.
-	 * 4. set the object that corresponds to the chosen ConfiguratorBundle.  
-	 * 
-	 */
-	private ConfiguratorManipulator setConfiguratorManipulator() {
-		if (context == null) {
-			this.configuratorManipulator = this.fwAdmin.getConfiguratorManipulator();
-			return null;
-		}
-		ServiceReference[] references = cmTracker.getServiceReferences();
-		if (references == null)
-			return null;
-
-		//		int count = cmTracker.getTrackingCount();
-		//		if (count == this.trackingCount)
-		//			return;
-		//		this.trackingCount = count;
-
-		BundleInfo[] bInfos = configData.getBundles();
-		int initialBSL = configData.getInitialBundleStartLevel();
-		bInfos = Utils.sortBundleInfos(bInfos, initialBSL);
-		//int index = -1;	
-		ConfiguratorManipulator previousConfiguratorManipulator = configuratorManipulator;
-		configuratorManipulator = null;
-		for (int i = 0; i < bInfos.length; i++) {
-			String location = bInfos[i].getLocation();
-			location = FileUtils.getRealLocation(this, location, true);
-			if (!bInfos[i].isMarkedAsStarted())
-				continue;
-			for (int j = 0; j < references.length; j++)
-				if (references[j].getProperty(ConfiguratorManipulator.SERVICE_PROP_KEY_CONFIGURATOR_BUNDLESYMBOLICNAME).equals(Utils.getPathFromClause(Utils.getManifestMainAttributes(location, Constants.BUNDLE_SYMBOLICNAME)))) {
-					configuratorManipulator = (ConfiguratorManipulator) cmTracker.getService(references[j]);
-					break;
-				}
-			if (configuratorManipulator != null)
-				break;
-		}
-		if (configuratorManipulator != previousConfiguratorManipulator)
-			return previousConfiguratorManipulator;
-		return null;
-	}
-
-	public void setLauncherData(LauncherData value) {
-		launcherData.initialize();
-		launcherData.setFwConfigLocation(value.getFwConfigLocation());
-		launcherData.setFwPersistentDataLocation(value.getFwPersistentDataLocation(), value.isClean());
-		launcherData.setJvm(value.getJvm());
-		launcherData.setJvmArgs(value.getJvmArgs());
-		if (launcherData.getFwName().equals(value.getFwName()))
-			if (launcherData.getFwVersion().equals(value.getFwVersion())) {
-				// TODO launcherData.getFwName()/getFwVersion()/
-				//	getLauncherName()/getLauncherVersion() might be taken into consideration
-				//  for copying . 
-				launcherData.setFwJar(value.getFwJar());
-				launcherData.setHome(value.getHome());
-				launcherData.setLauncher(value.getLauncher());
-				launcherData.setLauncherConfigLocation(value.getLauncherConfigLocation());
-			}
-	}
-
-	/**
-	 * Temporal implementation.
-	 * 
-	 * If a property of the given key should be eliminated
-	 *  from FwDependentProperties and FwIndependentProperties,
-	 *  return true. Otherwise false.
-	 * 
-	 * @param key
-	 * @return true if it should be elimineted from FwDependentProperties and FwIndependentProperties,
-	 */
-	private boolean toBeEliminated(String key) {
-		if (key.startsWith("java."))
-			return true;
-		return false;
-	}
-
-	public String toString() {
-		StringBuffer sb = new StringBuffer();
-		sb.append("++++++++++++++++++++++++++++++++++++++++++\n" + "Class:" + this.getClass().getName() + "\n");
-		sb.append("------------- LauncherData -----------\n");
-		sb.append(launcherData.toString());
-		sb.append("------------- ConfigData -----------\n");
-		sb.append(configData.toString());
-		sb.append("\n" + Utils.toStringProperties("platformProperties", this.platformProperties));
-		sb.append("++++++++++++++++++++++++++++++++++++++++++\n");
-		return sb.toString();
-	}
-
-	private void updateAccordingToExpectedState(BundlesState bundlesState) {
-		//		File newFwJar = EquinoxBundlesState.getFwJar(launcherData, configData);
-		//		if (bundlesState instanceof EquinoxBundlesState)
-		//			((EquinoxBundlesState) bundlesState).setFwJar(newFwJar);
-		//
-		//		if (launcherData.getFwJar() == null && newFwJar != null)
-		//			launcherData.setFwJar(newFwJar);
-		BundleInfo[] newBundleInfos = bundlesState.getExpectedState();
-		configData.setBundles(newBundleInfos);
-	}
-
-	public static String makeRelative(String original, String rootPath) {
-		IPath path = new Path(original);
-		// ensure we have an absolute path to start with
-		if (!path.isAbsolute())
-			return original;
-
-		//Returns the original string if no relativization has been done
-		String result = makeRelative(path, new Path(rootPath));
-		return path.toOSString().equals(result) ? original : result;
-	}
-
-	/*
-	 * Make the given path relative to the specified root, if applicable. If not, then
-	 * return the path as-is.
-	 * 
-	 * Method similar to one from SimpleConfigurationManipulatorImpl.
-	 */
-	private static String makeRelative(IPath toRel, IPath base) {
-		int i = base.matchingFirstSegments(toRel);
-		if (i == 0) {
-			return toRel.toOSString();
-		}
-		String result = "";
-		for (int j = 0; j < (base.segmentCount() - i); j++) {
-			result += ".." + Path.SEPARATOR;
-		}
-		if (i == toRel.segmentCount())
-			return ".";
-		result += toRel.setDevice(null).removeFirstSegments(i).toOSString();
-		return result;
-	}
-
-	public static String makeRelative(String urlString, URL rootURL) {
-		// we only traffic in file: URLs
-		int index = urlString.indexOf(FILE_PROTOCOL);
-		if (index == -1)
-			return urlString;
-		index = index + 5;
-
-		// ensure we have an absolute path to start with
-		boolean done = false;
-		URL url = null;
-		String file = urlString;
-		while (!done) {
-			try {
-				url = new URL(file);
-				file = url.getFile();
-			} catch (java.net.MalformedURLException e) {
-				done = true;
-			}
-		}
-		if (url == null || !new File(url.getFile()).isAbsolute())
-			return urlString;
-
-		String rootString = rootURL.toExternalForm();
-		return urlString.substring(0, index) + makeRelative(urlString.substring(index), rootString.substring(rootString.indexOf(FILE_PROTOCOL) + 5));
-	}
-
-	public static String makeArrayRelative(String array, URL rootURL) {
-		StringBuffer buffer = new StringBuffer();
-		for (StringTokenizer tokenizer = new StringTokenizer(array, COMMA); tokenizer.hasMoreTokens();) {
-			String token = tokenizer.nextToken();
-			String absolute = makeRelative(token, rootURL);
-			buffer.append(absolute);
-			if (tokenizer.hasMoreTokens())
-				buffer.append(',');
-		}
-		return buffer.toString();
-	}
-
-	public static String makeArrayAbsolute(String array, URL rootURL) {
-		StringBuffer buffer = new StringBuffer();
-		for (StringTokenizer tokenizer = new StringTokenizer(array, COMMA); tokenizer.hasMoreTokens();) {
-			String token = tokenizer.nextToken();
-			String absolute = makeAbsolute(token, rootURL);
-			buffer.append(absolute);
-			if (tokenizer.hasMoreTokens())
-				buffer.append(',');
-		}
-		return buffer.toString();
-	}
-
-	/*
-	 * Make the given path absolute to the specified root, if applicable. If not, then
-	 * return the path as-is.
-	 * 
-	 * Method similar to one from SimpleConfigurationManipulatorImpl.
-	 */
-	public static String makeAbsolute(String original, String rootPath) {
-		IPath path = new Path(original);
-		// ensure we have a relative path to start with
-		if (path.isAbsolute())
-			return original;
-		IPath root = new Path(rootPath);
-		return root.addTrailingSeparator().append(original.replace(':', '}')).toOSString().replace('}', ':');
-	}
-
-	public static String makeAbsolute(String urlString, URL rootURL) {
-		// we only traffic in file: URLs
-		int index = urlString.indexOf(FILE_PROTOCOL);
-		if (index == -1)
-			return urlString;
-		index = index + 5;
-
-		// ensure we have a relative path to start with
-		boolean done = false;
-		URL url = null;
-		String file = urlString;
-		while (!done) {
-			try {
-				url = new URL(file);
-				file = url.getFile();
-			} catch (java.net.MalformedURLException e) {
-				done = true;
-			}
-		}
-		if (url == null || new File(url.getFile()).isAbsolute())
-			return urlString;
-
-		return urlString.substring(0, index - 5) + makeAbsolute(urlString.substring(index), rootURL.toExternalForm());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Log.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Log.java
deleted file mode 100644
index e83b920..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Log.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import org.osgi.framework.BundleContext;
-import org.osgi.service.log.LogService;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * Utility class with static methods for logging to LogService, if available 
- */
-public class Log {
-	static private ServiceTracker logTracker;
-	static private boolean useLog = false;
-
-	public static void dispose() {
-		if (logTracker != null) {
-			logTracker.close();
-		}
-		logTracker = null;
-	}
-
-	public static void init(BundleContext bc) {
-		logTracker = new ServiceTracker(bc, LogService.class.getName(), null);
-		logTracker.open();
-	}
-
-	public static void log(int level, Object obj, String method, String message) {
-		log(level, obj, method, message, null);
-	}
-
-	public static void log(int level, Object obj, String method, String message, Throwable e) {
-		LogService logService = null;
-		String msg = "";
-		if (method == null) {
-			if (obj != null)
-				msg = "(" + obj.getClass().getName() + ")";
-		} else if (obj == null)
-			msg = "[" + method + "]" + message;
-		else
-			msg = "[" + method + "](" + obj.getClass().getName() + ")";
-		msg += message;
-		if (logTracker != null)
-			logService = (LogService) logTracker.getService();
-
-		if (logService != null) {
-			logService.log(level, msg, e);
-		} else {
-			String levelSt = null;
-			if (level == LogService.LOG_DEBUG)
-				levelSt = "DEBUG";
-			else if (level == LogService.LOG_INFO)
-				levelSt = "INFO";
-			else if (level == LogService.LOG_WARNING)
-				levelSt = "WARNING";
-			else if (level == LogService.LOG_ERROR) {
-				levelSt = "ERROR";
-				useLog = true;
-			}
-			if (useLog) {
-				System.err.println("[" + levelSt + "]" + msg);
-				if (e != null)
-					e.printStackTrace();
-			}
-		}
-	}
-
-	public static void log(int level, Object obj, String method, Throwable e) {
-		log(level, obj, method, null, e);
-	}
-
-	public static void log(int level, String message) {
-		log(level, null, null, message, null);
-	}
-
-	public static void log(int level, String message, Throwable e) {
-		log(level, null, null, message, e);
-	}
-
-	private Log() {
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Messages.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Messages.java
deleted file mode 100644
index 77a80e9..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/Messages.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.frameworkadmin.equinox.messages";//$NON-NLS-1$
-
-	public static String exception_inputFileIsDirectory;
-	public static String exception_fwConfigLocationName;
-	public static String exception_failedToCreateDir;
-	public static String exception_failedToRename;
-
-	public static String log_configFile;
-	public static String log_configProps;
-	public static String log_renameSuccessful;
-	public static String log_fwConfigSave;
-
-	public static String msg_ConfigFileHeader;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/messages.properties b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/messages.properties
deleted file mode 100644
index 1eb78cf..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/messages.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-exception_inputFileIsDirectory= Illegal Argument: inputFile {0} must not be a directory.
-exception_fwConfigLocationName = Illegal State: Framework Configuration location "{0}" does not match {1}.
-exception_failedToCreateDir = Failed to create directory {0}.
-exception_failedToRename=Failed to rename {0} to {1}.
-
-log_configFile= Configuration file ({0}) has been read successfully.
-log_configProps= Configuration properties is empty.
-log_renameSuccessful= Successfully renamed {0} to {1}.
-log_fwConfigSave= Framework Configuration was saved successfully in {0}.
-
-msg_ConfigFileHeader= This configuration file was written by {0}.
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/EclipseVersion.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/EclipseVersion.java
deleted file mode 100644
index b5e4b67..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/EclipseVersion.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox.utils;
-
-import java.util.StringTokenizer;
-
-public class EclipseVersion implements Comparable {
-	int major = 0;
-	int minor = 0;
-	int service = 0;
-	String qualifier = null;
-
-	public EclipseVersion(String version) {
-		StringTokenizer tok = new StringTokenizer(version, ".");
-		if (!tok.hasMoreTokens())
-			return;
-		this.major = Integer.parseInt(tok.nextToken());
-		if (!tok.hasMoreTokens())
-			return;
-		this.minor = Integer.parseInt(tok.nextToken());
-		if (!tok.hasMoreTokens())
-			return;
-		this.service = Integer.parseInt(tok.nextToken());
-		if (!tok.hasMoreTokens())
-			return;
-		this.qualifier = tok.nextToken();
-	}
-
-	public int compareTo(Object obj) {
-		EclipseVersion target = (EclipseVersion) obj;
-		if (target.major > this.major)
-			return -1;
-		if (target.major < this.major)
-			return 1;
-		if (target.minor > this.minor)
-			return -1;
-		if (target.minor < this.minor)
-			return 1;
-		if (target.service > this.service)
-			return -1;
-		if (target.service < this.service)
-			return 1;
-		return 0;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/FileUtils.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/FileUtils.java
deleted file mode 100644
index acd1016..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/utils/FileUtils.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.equinox.utils;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxConstants;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.LauncherData;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-
-public class FileUtils {
-
-	public static String getEclipseRealLocation(final Manipulator manipulator, final String location) {
-		try {
-			new URL(location);
-			return location;
-		} catch (MalformedURLException e) {
-			// just ignore.
-		}
-		if (location.indexOf(":") >= 0)
-			return location;
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		File home = launcherData.getHome();
-		File pluginsDir = null;
-		if (home != null)
-			pluginsDir = new File(home, EquinoxConstants.PLUGINS_DIR);
-		else if (launcherData.getLauncher() != null)
-			pluginsDir = new File(launcherData.getLauncher().getParentFile(), EquinoxConstants.PLUGINS_DIR);
-		else if (launcherData.getFwJar() != null)
-			pluginsDir = launcherData.getFwJar().getParentFile();
-		String pluginName = getPluginName(location);
-		String ret = getEclipsePluginFullLocation(pluginName, pluginsDir);
-		return ret;
-	}
-
-	private static String getPluginName(final String location) {
-		int position = location.indexOf("_");
-		String pluginName = location;
-		if (position >= 0)
-			pluginName = location.substring(0, position);
-		return pluginName;
-	}
-
-	public static String getRealLocation(Manipulator manipulator, final String location, boolean useEclipse) {
-		if (location == null)
-			return null;
-		String ret = location;
-		if (location.startsWith("reference:")) {
-			ret = location.substring("reference:".length());
-			if (ret.endsWith(".jar/")) {
-				ret = ret.substring(0, ret.length() - "/".length());
-				if (ret.startsWith("file:"))
-					ret = ret.substring("file:".length());
-			}
-		}
-		if (location.startsWith("initial@"))
-			ret = location.substring("initial@".length());
-
-		if (ret == location)
-			return useEclipse ? FileUtils.getEclipseRealLocation(manipulator, location) : location;
-		return getRealLocation(manipulator, ret, useEclipse);
-	}
-
-	private static String replaceAll(String st, String oldSt, String newSt) {
-		if (oldSt.equals(newSt))
-			return st;
-		int index = -1;
-		while ((index = st.indexOf(oldSt)) != -1) {
-			st = st.substring(0, index) + newSt + st.substring(index + oldSt.length());
-		}
-		return st;
-	}
-
-	/**
-	 * If a bundle of the specified location is in the Eclipse plugin format (either plugin-name_version.jar 
-	 * or as a folder named plugin-name_version ), return version string.Otherwise, return null;
-	 * 
-	 * @param url
-	 * @param pluginName
-	 * @return version string. If invalid format, return null. 
-	 */
-	private static String getEclipseNamingVersion(URL url, final String pluginName, boolean isFile) {
-		String location = url.getFile();
-		location = replaceAll(location, File.separator, "/");
-		String filename = null;
-		if (location.indexOf(":") == -1)
-			filename = location;
-		else
-			filename = location.substring(location.lastIndexOf(":") + 1);
-
-		// filename must be "jarName"_"version".jar
-		if (isFile) {
-			if (!filename.endsWith(".jar"))
-				return null;
-			filename = filename.substring(0, filename.lastIndexOf(".jar"));
-		} else {
-			// directory - remove trailing slash
-			filename = filename.substring(0, filename.length() - 1);
-		}
-
-		if (filename.indexOf("/") != -1)
-			filename = filename.substring(filename.lastIndexOf("/") + 1);
-
-		if (!filename.startsWith(pluginName))
-			return null;
-
-		int pluginnameLength = pluginName.length();
-		if (filename.length() <= pluginnameLength || filename.charAt(pluginName.length()) != '_')
-			return null;
-
-		return filename.substring(pluginnameLength + 1);
-	}
-
-	public static String getEclipsePluginFullLocation(String pluginName, File bundlesDir) {
-		File[] lists = bundlesDir.listFiles();
-		URL ret = null;
-		EclipseVersion maxVersion = null;
-		if (lists == null)
-			return null;
-
-		for (int i = 0; i < lists.length; i++) {
-			try {
-				URL url = lists[i].toURL();
-				String version = getEclipseNamingVersion(url, pluginName, lists[i].isFile());
-				if (version != null) {
-					EclipseVersion eclipseVersion = new EclipseVersion(version);
-					if (maxVersion == null || eclipseVersion.compareTo(maxVersion) > 0) {
-						ret = url;
-						maxVersion = eclipseVersion;
-					}
-				}
-			} catch (MalformedURLException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-				return null;
-			}
-		}
-		return (ret == null ? null : ret.toExternalForm());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/.classpath b/bundles/org.eclipse.equinox.frameworkadmin.test/.classpath
deleted file mode 100644
index 6f3b481..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/.project b/bundles/org.eclipse.equinox.frameworkadmin.test/.project
deleted file mode 100644
index 3f88654..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.frameworkadmin.test</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 43d90b9..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,260 +0,0 @@
-#Fri Feb 22 11:08:04 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=false
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index ac0fd9e..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,9 +0,0 @@
-#Wed Oct 24 10:14:02 EDT 2007
-eclipse.preferences.version=1
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates/>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index c231f4e..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Wed Oct 24 10:11:19 EDT 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/Framework Admin Test.launch b/bundles/org.eclipse.equinox.frameworkadmin.test/Framework Admin Test.launch
deleted file mode 100644
index f12eebb..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/Framework Admin Test.launch
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.equinox.p2.updatechecker.app,org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.ui,org.eclipse.ecf,org.eclipse.equinox.p2.tests,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.repositoryoptimizer,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director.app,ie.wombat.jbdiff,ie.wombat.jbdiff.test,org.eclipse.equinox.p2.target,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.download,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.sar.test,org.eclipse.equinox.p2.metadata,org.eclipse.ecf.filetransfer,org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.sar,org.eclipse.equinox.p2.exemplarysetup,org.eclipse.equinox.p2.console,org.eclipse.equinox.simpleconfigurator.test,org.eclipse.equinox.p2.artifact.processors,org.eclipse.test.performance,zzTest,org.eclipse.equinox.p2.tools,org.eclipse.ecf.identity,org.eclipse.equinox.p2.ui.admin.rcp,org.eclipse.ecf.provider.filetransfer,org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.p2.jarprocessor"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.frameworkadmin.test"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.equinox.frameworkadmin.test"/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.frameworkadmin.test"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.equinox.p2.director.app.product"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu,javax.servlet,org.eclipse.ant.core,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.expressions,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.text,org.eclipse.ui,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.views,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.update.core.win32,org.eclipse.update.ui"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.frameworkadmin.test/META-INF/MANIFEST.MF
deleted file mode 100644
index 9b27159..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Test Plug-in for Framework Admin
-Bundle-SymbolicName: org.eclipse.equinox.frameworkadmin.test
-Bundle-Version: 1.0.0
-Require-Bundle: org.junit;bundle-version="3.8.0",
- org.eclipse.core.runtime,
- org.eclipse.equinox.frameworkadmin
-Bundle-Activator: org.eclipse.equinox.frameworkadmin.tests.Activator
-Import-Package: org.osgi.framework;version="1.4.0"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.frameworkadmin.tests
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/build.properties b/bundles/org.eclipse.equinox.frameworkadmin.test/build.properties
deleted file mode 100644
index 06d8697..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               dataFile/
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/bundle_1/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/bundle_1/META-INF/MANIFEST.MF
deleted file mode 100644
index 3a535b6..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/bundle_1/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,5 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Bundle 1
-Bundle-SymbolicName: bundle_1
-Bundle-Version: 1.0.0
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.equinox.simpleconfigurator.jar b/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.equinox.simpleconfigurator.jar
deleted file mode 100644
index 8a631d8..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.equinox.simpleconfigurator.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi.jar b/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi.jar
deleted file mode 100644
index 20ca269..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi_3.4.0.jar b/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi_3.4.0.jar
deleted file mode 100644
index 793ad70..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/dataFile/org.eclipse.osgi_3.4.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/AbstractFwkAdminTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/AbstractFwkAdminTest.java
deleted file mode 100644
index 06b7838..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/AbstractFwkAdminTest.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.*;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdmin;
-import org.osgi.framework.*;
-import org.osgi.util.tracker.ServiceTracker;
-
-public abstract class AbstractFwkAdminTest extends TestCase {
-	private ServiceTracker fwAdminTracker;
-
-	public AbstractFwkAdminTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Copy an input stream to an output stream.
-	 * Optionally close the streams when done.
-	 * Return the number of bytes written.
-	 */
-	public static int copyStream(InputStream in, boolean closeIn, OutputStream out, boolean closeOut) throws IOException {
-		try {
-			int written = 0;
-			byte[] buffer = new byte[16 * 1024];
-			int len;
-			while ((len = in.read(buffer)) != -1) {
-				out.write(buffer, 0, len);
-				written += len;
-			}
-			return written;
-		} finally {
-			try {
-				if (closeIn) {
-					in.close();
-				}
-			} finally {
-				if (closeOut) {
-					out.close();
-				}
-			}
-		}
-	}
-
-	public FrameworkAdmin getEquinoxFrameworkAdmin() throws BundleException {
-		final String FILTER_OBJECTCLASS = "(" + Constants.OBJECTCLASS + "=" + FrameworkAdmin.class.getName() + ")";
-		final String filterFwName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_FW_NAME + "=Equinox)";
-		final String filterLauncherName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_NAME + "=Eclipse.exe)";
-		final String filterFwAdmin = "(&" + FILTER_OBJECTCLASS + filterFwName + filterLauncherName + ")";
-
-		String FWK_ADMIN_EQ = "org.eclipse.equinox.frameworkadmin.equinox";
-		Bundle b = Platform.getBundle(FWK_ADMIN_EQ);
-		if (b == null)
-			throw new IllegalStateException("Bundle: " + FWK_ADMIN_EQ + " is required for this test");
-		b.start();
-
-		if (fwAdminTracker == null) {
-			Filter filter;
-			try {
-				filter = Activator.getContext().createFilter(filterFwAdmin);
-				fwAdminTracker = new ServiceTracker(Activator.getContext(), filter, null);
-				fwAdminTracker.open();
-			} catch (InvalidSyntaxException e) {
-				// never happens
-				e.printStackTrace();
-			}
-		}
-		return (FrameworkAdmin) fwAdminTracker.getService();
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		if (fwAdminTracker != null) {
-			fwAdminTracker.close();
-		}
-	}
-
-	public void assertIsFile(File file) {
-		if (!file.exists())
-			fail("File: " + file.toString() + " can't be found.");
-		if (!file.isFile())
-			fail("File: " + file.toString() + " is expected to be a file.");
-	}
-
-	public void assertIsDirectory(File file) {
-		if (!file.exists())
-			fail("Directory: " + file.toString() + " can't be found.");
-		if (!file.isDirectory())
-			fail("Directory: " + file.toString() + " is expected to be a directory.");
-	}
-
-	public void assertNothing(File file) {
-		if (file.exists())
-			fail("No file or directory should be there: " + file);
-	}
-
-	public void assertNotContent(File file, String search) {
-		if (!file.exists())
-			fail("File: " + file.toString() + " can't be found.");
-		try {
-			BufferedReader reader = null;
-			try {
-				reader = new BufferedReader(new FileReader(file));
-				while (reader.ready()) {
-					String line = reader.readLine();
-					if (line.indexOf(search) >= 0)
-						fail("The string: " + search + " was not expected in this file: " + file.getAbsolutePath());
-				}
-			} finally {
-				if (reader != null)
-					reader.close();
-			}
-		} catch (FileNotFoundException e) {
-			//ignore, caught before
-		} catch (IOException e) {
-			fail("String: " + search + " not found in " + file.getAbsolutePath());
-		}
-	}
-
-	public void assertContent(File file, String search) {
-		if (!file.exists())
-			fail("File: " + file.toString() + " can't be found.");
-		try {
-			BufferedReader reader = null;
-			try {
-				reader = new BufferedReader(new FileReader(file));
-				while (reader.ready()) {
-					String line = reader.readLine();
-					if (line.indexOf(search) >= 0)
-						return;
-				}
-			} finally {
-				if (reader != null)
-					reader.close();
-			}
-		} catch (FileNotFoundException e) {
-			//ignore, caught before
-		} catch (IOException e) {
-			fail("String: " + search + " not found in " + file.getAbsolutePath());
-		}
-		fail("String:" + search + " not found");
-	}
-
-	public void startSimpleConfiguratormManipulator() {
-		final String SIMPLECONFIGURATOR_MANIPULATOR = "org.eclipse.equinox.simpleconfigurator.manipulator";
-		Bundle manipulatorBundle = Platform.getBundle(SIMPLECONFIGURATOR_MANIPULATOR);
-		if (manipulatorBundle == null)
-			fail("Bundle: " + SIMPLECONFIGURATOR_MANIPULATOR + " is required for this test");
-		try {
-			manipulatorBundle.start();
-		} catch (BundleException e) {
-			fail("Exception while starting up " + SIMPLECONFIGURATOR_MANIPULATOR + ' ' + e.getMessage());
-		}
-	}
-
-	public void stopSimpleConfiguratormManipulator() {
-		final String SIMPLECONFIGURATOR_MANIPULATOR = "org.eclipse.equinox.simpleconfigurator.manipulator";
-		Bundle manipulatorBundle = Platform.getBundle(SIMPLECONFIGURATOR_MANIPULATOR);
-		if (manipulatorBundle == null)
-			return;
-		try {
-			manipulatorBundle.stop();
-		} catch (BundleException e) {
-			fail("Exception while starting up " + SIMPLECONFIGURATOR_MANIPULATOR + ' ' + e.getMessage());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Activator.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Activator.java
deleted file mode 100644
index 5ff4493..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Activator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-	private static BundleContext ctx;
-
-	public void start(BundleContext context) throws Exception {
-		ctx = context; 
-
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		ctx = null;
-	}
-
-	public static BundleContext getContext() {
-		return ctx;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Bug196525.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Bug196525.java
deleted file mode 100644
index 8f0f506..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/Bug196525.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class Bug196525 extends AbstractFwkAdminTest {
-	private File installFolder = null;
-	private File configurationFolder = null;
-	private String launcherName = "eclipse";
-	private File bundleTXT;
-	private File configINI;
-
-	public Bug196525(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		startSimpleConfiguratormManipulator();
-		//create a configuration with osgi and simpleconfigurator in it
-
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		installFolder = Activator.getContext().getDataFile(Bug196525.class.getName());
-		configurationFolder = new File(installFolder, "configuration");
-
-		bundleTXT = new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.info");
-		configINI = new File(configurationFolder, "config.ini");
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar")).toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true);
-
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-
-		manipulator.save(false);
-	}
-
-	public void testConfigContent() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		File installFolder = Activator.getContext().getDataFile(Bug196525.class.getName());
-		File configurationFolder = new File(installFolder, "configuration");
-		String launcherName = "eclipse";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo bundle1Bi = new BundleInfo("bundle_1", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/bundle_1")).toExternalForm(), 2, true);
-
-		manipulator.getConfigData().addBundle(bundle1Bi);
-
-		manipulator.save(false);
-
-		assertContent(bundleTXT, "org.eclipse.osgi");
-		assertContent(configINI, "org.eclipse.osgi");
-		assertContent(bundleTXT, "org.eclipse.equinox.simpleconfigurator");
-		assertContent(configINI, "org.eclipse.equinox.simpleconfigurator");
-		assertContent(bundleTXT, "bundle_1");
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/CleanupTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/CleanupTest.java
deleted file mode 100644
index beac619..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/CleanupTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-
-public class CleanupTest extends FwkAdminAndSimpleConfiguratorTest {
-
-	public CleanupTest(String name) {
-		super(name);
-	}
-
-	Manipulator m = null;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		m = createMinimalConfiguration(CleanupTest.class.getName());
-	}
-
-	public void testSimpleConfiguratorRemoval() {
-		BundleInfo[] bis = m.getConfigData().getBundles();
-		for (int i = 0; i < bis.length; i++) {
-			if (bis[i].getSymbolicName().equals("org.eclipse.equinox.simpleconfigurator"))
-				m.getConfigData().removeBundle(bis[i]);
-		}
-		try {
-			m.save(false);
-		} catch (IOException e) {
-			fail("Error while saving");
-		}
-		assertNothing(new File(getConfigurationFolder(), "org.eclipse.equinox.simpleconfigurator"));
-		assertIsDirectory(getConfigurationFolder());
-
-		//Now remove osgi
-		bis = m.getConfigData().getBundles();
-		for (int i = 0; i < bis.length; i++) {
-			if (bis[i].getSymbolicName().equals("org.eclipse.osgi"))
-				m.getConfigData().removeBundle(bis[i]);
-		}
-		try {
-			m.save(false);
-		} catch (IOException e) {
-			fail("Error while saving");
-		}
-		assertNothing(getConfigurationFolder());
-		assertNothing(new File(getInstallFolder(), getLauncherName() + ".ini"));
-	}
-
-	public void testOSGiRemoval() {
-		BundleInfo[] bis = m.getConfigData().getBundles();
-		for (int i = 0; i < bis.length; i++) {
-			if (bis[i].getSymbolicName().equals("org.eclipse.osgi"))
-				m.getConfigData().removeBundle(bis[i]);
-		}
-		try {
-			m.save(false);
-		} catch (IOException e) {
-			fail("Error while saving");
-		}
-		assertIsDirectory(new File(getConfigurationFolder(), "org.eclipse.equinox.simpleconfigurator"));
-		assertIsDirectory(getConfigurationFolder());
-		assertNotContent(new File(getConfigurationFolder(), "org.eclipse.equinox.simpleconfigurator/bundles.info"), "org.eclipse.osgi");
-
-		bis = m.getConfigData().getBundles();
-		for (int i = 0; i < bis.length; i++) {
-			if (bis[i].getSymbolicName().equals("org.eclipse.equinox.simpleconfigurator"))
-				m.getConfigData().removeBundle(bis[i]);
-		}
-		try {
-			m.save(false);
-		} catch (IOException e) {
-			fail("Error while saving");
-		}
-		assertNothing(getConfigurationFolder());
-		assertNothing(new File(getInstallFolder(), getLauncherName() + ".ini"));
-	}
-
-	public void testWithMutipleBundles() throws IOException {
-		BundleInfo bi = new BundleInfo(FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/bundle_1")).toExternalForm(), 2);
-		m.getConfigData().addBundle(bi);
-		m.save(false);
-
-		BundleInfo[] bis = m.getConfigData().getBundles();
-		for (int i = 0; i < bis.length; i++) {
-			if (bis[i].getSymbolicName().equals("org.eclipse.equinox.simpleconfigurator"))
-				m.getConfigData().removeBundle(bis[i]);
-		}
-		m.save(false);
-
-		assertNothing(getBundleTxt());
-		assertContent(getConfigIni(), "bundle_1");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/FwkAdminAndSimpleConfiguratorTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/FwkAdminAndSimpleConfiguratorTest.java
deleted file mode 100644
index 55ce4c8..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/FwkAdminAndSimpleConfiguratorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public abstract class FwkAdminAndSimpleConfiguratorTest extends AbstractFwkAdminTest {
-	private File installFolder;
-	private File configurationFolder;
-	private String launcherName;
-
-	public FwkAdminAndSimpleConfiguratorTest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		startSimpleConfiguratormManipulator();
-	}
-
-	protected Manipulator getNewManipulator(String workArea) throws FrameworkAdminRuntimeException, IOException, BundleException {
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		installFolder = Activator.getContext().getDataFile(workArea);
-		configurationFolder = new File(installFolder, "configuration");
-		launcherName = "eclipse";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-		return manipulator;
-	}
-
-	protected Manipulator createMinimalConfiguration(String workArea) throws Exception {
-		Manipulator manipulator = getNewManipulator(workArea);
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar")).toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true);
-
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-
-		try {
-			manipulator.save(false);
-		} catch (IOException e) {
-			fail("Error while persisting");
-		} catch (FrameworkAdminRuntimeException e) {
-			fail("Error while persisting");
-		}
-		return manipulator;
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		if (installFolder != null)
-			delete(installFolder);
-	}
-
-	private void delete(File toDelete) {
-		if (toDelete.isFile()) {
-			toDelete.delete();
-			return;
-		}
-		if (toDelete.isDirectory()) {
-			File[] children = toDelete.listFiles();
-			for (int i = 0; i < children.length; i++) {
-				delete(children[i]);
-			}
-			toDelete.delete();
-		}
-	}
-
-	public File getInstallFolder() {
-		return installFolder;
-	}
-
-	public File getConfigurationFolder() {
-		return configurationFolder;
-	}
-
-	public File getBundleTxt() {
-		return new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.info");
-	}
-
-	public File getConfigIni() {
-		return new File(configurationFolder, "config.ini");
-	}
-
-	public String getLauncherName() {
-		return launcherName;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoConfigurationValueInEclipseIni.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoConfigurationValueInEclipseIni.java
deleted file mode 100644
index 98f53c4..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoConfigurationValueInEclipseIni.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class NoConfigurationValueInEclipseIni extends FwkAdminAndSimpleConfiguratorTest {
-
-	public NoConfigurationValueInEclipseIni(String name) {
-		super(name);
-	}
-
-	public void testAbsenceOfConfigurationInEclipseINI() throws Exception {
-		createMinimalConfiguration(NoConfigurationValueInEclipseIni.class.getName());
-		File launcherIni = new File(getInstallFolder(), getLauncherName() + ".ini");
-		assertNotContent(launcherIni, "-configuration");
-	}
-
-	public void testPresenceOfConfigurationInEclipseINI() throws FrameworkAdminRuntimeException, IOException, BundleException {
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		File installFolder = Activator.getContext().getDataFile("bis" + NoConfigurationValueInEclipseIni.class.getName());
-		File configurationFolder = new File(installFolder, "config2");
-		String launcherName = "eclipse";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar")).toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true);
-
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-
-		try {
-			manipulator.save(false);
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-		File launcherIni = new File(installFolder, launcherName + ".ini");
-		assertContent(launcherIni, "-configuration");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoRenamingLauncherIni.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoRenamingLauncherIni.java
deleted file mode 100644
index 1b40256..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/NoRenamingLauncherIni.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class NoRenamingLauncherIni extends AbstractFwkAdminTest {
-
-	public NoRenamingLauncherIni(String name) {
-		super(name);
-	}
-
-	public void testConfigFiles() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		startSimpleConfiguratormManipulator();
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		File installFolder = Activator.getContext().getDataFile(NoRenamingLauncherIni.class.getName());
-		File configurationFolder = new File(installFolder, "configuration");
-		String launcherName = "foo";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar")).toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true);
-
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-
-		manipulator.save(false);
-
-		File fooINI = new File(installFolder, "foo.ini");
-		assertEquals(fooINI.exists(), true);
-
-		Manipulator m2 = fwkAdmin.getManipulator();
-
-		LauncherData launcherData2 = m2.getLauncherData();
-		launcherData2.setFwConfigLocation(configurationFolder);
-		launcherData2.setLauncher(new File(installFolder, launcherName));
-
-		try {
-			m2.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-		launcherData2.setLauncher(new File(installFolder, "bar"));
-		m2.save(false);
-
-		assertEquals(fooINI.exists(), false);
-		assertEquals(new File(installFolder, "bar.ini").exists(), true);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/OSGiVersionChange.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/OSGiVersionChange.java
deleted file mode 100644
index cfdf8a7..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/OSGiVersionChange.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class OSGiVersionChange extends FwkAdminAndSimpleConfiguratorTest {
-	private Manipulator defaultManipulator = null;
-	private String workArea = OSGiVersionChange.class.getName();
-
-	public OSGiVersionChange(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		defaultManipulator = createMinimalConfiguration(workArea);
-	}
-
-	public void testRemovalUsingSameManipulator() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		BundleInfo[] infos = defaultManipulator.getConfigData().getBundles();
-		BundleInfo osgi = null;
-		for (int i = 0; i < infos.length; i++) {
-			if ("org.eclipse.osgi".equals(infos[i].getSymbolicName())) {
-				osgi = infos[i];
-				break;
-			}
-		}
-		defaultManipulator.getConfigData().removeBundle(osgi);
-		defaultManipulator.save(false);
-		assertNotContent(getBundleTxt(), "org.eclipse.osgi");
-		assertNotContent(getConfigIni(), "org.eclipse.osgi");
-	}
-
-	public void testRemovalUsingOtherManipulator() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		Manipulator newManipulator = getNewManipulator(workArea);
-		BundleInfo[] infos = newManipulator.getConfigData().getBundles();
-		BundleInfo osgi = null;
-		for (int i = 0; i < infos.length; i++) {
-			if ("org.eclipse.osgi".equals(infos[i].getSymbolicName())) {
-				osgi = infos[i];
-				break;
-			}
-		}
-		newManipulator.getConfigData().removeBundle(osgi);
-		newManipulator.save(false);
-		assertNotContent(getBundleTxt(), "org.eclipse.osgi");
-		assertNotContent(getConfigIni(), "org.eclipse.osgi");
-	}
-
-	public void testAdditionUsingOtherManipulator() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		BundleInfo[] infos = defaultManipulator.getConfigData().getBundles();
-		BundleInfo osgi = null;
-		for (int i = 0; i < infos.length; i++) {
-			if ("org.eclipse.osgi".equals(infos[i].getSymbolicName())) {
-				osgi = infos[i];
-				break;
-			}
-		}
-		defaultManipulator.getConfigData().removeBundle(osgi);
-		defaultManipulator.save(false);
-
-		Manipulator newManipulator = getNewManipulator(workArea);
-
-		newManipulator.getConfigData().addBundle(osgi);
-		newManipulator.save(false);
-		assertContent(getBundleTxt(), "org.eclipse.osgi");
-		assertContent(getConfigIni(), "org.eclipse.osgi");
-	}
-
-	public void testChangeVersion() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		BundleInfo[] infos = defaultManipulator.getConfigData().getBundles();
-		BundleInfo osgi = null;
-		for (int i = 0; i < infos.length; i++) {
-			if ("org.eclipse.osgi".equals(infos[i].getSymbolicName())) {
-				osgi = infos[i];
-				break;
-			}
-		}
-		defaultManipulator.getConfigData().removeBundle(osgi);
-		defaultManipulator.save(false);
-
-		//These two constants describe the data file used in the test
-		final String FILENAME = "org.eclipse.osgi_3.4.0.jar";
-		final String VERSION = "3.4.0.v20071105";
-		BundleInfo newOSGi = new BundleInfo("org.eclipse.osgi", "3.4.0.v20071105", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/" + FILENAME)).toExternalForm(), 0, true);
-		defaultManipulator.getConfigData().addBundle(newOSGi);
-		defaultManipulator.save(false);
-		assertContent(getBundleTxt(), VERSION);
-		assertContent(getConfigIni(), FILENAME);
-	}
-
-	public void testReadConfigWithoutOSGi() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		//First Create a configuration that does not contain OSGi
-		BundleInfo[] infos = defaultManipulator.getConfigData().getBundles();
-		BundleInfo osgi = null;
-		for (int i = 0; i < infos.length; i++) {
-			if ("org.eclipse.osgi".equals(infos[i].getSymbolicName())) {
-				osgi = infos[i];
-				break;
-			}
-		}
-		defaultManipulator.getConfigData().removeBundle(osgi);
-		defaultManipulator.save(false);
-		assertNotContent(getBundleTxt(), "org.eclipse.osgi");
-		assertNotContent(getConfigIni(), "org.eclipse.osgi");
-
-		Manipulator newManipulator = getNewManipulator(workArea);
-		assertEquals(newManipulator.getConfigData().getBundles().length, 1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RelativePathTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RelativePathTest.java
deleted file mode 100644
index 0662b67..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RelativePathTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.*;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-
-public class RelativePathTest extends FwkAdminAndSimpleConfiguratorTest {
-	public RelativePathTest(String name) throws Exception {
-		super(name);
-	}
-
-	public void testRelativePaths() throws Exception {
-		File installFolder = Activator.getContext().getDataFile(RelativePathTest.class.getName());
-
-		//First we copy some jars into a well
-		File osgiJar = new File(installFolder, "plugins/org.eclipse.osgi.jar");
-		osgiJar.getParentFile().mkdirs();
-		File scJar = new File(installFolder, "plugins/org.eclipse.equinox.simpleconfigurator.jar");
-
-		copyStream(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar").openStream(), true, new FileOutputStream(osgiJar), true);
-		copyStream(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar").openStream(), true, new FileOutputStream(scJar), true);
-
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		File configurationFolder = new File(installFolder, "configuration");
-		String launcherName = "eclipse";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", osgiJar.toURL().toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", scJar.toURL().toExternalForm(), 1, true);
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-		try {
-			manipulator.save(false);
-		} catch (IOException e) {
-			fail("Error while persisting");
-		} catch (FrameworkAdminRuntimeException e) {
-			fail("Error while persisting");
-		}
-
-		//":path.jar" is a  poor man approach to test relative paths 
-		assertNotContent(new File(configurationFolder, "config.ini"), installFolder.getAbsolutePath());
-		assertNotContent(new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.info"), installFolder.getAbsolutePath());
-		assertContent(new File(configurationFolder, "config.ini"), ":org.eclipse.equinox.simpleconfigurator.jar");
-		assertContent(new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.info"), ":plugins\\org.eclipse.equinox.simpleconfigurator.jar");
-		assertContent(new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.info"), ":plugins\\org.eclipse.osgi.jar");
-
-		BundleInfo bi = new BundleInfo(FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/bundle_1")).toExternalForm(), 2);
-		manipulator.getConfigData().addBundle(bi);
-		manipulator.save(false);
-//		assertContent(new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.info"), FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/bundle_1")).toExternalForm());
-
-		Manipulator newManipulator = fwkAdmin.getManipulator();
-		LauncherData newLauncherData = newManipulator.getLauncherData();
-		newLauncherData.setFwConfigLocation(configurationFolder);
-		newLauncherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RemovingAllBundles.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RemovingAllBundles.java
deleted file mode 100644
index dd1757a..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RemovingAllBundles.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class RemovingAllBundles extends AbstractFwkAdminTest {
-
-	public RemovingAllBundles(String name) {
-		super(name);
-	}
-
-	public void testConfigFiles() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		startSimpleConfiguratormManipulator();
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		File installFolder = Activator.getContext().getDataFile(RemovingAllBundles.class.getName());
-		File configurationFolder = new File(installFolder, "configuration");
-		String launcherName = "foo";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar")).toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true);
-
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-
-		manipulator.save(false);
-
-		File fooINI = new File(installFolder, "foo.ini");
-		assertEquals(fooINI.exists(), true);
-
-		Manipulator m2 = fwkAdmin.getManipulator();
-
-		LauncherData launcherData2 = m2.getLauncherData();
-		launcherData2.setFwConfigLocation(configurationFolder);
-		launcherData2.setLauncher(new File(installFolder, launcherName));
-
-		try {
-			m2.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo[] infos = m2.getConfigData().getBundles();
-		for (int i = 0; i < infos.length; i++) {
-			m2.getConfigData().removeBundle(infos[i]);
-		}
-		m2.save(false);
-
-		assertEquals(new File(configurationFolder + "/org.eclipse.equinox.simpleconfigurator", "bundles.info").exists(), false);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RenamingLauncherIni.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RenamingLauncherIni.java
deleted file mode 100644
index 6d2f25b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/RenamingLauncherIni.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class RenamingLauncherIni extends AbstractFwkAdminTest {
-
-	public RenamingLauncherIni(String name) {
-		super(name);
-	}
-
-	public void testConfigFiles() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		startSimpleConfiguratormManipulator();
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		File installFolder = Activator.getContext().getDataFile(RenamingLauncherIni.class.getName());
-		File configurationFolder = new File(installFolder, "configuration");
-		String launcherName = "foo";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar")).toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true);
-
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-
-		manipulator.save(false);
-
-		File fooINI = new File(installFolder, "foo.ini");
-		assertEquals(fooINI.exists(), true);
-
-		Manipulator m2 = fwkAdmin.getManipulator();
-
-		LauncherData launcherData2 = m2.getLauncherData();
-		launcherData2.setFwConfigLocation(configurationFolder);
-		launcherData2.setLauncher(new File(installFolder, launcherName));
-
-		try {
-			m2.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-		launcherData2.setLauncher(new File(installFolder, "foo"));
-		m2.save(false);
-
-		assertEquals(new File(installFolder, "foo.ini").exists(), true);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorComingAndGoing.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorComingAndGoing.java
deleted file mode 100644
index 1e831f7..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorComingAndGoing.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class SimpleConfiguratorComingAndGoing extends FwkAdminAndSimpleConfiguratorTest {
-	Manipulator m = null;
-
-	public SimpleConfiguratorComingAndGoing(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		m = createMinimalConfiguration(SimpleConfiguratorComingAndGoing.class.getName());
-	}
-
-	public void testWithMutipleBundles() throws IOException, BundleException {
-		BundleInfo bi = new BundleInfo(FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/bundle_1")).toExternalForm(), 2);
-		m.getConfigData().addBundle(bi);
-		m.save(false);
-
-		BundleInfo[] bis = m.getConfigData().getBundles();
-		for (int i = 0; i < bis.length; i++) {
-			if (bis[i].getSymbolicName().equals("org.eclipse.equinox.simpleconfigurator"))
-				m.getConfigData().removeBundle(bis[i]);
-		}
-		m.save(false);
-
-		assertNothing(getBundleTxt());
-		assertContent(getConfigIni(), "bundle_1");
-		assertContent(getConfigIni(), "org.eclipse.osgi");
-
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator newManipulator = fwkAdmin.getManipulator();
-
-		LauncherData launcherData = newManipulator.getLauncherData();
-		launcherData.setFwConfigLocation(getConfigurationFolder());
-		launcherData.setLauncher(new File(getInstallFolder(), getLauncherName()));
-		try {
-			newManipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		newManipulator.getConfigData().addBundle(new BundleInfo(FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true));
-		newManipulator.save(false);
-
-		assertContent(getBundleTxt(), "org.eclipse.osgi");
-		assertContent(getBundleTxt(), "bundle_1");
-		assertContent(getBundleTxt(), "org.eclipse.equinox.simpleconfigurator");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorTest.java
deleted file mode 100644
index 143d054..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/SimpleConfiguratorTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.BundleException;
-
-public class SimpleConfiguratorTest extends AbstractFwkAdminTest {
-
-	public SimpleConfiguratorTest(String name) {
-		super(name);
-	}
-
-	public void testConfigFiles() throws IllegalStateException, FrameworkAdminRuntimeException, IOException, BundleException {
-		startSimpleConfiguratormManipulator();
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator manipulator = fwkAdmin.getManipulator();
-
-		File installFolder = Activator.getContext().getDataFile(SimpleConfiguratorTest.class.getName());
-		File configurationFolder = new File(installFolder, "configuration");
-		String launcherName = "eclipse";
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(configurationFolder);
-		launcherData.setLauncher(new File(installFolder, launcherName));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			//TODO We ignore the framework JAR location not set exception
-		}
-
-		BundleInfo osgiBi = new BundleInfo("org.eclipse.osgi", "3.3.1", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.osgi.jar")).toExternalForm(), 0, true);
-		BundleInfo configuratorBi = new BundleInfo("org.eclipse.equinox.simpleconfigurator", "1.0.0", FileLocator.resolve(Activator.getContext().getBundle().getEntry("dataFile/org.eclipse.equinox.simpleconfigurator.jar")).toExternalForm(), 1, true);
-
-		manipulator.getConfigData().addBundle(osgiBi);
-		manipulator.getConfigData().addBundle(configuratorBi);
-
-		manipulator.save(false);
-
-		File bundleTXT = new File(configurationFolder, "org.eclipse.equinox.simpleconfigurator/bundles.info");
-		File configINI = new File(configurationFolder, "config.ini");
-		assertContent(bundleTXT, "org.eclipse.osgi");
-		assertContent(configINI, "org.eclipse.osgi");
-		assertContent(bundleTXT, "org.eclipse.equinox.simpleconfigurator");
-		assertContent(configINI, "org.eclipse.equinox.simpleconfigurator");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestEclipseDataArea.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestEclipseDataArea.java
deleted file mode 100644
index 9cb774b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestEclipseDataArea.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.osgi.framework.BundleException;
-
-public class TestEclipseDataArea extends FwkAdminAndSimpleConfiguratorTest {
-	Manipulator m = null;
-
-	public TestEclipseDataArea(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		m = createMinimalConfiguration(TestEclipseDataArea.class.getName());
-	}
-
-	public void testp2DataArea() throws IOException, BundleException {
-		m.getConfigData().setFwDependentProp("eclipse.p2.data.area", "@config.dir/../p2");
-		m.save(false);
-		assertContent(getConfigIni(), "@config.dir/../p2");
-		m.load();
-		m.save(false);
-		assertContent(getConfigIni(), "@config.dir/../p2");
-
-		m.getConfigData().setFwDependentProp("eclipse.p2.data.area", new File(getConfigurationFolder(), "p2").getAbsoluteFile().toURL().toExternalForm());
-		m.save(false);
-		assertContent(getConfigIni(), "@config.dir/p2");
-		m.load();
-		m.save(false);
-		assertContent(getConfigIni(), "@config.dir/p2");
-
-		m.getConfigData().setFwDependentProp("eclipse.p2.data.area", new File(getConfigurationFolder(), "../p2").getAbsoluteFile().toURL().toExternalForm());
-		m.save(false);
-		assertContent(getConfigIni(), "@config.dir/../p2");
-		m.load();
-		m.save(false);
-		assertContent(getConfigIni(), "@config.dir/../p2");
-
-		m.getConfigData().setFwDependentProp("eclipse.p2.data.area", "file:d:/tmp/foo/bar/p2");
-		m.save(false);
-		assertContent(getConfigIni(), "/tmp/foo/bar/p2");
-		m.load();
-		m.save(false);
-		assertContent(getConfigIni(), "/tmp/foo/bar/p2");
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestRunningInstance.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestRunningInstance.java
deleted file mode 100644
index f847623..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/TestRunningInstance.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.equinox.frameworkadmin.tests;
-
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.*;
-
-public class TestRunningInstance extends AbstractFwkAdminTest {
-
-	public TestRunningInstance(String name) {
-		super(name);
-	}
-
-	public void testRunningInstance() throws BundleException {
-		FrameworkAdmin fwkAdmin = getEquinoxFrameworkAdmin();
-		Manipulator m = fwkAdmin.getRunningManipulator();
-		BundleInfo[] infos = m.getConfigData().getBundles();
-		for (int i = 0; i < infos.length; i++) {
-			System.out.println(infos[i]);
-		}
-		
-		Bundle[] bundles = Activator.getContext().getBundles();
-		
-		assertEquals(bundles.length, infos.length);
-		for (int i = 0; i < bundles.length; i++) {
-			boolean found = false;
-			for (int j = 0; j < infos.length && found == false; j++) {
-				found = same(infos[j], bundles[i]);
-			}
-			if (found == false) {
-				fail("Can't find: " + bundles[i]);
-			}
-		}
-	}
-	
-	private boolean same(BundleInfo info, Bundle bundle) {
-		if (info.getSymbolicName().equals(bundle.getSymbolicName())) {
-			if (new Version((String) bundle.getHeaders().get(Constants.BUNDLE_VERSION)).equals(new Version(info.getVersion())))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/UtilsTest.java b/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/UtilsTest.java
deleted file mode 100644
index 21002df..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin.test/src/org/eclipse/equinox/frameworkadmin/tests/UtilsTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.eclipse.equinox.frameworkadmin.tests;
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-///**
-// * 
-// */
-//package org.eclipse.incubator.configurator.util;
-//
-//import java.net.MalformedURLException;
-//import java.net.URL;
-//
-//import junit.framework.*;
-//
-//import org.eclipse.equinox.internal.frameworkadmin.utils.*;
-//
-///**
-// * @author iyamasak
-// *
-// */
-//public class UtilsTest extends TestCase {
-//
-//	/**
-//	 * @param name
-//	 */
-//	public UtilsTest(String name) {
-//		super(name);
-//	}
-//
-//	/* (non-Javadoc)
-//	 * @see junit.framework.TestCase#setUp()
-//	 */
-//	protected void setUp() throws Exception {
-//		super.setUp();
-//	}
-//
-//	/* (non-Javadoc)
-//	 * @see junit.framework.TestCase#tearDown()
-//	 */
-//	protected void tearDown() throws Exception {
-//		super.tearDown();
-//	}
-//
-//	//	/**
-//	//	 * Test method for {@link org.eclipse.configMan.internal.util.Utils#getUrl(java.lang.String, java.lang.String, java.lang.String)}.
-//	//	 */
-//	//	public void testGetUrl() {
-//	//		fail("Not yet implemented");
-//	//	}
-//
-//	/**
-//	 * Test method for {@link Utils#getRelativePath(java.net.URL, java.net.URL)}.
-//	 */
-//	public void testGetRelativePath() {
-//		//URL target;
-//		//URL from;
-//		try {
-//			URL target = new URL("http", "www.ntt.co.jp", "dir1/dir2/target.html");
-//			URL from = new URL("http", "www.ntt.co.jp", "dir1/dir3/dir4/from.html");
-//			String expected = "../../../dir2/target.html";
-//			String ret = Utils.getRelativePath(target, from);
-//			assertEquals(expected, ret);
-//
-//			expected = "../../dir3/dir4/from.html";
-//			ret = Utils.getRelativePath(from, target);
-//			assertEquals(expected, ret);
-//
-//			try {
-//				target = new URL("http", "www.ntt.co.jp", "dir1/dir2/target.html");
-//				from = new URL("http", "www.ibm.com", "dir1/dir3/dir4/from.html");
-//				ret = Utils.getRelativePath(target, from);
-//				fail("IllegalArgumentException must be thrown");
-//			} catch (IllegalArgumentException e) {
-//
-//			}
-//			try {
-//				target = new URL("file", null, "dir2/target.html");
-//				from = new URL("http", "www.ntt.co.jp", "dir1/dir3/dir4/from.html");
-//				ret = Utils.getRelativePath(target, from);
-//				fail("IllegalArgumentException must be thrown");
-//			} catch (IllegalArgumentException e) {
-//
-//			}
-//		} catch (MalformedURLException e) {
-//			e.printStackTrace();
-//
-//		}
-//
-//	}
-//
-//	/**
-//	 * Test method for {@link Utils#replaceAll(java.lang.String, java.lang.String, java.lang.String)}.
-//	 */
-//	public void testReplaceAll() {
-//		String st = "tere/eerere//ty/d";
-//		String expected = "tere\\eerere\\\\ty\\d";
-//		String oldSt = "/";
-//		String newSt = "\\";
-//		String ret = Utils.replaceAll(st, oldSt, newSt);
-//		assertEquals(expected, ret);
-//	}
-//
-//	/**
-//	 * Test method for {@link Utils#getTokens(java.lang.String, java.lang.String)}.
-//	 */
-//	public void testGetTokens() {
-//		String st = "/AAAA/BB//CC/D/";
-//		String[] expected = {"AAAA", "BB", "CC", "D"};
-//		String delim = "/";
-//		String[] ret = Utils.getTokens(st, delim);
-//		assertEquals("lengths must equal.", ret.length, expected.length);
-//		for (int i = 0; i < ret.length; i++)
-//			assertEquals("each elements must equal.", expected[i], ret[i]);
-//	}
-//
-//	/**
-//	 * Test method for {@link Utils#removeLastCh(String target, char ch)}.
-//	 */
-//	public void testRemoveLastCh() {
-//		String target = "ddddaaaaaaaa";
-//		String expected = "dddd";
-//		char ch = 'a';
-//		String ret = Utils.removeLastCh(target, ch);
-//		assertEquals(expected, ret);
-//	}
-//}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/.classpath b/bundles/org.eclipse.equinox.frameworkadmin/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/.project b/bundles/org.eclipse.equinox.frameworkadmin/.project
deleted file mode 100644
index 9087211..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.frameworkadmin</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d87350a..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,266 +0,0 @@
-#Mon Oct 22 13:17:28 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 283b95a..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:57:26 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.frameworkadmin/META-INF/MANIFEST.MF
deleted file mode 100644
index 87db0f1..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: FrameworkAdmin Service IF
-Bundle-SymbolicName: org.eclipse.equinox.frameworkadmin;singleton:=true
-Bundle-Version: 0.1.0.qualifier
-Bundle-Vendor: Eclipse.org
-Import-Package: org.eclipse.osgi.service.pluginconversion;version="1.0.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.startlevel;version="1.0.0"
-Export-Package: org.eclipse.equinox.internal.frameworkadmin.utils;x-friends:="org.eclipse.equinox.frameworkadmin.equinox",
- org.eclipse.equinox.internal.provisional.configuratormanipulator,
- org.eclipse.equinox.internal.provisional.frameworkadmin
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.4.0"
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.equinox.internal.frameworkadmin.utils.Activator
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/about.html b/bundles/org.eclipse.equinox.frameworkadmin/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/build.properties b/bundles/org.eclipse.equinox.frameworkadmin/build.properties
deleted file mode 100644
index 611da44..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Activator.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Activator.java
deleted file mode 100644
index 733bdcb..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Activator.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.utils;
-
-import org.eclipse.osgi.service.pluginconversion.PluginConverter;
-import org.osgi.framework.*;
-
-/**
- * @since 1.0
- */
-public class Activator implements BundleActivator {
-
-	private static BundleContext bundleContext;
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		bundleContext = context;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		bundleContext = null;
-	}
-
-	/*
-	 * Acquire the plug-in conversion service or return <code>null</code> if it is not available.
-	 */
-	public static PluginConverter acquirePluginConverter() {
-		if (bundleContext == null)
-			return null;
-		ServiceReference reference = bundleContext.getServiceReference(PluginConverter.class.getName());
-		if (reference == null)
-			return null;
-		PluginConverter result = (PluginConverter) bundleContext.getService(reference);
-		bundleContext.ungetService(reference);
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/SimpleBundlesState.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/SimpleBundlesState.java
deleted file mode 100644
index f0f4f45..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/SimpleBundlesState.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.utils;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.Constants;
-
-/**
- * This implementation of BundlesState doesn't support any of
- * - resolving bundles,
- * - retrieving fw persistent data. 
- * 
- * This implementation can be used for those cases.
- *
- */
-
-public class SimpleBundlesState implements BundlesState {
-	public static final BundleInfo[] NULL_BUNDLEINFOS = new BundleInfo[0];
-
-	/**
-	 * Check if the specified FrameworkAdmin is available.
-	 * 
-	 * @param fwAdmin
-	 * @throws FrameworkAdminRuntimeException
-	 */
-	public static void checkAvailability(FrameworkAdmin fwAdmin) throws FrameworkAdminRuntimeException {
-		if (!fwAdmin.isActive())
-			throw new FrameworkAdminRuntimeException("FrameworkAdmin creates this object is no more available.", FrameworkAdminRuntimeException.FRAMEWORKADMIN_UNAVAILABLE);
-	}
-
-	/**
-	 *  
-	 * @param launcherData
-	 * @return File of fwJar to be used.
-	 * @throws IOException 
-	 */
-	static File getFwJar(LauncherData launcherData) {
-		if (launcherData.getFwJar() != null)
-			return launcherData.getFwJar();
-		return null;
-	}
-
-	private final String systemBundleSymbolicName;
-
-	private final String systemBundleName;
-
-	private final String systemBundleVendor;
-	List bundleInfosList = new LinkedList();
-
-	FrameworkAdmin fwAdmin = null;
-
-	Manipulator manipulator = null;
-
-	/**
-	 * If the manifest of the target fw implementation has Constants.BUNDLE_SYMBOLICNAME header,
-	 * this constructor should be used. 
-	 * 
-	 * @param ManipulatorAdmin
-	 * @param Manipulator
-	 * @param systemBundleSymbolicName
-	 */
-	public SimpleBundlesState(FrameworkAdmin ManipulatorAdmin, Manipulator Manipulator, String systemBundleSymbolicName) {
-		super();
-		this.fwAdmin = ManipulatorAdmin;
-		//		 copy Manipulator object for avoiding modifying the parameters of the Manipulator.
-		this.manipulator = ManipulatorAdmin.getManipulator();
-		this.manipulator.setConfigData(Manipulator.getConfigData());
-		this.manipulator.setLauncherData(Manipulator.getLauncherData());
-		this.systemBundleSymbolicName = systemBundleSymbolicName;
-		this.systemBundleName = null;
-		this.systemBundleVendor = null;
-		initialize();
-	}
-
-	/**
-	 * If the manifest of the target fw implementation has not Constants.BUNDLE_SYMBOLICNAME header
-	 * but , Constants.BUNDLE_NAME and BUNDLE_VERSION, 
-	 * this constructor should be used. 
-	 * 
-	 * @param ManipulatorAdmin
-	 * @param Manipulator
-	 * @param systemBundleName
-	 * @param systemBundleVender
-	 */
-	public SimpleBundlesState(FrameworkAdmin ManipulatorAdmin, Manipulator Manipulator, String systemBundleName, String systemBundleVender) {
-		super();
-		this.fwAdmin = ManipulatorAdmin;
-		//		 copy Manipulator object for avoiding modifying the parameters of the Manipulator.
-		this.manipulator = ManipulatorAdmin.getManipulator();
-		this.manipulator.setConfigData(Manipulator.getConfigData());
-		this.manipulator.setLauncherData(Manipulator.getLauncherData());
-		this.systemBundleSymbolicName = null;
-		this.systemBundleName = systemBundleName;
-		this.systemBundleVendor = systemBundleVender;
-		initialize();
-	}
-
-	public BundleInfo[] getExpectedState() throws FrameworkAdminRuntimeException {
-		if (!fwAdmin.isActive())
-			throw new FrameworkAdminRuntimeException("FrameworkAdmin creates this object is no more available.", FrameworkAdminRuntimeException.FRAMEWORKADMIN_UNAVAILABLE);
-		return Utils.getBundleInfosFromList(this.bundleInfosList);
-	}
-
-	/* 
-	 * Just return required bundles.
-	 * 
-	 * @see org.eclipse.equinox.internal.provisional.frameworkadmin.BundlesState#getPrerequisteBundles(org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo)
-	 */
-	public BundleInfo[] getPrerequisteBundles(BundleInfo bInfo) {
-		String location = bInfo.getLocation();
-		final String requiredBundles = Utils.getManifestMainAttributes(location, Constants.REQUIRE_BUNDLE);
-		if (requiredBundles == null)
-			return new BundleInfo[] {this.getSystemBundle()};
-
-		String[] clauses = Utils.getClauses(requiredBundles);
-		List list = new LinkedList();
-		for (int i = 0; i < clauses.length; i++)
-			list.add(Utils.getPathFromClause(clauses[i]));
-
-		List ret = new LinkedList();
-		ret.add(this.getSystemBundle());
-		for (Iterator ite = this.bundleInfosList.iterator(); ite.hasNext();) {
-			BundleInfo currentBInfo = (BundleInfo) ite.next();
-			String currentLocation = currentBInfo.getLocation();
-			String currentSymbolicName = Utils.getManifestMainAttributes(currentLocation, Constants.BUNDLE_SYMBOLICNAME);
-			if (currentSymbolicName == null)
-				continue;
-			currentSymbolicName = Utils.getPathFromClause(currentSymbolicName);
-			for (Iterator ite2 = list.iterator(); ite2.hasNext();) {
-				String symbolicName = (String) ite2.next();
-				if (symbolicName.equals(currentSymbolicName)) {
-					ret.add(currentBInfo);
-					break;
-				}
-			}
-		}
-		return Utils.getBundleInfosFromList(ret);
-	}
-
-	public BundleInfo getSystemBundle() {
-		if (this.systemBundleSymbolicName == null) {
-			for (Iterator ite = this.bundleInfosList.iterator(); ite.hasNext();) {
-				BundleInfo bInfo = (BundleInfo) ite.next();
-				//			if (bInfo.getStartLevel() != 1)
-				//				return null;;
-				String location = bInfo.getLocation();
-				String bundleName = Utils.getManifestMainAttributes(location, Constants.BUNDLE_NAME);
-				if (systemBundleName.equals(bundleName)) {
-					String bundleVendor = Utils.getManifestMainAttributes(location, Constants.BUNDLE_VENDOR);
-					if (systemBundleVendor.equals(bundleVendor))
-						return bInfo;
-				}
-			}
-			return null;
-		}
-		for (Iterator ite = this.bundleInfosList.iterator(); ite.hasNext();) {
-			BundleInfo bInfo = (BundleInfo) ite.next();
-			String location = bInfo.getLocation();
-			String symbolicName = Utils.getManifestMainAttributes(location, Constants.BUNDLE_SYMBOLICNAME);
-			symbolicName = Utils.getPathFromClause(symbolicName);
-			if (this.systemBundleSymbolicName.equals(symbolicName))
-				return bInfo;
-		}
-		return null;
-	}
-
-	public BundleInfo[] getSystemFragmentedBundles() {
-		BundleInfo systemBInfo = this.getSystemBundle();
-		if (systemBInfo == null)
-			return NULL_BUNDLEINFOS;
-
-		List list = new LinkedList();
-		for (Iterator ite = this.bundleInfosList.iterator(); ite.hasNext();) {
-			BundleInfo bInfo = (BundleInfo) ite.next();
-			String location = bInfo.getLocation();
-			String manifestVersion = Utils.getManifestMainAttributes(location, Constants.BUNDLE_MANIFESTVERSION);
-			if (manifestVersion == null)
-				continue;
-			if (manifestVersion.equals("1") || manifestVersion.equals("1.0"))
-				continue;
-
-			String fragmentHost = Utils.getManifestMainAttributes(location, Constants.FRAGMENT_HOST);
-			if (fragmentHost == null)
-				continue;
-			int index = fragmentHost.indexOf(";");
-			if (index == -1)
-				continue;
-			String symbolicName = fragmentHost.substring(0, index).trim();
-			String parameter = fragmentHost.substring(index + 1).trim();
-			// TODO What to do ,in case of alias name of system bundle is not used ?
-			if (symbolicName.equals(Constants.SYSTEM_BUNDLE_SYMBOLICNAME))
-				if (parameter.equals(Constants.EXTENSION_DIRECTIVE + ":=" + Constants.EXTENSION_FRAMEWORK)) {
-					list.add(location);
-					break;
-				}
-		}
-		return Utils.getBundleInfosFromList(list);
-	}
-
-	public String[] getUnsatisfiedConstraints(BundleInfo bInfo) throws FrameworkAdminRuntimeException {
-		throw new FrameworkAdminRuntimeException("getUnsatisfiedConstraints(BundleInfo bInfo) is not supported in this implementation", FrameworkAdminRuntimeException.UNSUPPORTED_OPERATION);
-	}
-
-	private void initialize() {
-		this.bundleInfosList.clear();
-		LauncherData launcherData = manipulator.getLauncherData();
-		ConfigData configData = manipulator.getConfigData();
-		File fwJar = getFwJar(launcherData);;
-
-		if (fwJar == null)
-			throw new IllegalStateException("launcherData.getLauncherConfigFile() == null && fwJar is not set.");
-		// No fw persistent data location is taken into consideration.
-
-		BundleInfo[] bInfos = configData.getBundles();
-		for (int j = 0; j < bInfos.length; j++)
-			this.installBundle(bInfos[j]);
-
-		if (getSystemBundle() == null) {
-			try {
-				BundleInfo sysBInfo = new BundleInfo(launcherData.getFwJar().toURL().toExternalForm(), 0, true, 0);
-				this.installBundle(sysBInfo);
-
-			} catch (MalformedURLException e) {
-				// Nothign to do because never happens.
-				e.printStackTrace();
-			}
-		}
-	}
-
-	public void installBundle(BundleInfo bInfo) throws FrameworkAdminRuntimeException {
-
-		String newLocation = bInfo.getLocation();
-		Dictionary newManifest = Utils.getOSGiManifest(newLocation);
-		if (newManifest == null) {
-			// TODO log something here
-			return;
-		}
-		String newSymbolicName = (String) newManifest.get(Constants.BUNDLE_SYMBOLICNAME);
-		String newVersion = (String) newManifest.get(Constants.BUNDLE_VERSION);
-		//System.out.println("> currentInstalledBundles.length=" + currentInstalledBundles.length);
-		boolean found = false;
-		for (Iterator ite = this.bundleInfosList.iterator(); ite.hasNext();) {
-			BundleInfo currentBInfo = (BundleInfo) ite.next();
-			String location = currentBInfo.getLocation();
-			if (newLocation.equals(location)) {
-				found = true;
-				break;
-			}
-			Dictionary manifest = Utils.getOSGiManifest(location);
-			String symbolicName = (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME);
-			String version = (String) manifest.get(Constants.BUNDLE_VERSION);
-			if (newSymbolicName != null && newVersion != null)
-				if (newSymbolicName.equals(symbolicName) && newVersion.equals(version)) {
-					found = true;
-					break;
-				}
-		}
-		if (!found) {
-			this.bundleInfosList.add(bInfo);
-		}
-	}
-
-	//	public String toString() {
-	//		if (state == null)
-	//			return null;
-	//		StringBuffer sb = new StringBuffer();
-	//		BundleDescription[] bundleDescriptions = state.getBundles();
-	//		for (int i = 0; i < bundleDescriptions.length; i++) {
-	//			sb.append(bundleDescriptions[i].getBundleId() + ":");
-	//			sb.append(bundleDescriptions[i].toString() + "(");
-	//			sb.append(bundleDescriptions[i].isResolved() + ")");
-	//			String[] ees = bundleDescriptions[i].getExecutionEnvironments();
-	//			for (int j = 0; j < ees.length; j++)
-	//				sb.append(ees[j] + " ");
-	//			sb.append("\n");
-	//		}
-	//		sb.append("PlatformProperties:\n");
-	//		Dictionary[] dics = state.getPlatformProperties();
-	//		for (int i = 0; i < dics.length; i++) {
-	//			for (Enumeration enum = dics[i].keys(); enum.hasMoreElements();) {
-	//				String key = (String) enum.nextElement();
-	//				String value = (String) dics[i].get(key);
-	//				sb.append(" (" + key + "," + value + ")\n");
-	//			}
-	//		}
-	//		sb.append("\n");
-	//		return sb.toString();
-	//	}
-
-	public boolean isFullySupported() {
-		return false;
-	}
-
-	public boolean isResolved() throws FrameworkAdminRuntimeException {
-		throw new FrameworkAdminRuntimeException("isResolved() is not supported in this implementation", FrameworkAdminRuntimeException.UNSUPPORTED_OPERATION);
-	}
-
-	public boolean isResolved(BundleInfo bInfo) throws FrameworkAdminRuntimeException {
-		throw new FrameworkAdminRuntimeException("isResolved(BundleInfo bInfo) is not supported in this implementation", FrameworkAdminRuntimeException.UNSUPPORTED_OPERATION);
-	}
-
-	public void resolve(boolean increment) throws FrameworkAdminRuntimeException {
-		throw new FrameworkAdminRuntimeException("resolve(boolean increment) is not supported in this implementation", FrameworkAdminRuntimeException.UNSUPPORTED_OPERATION);
-	}
-
-	public void uninstallBundle(BundleInfo bInfo) throws FrameworkAdminRuntimeException {
-		String targetLocation = bInfo.getLocation();
-		int index = -1;
-		for (Iterator ite = this.bundleInfosList.iterator(); ite.hasNext();) {
-			index++;
-			BundleInfo currentBInfo = (BundleInfo) ite.next();
-			String location = currentBInfo.getLocation();
-			if (targetLocation.equals(location)) {
-				break;
-			}
-		}
-		if (index != -1)
-			this.bundleInfosList.remove(index);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Utils.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Utils.java
deleted file mode 100644
index 99e8361..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/frameworkadmin/utils/Utils.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.frameworkadmin.utils;
-
-import java.io.*;
-import java.net.*;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.jar.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.osgi.service.pluginconversion.PluginConversionException;
-import org.eclipse.osgi.service.pluginconversion.PluginConverter;
-import org.osgi.framework.Constants;
-
-public class Utils {
-	private static final String PATH_SEP = "/"; //$NON-NLS-1$
-	private static final String[] EMPTY_STRING_ARRAY = new String[] {};
-	private static final String FILE_PROTOCOL = "file:"; //$NON-NLS-1$
-	private static final String FEATURE_MANIFEST = "feature.xml"; //$NON-NLS-1$
-	private static final String FRAGMENT_MANIFEST = "fragment.xml"; //$NON-NLS-1$
-	private static final String PLUGIN_MANIFEST = "plugin.xml"; //$NON-NLS-1$
-
-	/**
-	 * Overwrite all properties of from to the properties of to. Return the result of to.
-	 * 
-	 * @param to Properties whose keys and values of other Properties will be appended to.
-	 * @param from Properties whose keys and values will be set to the other properties.
-	 * @return Properties as a result of this method. 
-	 */
-	public static Properties appendProperties(Properties to, Properties from) {
-		if (from != null) {
-			if (to == null)
-				to = new Properties();
-			//			printoutProperties(System.out, "to", to);
-			//			printoutProperties(System.out, "from", from);
-
-			for (Enumeration enumeration = from.keys(); enumeration.hasMoreElements();) {
-				String key = (String) enumeration.nextElement();
-				to.setProperty(key, from.getProperty(key));
-			}
-		}
-		//		printoutProperties(System.out, "to", to);
-		return to;
-	}
-
-	//Return a dictionary representing a manifest. The data may result from plugin.xml conversion  
-	private static Dictionary basicLoadManifest(File bundleLocation) {
-		InputStream manifestStream = null;
-		ZipFile jarFile = null;
-		try {
-			try {
-				String fileExtention = bundleLocation.getName();
-				fileExtention = fileExtention.substring(fileExtention.lastIndexOf('.') + 1);
-				// Handle a JAR'd bundle
-				if ("jar".equalsIgnoreCase(fileExtention) && bundleLocation.isFile()) { //$NON-NLS-1$
-					jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-					ZipEntry manifestEntry = jarFile.getEntry(JarFile.MANIFEST_NAME);
-					if (manifestEntry != null) {
-						manifestStream = jarFile.getInputStream(manifestEntry);
-					}
-				} else {
-					// we have a directory-based bundle
-					File bundleManifestFile = new File(bundleLocation, JarFile.MANIFEST_NAME);
-					if (bundleManifestFile.exists())
-						manifestStream = new BufferedInputStream(new FileInputStream(new File(bundleLocation, JarFile.MANIFEST_NAME)));
-				}
-			} catch (IOException e) {
-				//ignore
-			}
-			// we were unable to get an OSGi manifest file so try and convert an old-style manifest
-			if (manifestStream == null)
-				return convertPluginManifest(bundleLocation, true);
-
-			// It is not a manifest, but a plugin or a fragment
-			try {
-				Manifest m = new Manifest(manifestStream);
-				Dictionary manifest = manifestToProperties(m.getMainAttributes());
-				// add this check to handle the case were we read a non-OSGi manifest
-				if (manifest.get(Constants.BUNDLE_SYMBOLICNAME) == null)
-					return convertPluginManifest(bundleLocation, true);
-				return manifest;
-			} catch (IOException ioe) {
-				return null;
-			}
-		} finally {
-			try {
-				if (manifestStream != null)
-					manifestStream.close();
-			} catch (IOException e1) {
-				//Ignore
-			}
-			try {
-				if (jarFile != null)
-					jarFile.close();
-			} catch (IOException e2) {
-				//Ignore
-			}
-		}
-	}
-
-	public static void checkAbsoluteDir(File file, String dirName) throws IllegalArgumentException {
-		if (file == null)
-			throw new IllegalArgumentException(dirName + " is null");
-		if (!file.isAbsolute())
-			throw new IllegalArgumentException(dirName + " is not absolute path. file=" + file.getAbsolutePath());
-		if (!file.isDirectory())
-			throw new IllegalArgumentException(dirName + " is not directory. file=" + file.getAbsolutePath());
-	}
-
-	public static void checkAbsoluteFile(File file, String dirName) {//throws ManipulatorException {
-		if (file == null)
-			throw new IllegalArgumentException(dirName + " is null");
-		if (!file.isAbsolute())
-			throw new IllegalArgumentException(dirName + " is not absolute path. file=" + file.getAbsolutePath());
-		if (file.isDirectory())
-			throw new IllegalArgumentException(dirName + " is not file but directory");
-	}
-
-	public static URL checkFullUrl(URL url, String urlName) throws IllegalArgumentException {//throws ManipulatorException {
-		if (url == null)
-			throw new IllegalArgumentException(urlName + " is null");
-		if (!url.getProtocol().endsWith("file"))
-			return url;
-		File file = new File(url.getFile());
-		if (!file.isAbsolute())
-			throw new IllegalArgumentException(urlName + "(" + url + ") does not have absolute path");
-		if (file.getAbsolutePath().startsWith(PATH_SEP))
-			return url;
-		try {
-			return getUrl("file", null, PATH_SEP + file.getAbsolutePath());
-		} catch (MalformedURLException e) {
-			throw new IllegalArgumentException(urlName + "(" + "file:" + PATH_SEP + file.getAbsolutePath() + ") is not fully quallified");
-		}
-	}
-
-	public static void createParentDir(File file) throws IOException {
-		File parent = file.getParentFile();
-		if (parent == null)
-			return;
-		parent.mkdirs();
-	}
-
-	/**
-	 * Deletes the given file recursively, adding failure info to
-	 * the provided status object.  The filePath is passed as a parameter
-	 * to optimize java.io.File object creation.
-	 */
-	// Implementation taken from the Eclipse File sytem bundle class LocalFile.
-	//  TODO consider putting back the progress and cancelation support.
-	private static boolean internalDelete(File target, String pathToDelete) {
-		//first try to delete - this should succeed for files and symbolic links to directories
-		if (target.delete() || !target.exists())
-			return true;
-		if (target.isDirectory()) {
-			String[] list = target.list();
-			if (list == null)
-				list = EMPTY_STRING_ARRAY;
-			int parentLength = pathToDelete.length();
-			boolean failedRecursive = false;
-			for (int i = 0, imax = list.length; i < imax; i++) {
-				//optimized creation of child path object
-				StringBuffer childBuffer = new StringBuffer(parentLength + list[i].length() + 1);
-				childBuffer.append(pathToDelete);
-				childBuffer.append(File.separatorChar);
-				childBuffer.append(list[i]);
-				String childName = childBuffer.toString();
-				// try best effort on all children so put logical OR at end
-				failedRecursive = !internalDelete(new java.io.File(childName), childName) || failedRecursive;
-			}
-			try {
-				// don't try to delete the root if one of the children failed
-				if (!failedRecursive && target.delete())
-					return true;
-			} catch (Exception e) {
-				// we caught a runtime exception so log it
-				return false;
-			}
-		}
-		//		message = NLS.bind(Messages.couldnotDelete, target.getAbsolutePath());
-		return false;
-	}
-
-	public static void deleteDir(File target) throws IOException {
-		internalDelete(target, target.getAbsolutePath());
-		throw new IOException("Fail to delete Dir(" + target.getAbsolutePath() + ")");
-	}
-
-	/**
-	 * First, it replaces File.seperator of relativePath to "/".
-	 * If relativePath is in URL format, return its URL.
-	 * Otherwise, create absolute URL based on the baseUrl.
-	 * 
-	 * @param relativePath
-	 * @param baseUrl
-	 * @return URL 
-	 * @throws MalformedURLException
-	 */
-	public static URL formatUrl(String relativePath, URL baseUrl) throws MalformedURLException {//throws ManipulatorException {
-		relativePath = Utils.replaceAll(relativePath, File.separator, "/");
-		URL url = null;
-		try {
-			url = new URL(relativePath);
-			if (url.getProtocol().equals("file"))
-				if (!(new File(url.getFile())).isAbsolute())
-					url = getUrlInFull(relativePath, baseUrl);
-			return url;
-		} catch (MalformedURLException e) {
-			return getUrlInFull(relativePath, baseUrl);
-		}
-	}
-
-	public static BundleInfo[] getBundleInfosFromList(List list) {
-		if (list == null)
-			return new BundleInfo[0];
-		BundleInfo[] ret = new BundleInfo[list.size()];
-		list.toArray(ret);
-		return ret;
-	}
-
-	public static String[] getClauses(String header) {
-		StringTokenizer token = new StringTokenizer(header, ",");
-		List list = new LinkedList();
-		while (token.hasMoreTokens()) {
-			list.add(token.nextToken());
-		}
-		String[] ret = new String[list.size()];
-		list.toArray(ret);
-		return ret;
-	}
-
-	public static String[] getClausesManifestMainAttributes(String location, String name) {
-		return getClauses(getManifestMainAttributes(location, name));
-	}
-
-	public static String getManifestMainAttributes(String location, String name) {
-		Dictionary manifest = Utils.getOSGiManifest(location);
-		if (manifest == null)
-			throw new RuntimeException("Unable to locate bundle manifest: " + location);
-		return (String) manifest.get(name);
-	}
-
-	public static Dictionary getOSGiManifest(String location) {
-		if (location == null)
-			return null;
-		// if we have a file-based URL that doesn't end in ".jar" then...
-		if (location.startsWith(FILE_PROTOCOL) && !location.endsWith(".jar"))
-			return basicLoadManifest(new File(location.substring(FILE_PROTOCOL.length())));
-
-		try {
-			JarFile jar = null;
-			File file = null;
-			if (location.startsWith(FILE_PROTOCOL)) {
-				file = new File(location.substring(FILE_PROTOCOL.length()));
-				jar = new JarFile(file);
-			} else {
-				URL url = new URL("jar:" + location + "!/");
-				JarURLConnection jarConnection = (JarURLConnection) url.openConnection();
-				jar = jarConnection.getJarFile();
-				// todo should set this var if possible
-				// file = ;
-			}
-			try {
-				Manifest manifest = jar.getManifest();
-				// we might have an old-style plug-in so look for an old plug-in manifest
-				if (manifest == null) {
-					if (file == null)
-						return null;
-					// make sure we have something to convert
-					JarEntry entry = jar.getJarEntry(PLUGIN_MANIFEST);
-					if (entry == null)
-						entry = jar.getJarEntry(FRAGMENT_MANIFEST);
-					if (entry == null)
-						return null;
-					return convertPluginManifest(file, true);
-				}
-				Attributes attributes = manifest.getMainAttributes();
-				// if we have a JAR'd bundle that has a non-OSGi manifest file (like
-				// the ones produced by Ant, then try and convert the plugin.xml
-				if (attributes.getValue(Constants.BUNDLE_SYMBOLICNAME) == null) {
-					if (file == null)
-						return null;
-					return convertPluginManifest(file, true);
-				}
-				Dictionary result = new Hashtable();
-				for (Iterator iter = attributes.keySet().iterator(); iter.hasNext();) {
-					String key = iter.next().toString();
-					result.put(key, attributes.getValue(key));
-				}
-				return result;
-			} finally {
-				jar.close();
-			}
-		} catch (IOException e) {
-			if (System.getProperty("osgi.debug") != null) {
-				System.err.println("location=" + location);
-				e.printStackTrace();
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Copied from BundleDescriptionFactory in the metadata generator.
-	 */
-	private static Dictionary convertPluginManifest(File bundleLocation, boolean logConversionException) {
-		PluginConverter converter;
-		try {
-			converter = org.eclipse.equinox.internal.frameworkadmin.utils.Activator.acquirePluginConverter();
-			if (converter == null) {
-				new RuntimeException("Unable to aquire PluginConverter service during generation for: " + bundleLocation).printStackTrace(); //$NON-NLS-1$
-				return null;
-			}
-			return converter.convertManifest(bundleLocation, false, null, true, null);
-		} catch (PluginConversionException convertException) {
-			// only log the exception if we had a plugin.xml or fragment.xml and we failed conversion
-			if (bundleLocation.getName().equals(FEATURE_MANIFEST))
-				return null;
-			if (!new File(bundleLocation, PLUGIN_MANIFEST).exists() && !new File(bundleLocation, FRAGMENT_MANIFEST).exists())
-				return null;
-			if (logConversionException) {
-				IStatus status = new Status(IStatus.WARNING, "org.eclipse.equinox.frameworkadmin", 0, "Error converting bundle manifest.", convertException);
-				System.out.println(status);
-				//TODO Need to find a way to get a logging service to log
-			}
-			return null;
-		}
-	}
-
-	public static String getPathFromClause(String clause) {
-		if (clause == null)
-			return null;
-		if (clause.indexOf(";") != -1)
-			clause = clause.substring(0, clause.indexOf(";"));
-		return clause.trim();
-	}
-
-	public static String getRelativePath(File target, File from) {
-
-		String targetPath = Utils.replaceAll(target.getAbsolutePath(), File.separator, PATH_SEP);
-		String fromPath = Utils.replaceAll(from.getAbsolutePath(), File.separator, PATH_SEP);
-
-		String[] targetTokens = Utils.getTokens(targetPath, PATH_SEP);
-		String[] fromTokens = Utils.getTokens(fromPath, PATH_SEP);
-		int index = -1;
-		for (int i = 0; i < fromTokens.length; i++)
-			if (fromTokens[i].equals(targetTokens[i]))
-				index = i;
-			else
-				break;
-
-		StringBuffer sb = new StringBuffer();
-		for (int i = index + 1; i < fromTokens.length; i++)
-			sb.append(".." + PATH_SEP);
-
-		for (int i = index + 1; i < targetTokens.length; i++)
-			if (i != targetTokens.length - 1)
-				sb.append(targetTokens[i] + PATH_SEP);
-			else
-				sb.append(targetTokens[i]);
-		return sb.toString();
-	}
-
-	public static String getRelativePath(URL target, URL from) throws IllegalArgumentException {
-
-		if (!target.getProtocol().equals(from.getProtocol()))
-			throw new IllegalArgumentException("Protocols of target(=" + target + ") and from(=" + from + ") does NOT equal");
-
-		if (target.getHost() != null && target.getHost().length() != 0) {
-			//System.out.println("target.getHost()=" + target.getHost());
-			if (from.getHost() != null && from.getHost().length() != 0) {
-				if (!target.getHost().equals(from.getHost()))
-					throw new IllegalArgumentException("Hosts of target(=" + target + ") and from(=" + from + ") does NOT equal");
-				if (target.getPort() != (from.getPort()))
-					throw new IllegalArgumentException("Ports of target(=" + target + ") and from(=" + from + ") does NOT equal");
-			} else
-				throw new IllegalArgumentException("While Host of target(=" + target + ") is set, Host of from is null.target.getHost()=" + target.getHost());
-		} else if (from.getHost() != null && from.getHost().length() != 0)
-			throw new IllegalArgumentException("While Host of from(=" + from + ") is set, Host of target is null");
-
-		String targetPath = target.getFile();
-		String fromPath = from.getFile();
-
-		String[] targetTokens = Utils.getTokens(targetPath, PATH_SEP);
-		String[] fromTokens = Utils.getTokens(fromPath, PATH_SEP);
-		int index = -1;
-		for (int i = 0; i < fromTokens.length; i++)
-			if (fromTokens[i].equals(targetTokens[i]))
-				index = i;
-			else
-				break;
-
-		StringBuffer sb = new StringBuffer();
-		for (int i = index + 1; i < fromTokens.length; i++)
-			sb.append(".." + PATH_SEP);
-
-		for (int i = index + 1; i < targetTokens.length; i++)
-			if (i != targetTokens.length - 1)
-				sb.append(targetTokens[i] + PATH_SEP);
-			else
-				sb.append(targetTokens[i]);
-		return sb.toString();
-	}
-
-	//	public static URL getAbsoluteUrl(String relativePath, URL baseUrl) throws FwLauncherException {
-	//		relativePath = Utils.replaceAll(relativePath, File.separator, "/");
-	//		try {
-	//			return new URL(baseUrl, relativePath);
-	//		} catch (MalformedURLException e) {
-	//			throw new FwLauncherException("Absolute URL cannot be created. \nrelativePath=" + relativePath + ",baseUrl=" + baseUrl, e, FwLauncherException.URL_FORMAT_ERROR);
-	//		}
-	//	}
-
-	//	public static void setProperties(Properties to, Properties from, String key) {
-	//		if (from != null) {
-	//			String value = from.getProperty(key);
-	//			if (value != null) {
-	//				if (to != null)
-	//					to = new Properties();
-	//				to.setProperty(key, value);
-	//			}
-	//		}
-	//	}
-
-	//	public static int getIntProperties(Properties props, String key) {//throws ManipulatorException {
-	//		if (props == null)
-	//			throw new IllegalArgumentException("props == null");
-	//		String value = null;
-	//		try {
-	//			value = props.getProperty(key);
-	//			return Integer.parseInt(value);
-	//		} catch (NumberFormatException nfe) {
-	//			throw new ManipulatorException("key=" + key + ",value=" + value, nfe, ManipulatorException.OTHERS);
-	//		}
-	//	}
-
-	/**
-	 * This method will be called for create a backup file.
-	 * 
-	 * @param file target file
-	 * @return File backup file whose filename consists of "hogehoge.yyyyMMddHHmmss.ext" or 
-	 * 	"hogehoge.yyyyMMddHHmmss".
-	 */
-	public static File getSimpleDataFormattedFile(File file) {
-		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
-		String date = df.format(new Date());
-		String filename = file.getName();
-		int index = filename.lastIndexOf(".");
-		if (index != -1)
-			filename = filename.substring(0, index) + "." + date + "." + filename.substring(index + 1);
-		else
-			filename = filename + "." + date;
-		File dest = new File(file.getParentFile(), filename);
-		return dest;
-	}
-
-	public static String[] getTokens(String msg, String delim) {
-		return getTokens(msg, delim, false);
-	}
-
-	public static String[] getTokens(String msg, String delim, boolean returnDelims) {
-		StringTokenizer targetST = new StringTokenizer(msg, delim, returnDelims);
-		String[] tokens = new String[targetST.countTokens()];
-		ArrayList list = new ArrayList(targetST.countTokens());
-		while (targetST.hasMoreTokens()) {
-			list.add(targetST.nextToken());
-		}
-		list.toArray(tokens);
-		return tokens;
-	}
-
-	public static URL getUrl(String protocol, String host, String file) throws MalformedURLException {// throws ManipulatorException {
-		file = Utils.replaceAll(file, File.separator, "/");
-		return new URL(protocol, host, file);
-	}
-
-	public static URL getUrlInFull(String path, URL from) throws MalformedURLException {//throws ManipulatorException {
-		Utils.checkFullUrl(from, "from");
-		path = Utils.replaceAll(path, File.separator, "/");
-		//System.out.println("from.toExternalForm()=" + from.toExternalForm());
-		String fromSt = Utils.removeLastCh(from.toExternalForm(), '/');
-		//System.out.println("fromSt=" + fromSt);
-		if (path.startsWith("/")) {
-			String fileSt = from.getFile();
-			return new URL(fromSt.substring(0, fromSt.lastIndexOf(fileSt) - 1) + path);
-		}
-		return new URL(fromSt + "/" + path);
-	}
-
-	private static Properties manifestToProperties(Attributes d) {
-		Iterator iter = d.keySet().iterator();
-		Properties result = new Properties();
-		while (iter.hasNext()) {
-			Attributes.Name key = (Attributes.Name) iter.next();
-			result.put(key.toString(), d.get(key));
-		}
-		return result;
-	}
-
-	/**
-	 * Just used for debug.
-	 * 
-	 * @param ps printstream
-	 * @param name name of properties 
-	 * @param props properties whose keys and values will be printed out.
-	 */
-	public static void printoutProperties(PrintStream ps, String name, Properties props) {
-		if (props == null || props.size() == 0) {
-			ps.println("Props(" + name + ") is empty");
-			return;
-		}
-		ps.println("Props(" + name + ")=");
-		for (Enumeration enumeration = props.keys(); enumeration.hasMoreElements();) {
-			String key = (String) enumeration.nextElement();
-			ps.print("\tkey=" + key);
-			ps.println("\tvalue=" + props.getProperty(key));
-		}
-	}
-
-	public static String removeLastCh(String target, char ch) {
-		while (target.charAt(target.length() - 1) == ch) {
-			target = target.substring(0, target.length() - 1);
-		}
-		return target;
-	}
-
-	public static String replaceAll(String st, String oldSt, String newSt) {
-		if (oldSt.equals(newSt))
-			return st;
-		int index = -1;
-		while ((index = st.indexOf(oldSt)) != -1) {
-			st = st.substring(0, index) + newSt + st.substring(index + oldSt.length());
-		}
-		return st;
-	}
-
-	public static String shrinkPath(String target) {
-		String targetPath = Utils.replaceAll(target, File.separator, PATH_SEP);
-		String[] targetTokens = Utils.getTokens(targetPath, PATH_SEP);
-		//String[] fromTokens = Utils.getTokens(fromPath, PATH_SEP);
-		for (int i = 0; i < targetTokens.length; i++)
-			if (targetTokens[i].equals("")) {
-				targetTokens[i] = null;
-			} else if (targetTokens[i].equals(".")) {
-				targetTokens[i] = null;
-			} else if (targetTokens[i].equals("..")) {
-				int id = i - 1;
-				while (targetTokens[id] == null) {
-					id--;
-				}
-				targetTokens[id] = null;
-			}
-
-		StringBuffer sb = new StringBuffer();
-		if (targetPath.startsWith(PATH_SEP))
-			sb.append(PATH_SEP);
-		for (int i = 0; i < targetTokens.length; i++)
-			if (targetTokens[i] != null)
-				sb.append(targetTokens[i] + PATH_SEP);
-		String ret = sb.toString();
-		if (!targetPath.endsWith(PATH_SEP))
-			ret = ret.substring(0, ret.lastIndexOf(PATH_SEP));
-		return ret;
-	}
-
-	/**
-	 * Sort by increasing order of startlevels.
-	 * 
-	 * @param bInfos array of BundleInfos to be sorted.
-	 * @param initialBSL initial bundle start level to be used.
-	 * @return sorted array of BundleInfos
-	 */
-	public static BundleInfo[] sortBundleInfos(BundleInfo[] bInfos, int initialBSL) {
-		SortedMap bslToList = new TreeMap();
-		for (int i = 0; i < bInfos.length; i++) {
-			Integer sL = new Integer(bInfos[i].getStartLevel());
-			if (sL.intValue() == BundleInfo.NO_LEVEL)
-				sL = new Integer(initialBSL);
-			List list = (List) bslToList.get(sL);
-			if (list == null) {
-				list = new LinkedList();
-				bslToList.put(sL, list);
-			}
-			list.add(bInfos[i]);
-		}
-
-		// bslToList is sorted by the key (StartLevel).
-		List bundleInfoList = new LinkedList();
-		for (Iterator ite = bslToList.keySet().iterator(); ite.hasNext();) {
-			Integer sL = (Integer) ite.next();
-			List list = (List) bslToList.get(sL);
-			for (Iterator ite2 = list.iterator(); ite2.hasNext();) {
-				BundleInfo bInfo = (BundleInfo) ite2.next();
-				bundleInfoList.add(bInfo);
-			}
-		}
-		return getBundleInfosFromList(bundleInfoList);
-	}
-
-	/**
-	 * get String representing the given properties.
-	 * 
-	 * @param name name of properties 
-	 * @param props properties whose keys and values will be printed out.
-	 */
-	public static String toStringProperties(String name, Properties props) {
-		if (props == null || props.size() == 0) {
-			return "Props(" + name + ") is empty\n";
-		}
-		StringBuffer sb = new StringBuffer();
-		sb.append("Props(" + name + ") is \n");
-		for (Enumeration enumeration = props.keys(); enumeration.hasMoreElements();) {
-			String key = (String) enumeration.nextElement();
-			sb.append("\tkey=" + key + "\tvalue=" + props.getProperty(key) + "\n");
-		}
-		return sb.toString();
-	}
-
-	public static void validateUrl(URL url) {//throws ManipulatorException {
-		try {//test
-			URLConnection connection = url.openConnection();
-			connection.connect();
-		} catch (IOException e) {
-			throw new IllegalArgumentException("URL(" + url + ") cannot be connected.");
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulator.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulator.java
deleted file mode 100644
index f400e35..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.configuratormanipulator;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-
-/**
- * 
- * This interface provides methods that enable client bundles to 
- * manipulate the corresponding ConfiguratorBundle.
- * 
- *  @see Configurator
- */
-
-public interface ConfiguratorManipulator {
-	String SERVICE_PROP_KEY_CONFIGURATOR_BUNDLESYMBOLICNAME = "org.eclipse.equinox.configurator.BundleSymbolicName";
-
-	/**
-	 * Save configuration for the corresponding Configurator Bundle so that 
-	 * Bundles kept by the specified {@link Manipulator} would be installed after completion of a launch.
-	 * The location of a configuration file is determined by the parameters set to the Manipulator object
-	 * and it depends on the corresponding ConfiguratorBundle implementation.
-	 * 
-	 * While some parameters of the {@link Manipulator} object will be modified (for setting info about the 
-	 * location the ConfiguratorBundle would be able to refer in a future launch), 
-	 * the Bundles kept by the {@link Manipulator} object should not be modified.
-	 * 
-	 * Instead, it will return BundleInfo[] to be managed not by the ConfiguratorBundle.
-	 * These values are supposed to be saved into fw config files.
-	 * 
-	 * If backup flag is true, a file have existed already under the same name
-	 * will be renamed into another name as a backup. 
-	 * 
-	 * We assume that the implementation of {@link Manipulator#save(boolean)} will call this method.
-	 *  
-	 * @return array of BundleInfo to be saved as installing bundles in fw config files.
-	 * @param manipulator {@link Manipulator} object which contains the bundles to be installed finally.
-	 * @param backup if files exists at the location to save, it will be copied as a backup.
-	 * @throws IOException - If fail to save configuration for the corresponding Configurator Bundle.
-	 */
-	BundleInfo[] save(Manipulator manipulator, boolean backup) throws IOException;
-
-	/**
-	 * Update bundles kept by the specified {@link Manipulator} object into installed bundles
-	 * if {@link FrameworkAdmin#launch(Manipulator, File)} with the specified 
-	 * {@link Manipulator} is called taking the corresponding ConfiguratorBundle behaivior into account.
-	 * 
-	 * If there is no corresponding ConfiguratorBundle in Manipulator.getConfigData().getBundles(),
-	 * just return.
-	 * 
-	 * The BundleInfo[] of the specified Manipulator object will be modified.
-	 *
-	 * This method is assumed to be called from {@link Manipulator#load()}.
-	 *  
-	 * @param manipulator {@link Manipulator} object to be used and updated.
-	 * @throws IOException - If fail to read configuration for the corresponding Configurator Bundle.
-	 */
-	void updateBundles(Manipulator manipulator) throws IOException;
-
-	void cleanup(Manipulator manipulator);
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulatorFactory.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulatorFactory.java
deleted file mode 100644
index 1112455..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/configuratormanipulator/ConfiguratorManipulatorFactory.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.configuratormanipulator;
-
-import org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdmin;
-
-/**
- * Factory class for creating ConfiguratorManipulator object from Java programs.
- * 
- *  @see FrameworkAdmin
- */
-public abstract class ConfiguratorManipulatorFactory {
-	public final static String SYSTEM_PROPERTY_KEY = "org.eclipse.equinox.configuratorManipulatorFactory";
-
-	abstract protected ConfiguratorManipulator createConfiguratorManipulator();
-
-	public static ConfiguratorManipulator getInstance(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-		ConfiguratorManipulatorFactory factory = (ConfiguratorManipulatorFactory) Class.forName(className).newInstance();
-		return factory.createConfiguratorManipulator();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundleInfo.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundleInfo.java
deleted file mode 100644
index 49dea42..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundleInfo.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-import org.eclipse.core.runtime.Path;
-
-/**
- * This object represents information of a bundle.
- *
- */
-public class BundleInfo {
-	public static final int NO_LEVEL = -1;
-	public static final int NO_BUNDLEID = -1;
-
-	private String symbolicName = null;
-	private String version = null;
-	private String location;
-	private long bundleId = NO_BUNDLEID;
-
-	private boolean markedAsStarted = false;
-	private int startLevel = NO_LEVEL;
-	private boolean resolved = false;
-
-	private String manifest;
-
-	public BundleInfo() {
-	}
-
-	public BundleInfo(String location) {
-		if (location != null)
-			this.location = location.trim();
-	}
-
-	public BundleInfo(String location, boolean started) {
-		if (location != null)
-			this.location = location.trim();
-		this.markedAsStarted = started;
-	}
-
-	public BundleInfo(String location, int startLevel) {
-		if (location != null)
-			this.location = location.trim();
-		this.startLevel = startLevel;
-	}
-
-	public BundleInfo(String location, int startLevel, boolean started) {
-		if (location != null)
-			this.location = location.trim();
-		this.startLevel = startLevel;
-		this.markedAsStarted = started;
-	}
-
-	public BundleInfo(String location, int startLevel, boolean started, long bundleId) {
-		if (location != null)
-			this.location = location.trim();
-		this.startLevel = startLevel;
-		this.markedAsStarted = started;
-		this.bundleId = bundleId;
-	}
-
-	public BundleInfo(String symbolic, String version, String location, int startLevel, boolean started) {
-		this.symbolicName = symbolic;
-		this.version = version;
-		if (location != null)
-			this.location = location.trim();
-		this.markedAsStarted = started;
-		this.startLevel = startLevel;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object toCompare) {
-		if (toCompare instanceof BundleInfo) {
-			BundleInfo info = (BundleInfo) toCompare;
-			//if (info.symbolicName.equals(symbolicName) && info.version.equals(version) && (info.url == null || url == null ? true : info.url.equals(url)))
-			if (info.symbolicName != null && info.version != null && symbolicName != null && version != null) {
-				// TODO: the equalsIgnoreCase for location comparison is a bug;
-				//		 need a platform sensitive location comparison method
-				if (info.symbolicName.equals(symbolicName) && info.version.equals(version) && (info.location == null || location == null ? true : new Path(info.location).toFile().equals(new Path(location).toFile())))
-					return true;
-			} else {
-				return (info.location == null || location == null ? false : new Path(info.location).toFile().equals(new Path(location).toFile()));
-			}
-		}
-		return false;
-	}
-
-	public long getBundleId() {
-		return bundleId;
-	}
-
-	public String getLocation() {
-		return location;
-	}
-
-	public String getManifest() {
-		return manifest;
-	}
-
-	public int getStartLevel() {
-		return startLevel;
-	}
-
-	public String getSymbolicName() {
-		return symbolicName;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		int result = symbolicName == null ? 0 : symbolicName.hashCode();
-		result = result + (version == null ? 0 : version.hashCode());
-		result = result + (location == null ? 0 : new Path(location).hashCode());
-		return result;
-	}
-
-	public boolean isMarkedAsStarted() {
-		return markedAsStarted;
-	}
-
-	public boolean isResolved() {
-		return resolved;
-	}
-
-	public void setBundleId(long bundleId) {
-		this.bundleId = bundleId;
-	}
-
-	public void setLocation(String location) {
-		this.location = (location != null ? location.trim() : null);
-
-	}
-
-	public void setManifest(String manifest) {
-		this.manifest = manifest;
-	}
-
-	public void setMarkedAsStarted(boolean markedAsStarted) {
-		this.markedAsStarted = markedAsStarted;
-	}
-
-	public void setResolved(boolean resolved) {
-		this.resolved = resolved;
-	}
-
-	public void setStartLevel(int level) {
-		this.startLevel = level;
-	}
-
-	public void setSymbolicName(String symbolicName) {
-		this.symbolicName = symbolicName;
-	}
-
-	public void setVersion(String value) {
-		this.version = value;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("BundleInfo("); //$NON-NLS-1$
-		if (symbolicName != null)
-			buffer.append(symbolicName);
-		buffer.append(", "); //$NON-NLS-1$
-		if (version != null)
-			buffer.append(version);
-		buffer.append(", "); //$NON-NLS-1$
-		buffer.append("location="); //$NON-NLS-1$
-		buffer.append(location);
-		buffer.append(", startLevel="); //$NON-NLS-1$
-		buffer.append(startLevel);
-		buffer.append(", toBeStarted="); //$NON-NLS-1$
-		buffer.append(markedAsStarted);
-		buffer.append(", resolved="); //$NON-NLS-1$
-		buffer.append(resolved);
-		buffer.append(", id="); //$NON-NLS-1$
-		buffer.append(this.bundleId);//		buffer.append(',').append(manifest == null ? "no manifest" : "manifest available");
-		buffer.append(',').append(manifest == null ? "no manifest" : "manifest available"); //$NON-NLS-1$ //$NON-NLS-2$
-		buffer.append(')');
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundlesState.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundlesState.java
deleted file mode 100644
index 971373b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/BundlesState.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-/**
- * This API is used for expecting bundles state virtually.
- * 
- * This object is instantiated by {@link Manipulator#getBundlesState()}.
- * At its instantiation, state of the bundles will be created in this object 
- * according to the parameters which the calling {@link Manipulator} object has.
- * For its creation, information in the fw persistent data will be taken into account. 
- * 
- * Modification of this object after its instantiation never affects the parameters
- * in the calling {@link Manipulator} object.  
- *  
- * XXX Implementation of Simple ConfiguratorManipulator needs the functions.   
- *  
- * @see Manipulator
- */
-public interface BundlesState {
-
-	/** Return expected bundles state currently kept in this object. 
-	 * 
-	 * The implementation of this method will try to resolve the state
-	 * if resolving a state is supported.
-	 * 
-	 * @return bundle array of BundleInfo currently composed in this object.
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created the parent {@link Manipulator} is unregistered. 
-	 */
-	BundleInfo[] getExpectedState() throws FrameworkAdminRuntimeException;
-
-	/**	
-	 * Return required bundles to be resolve the specified bInfo
-	 * under the state currently composed.  
-	 * 
-	 * The implementation of this method will try to resolve the state
-	 * if resolving a state is supported. 
-	 * 
-	 * @param bInfo bundleinfo whose prerequisite bundles will be searched.
-	 * @return bundle array of BundleInfos required for the specified bInfo to be resolved. 
-	 */
-	BundleInfo[] getPrerequisteBundles(BundleInfo bInfo);
-
-	/**
-	 * Return a bundle to be used as a framework under the state currently composed.  
-	 * @return a bundle to be used as a framework under the state currently composed. 
-	 */
-	public BundleInfo getSystemBundle();
-
-	/**
-	 * Return bundles which are fragment bundles of the framework under the state currently composed.  
-	 * @return array of BundleInfos which are fragment bundles of the framework.
-	 */
-	public BundleInfo[] getSystemFragmentedBundles();
-
-	/**
-	 * Return array of Strings which tells the unsatisfied constaints
-	 * to resolve the specified bInfo under the state currently composed.  
-	 * 
-	 * If this implementation doesn't support resolving state,
-	 * FrameworkAdminRuntimeException with a cause of {@value FrameworkAdminRuntimeException#UNSUPPORTED_OPERATION}
-	 * will be thrown.
-	 * 
-	 * XXX this method is prepared mainly for debugging. 
-	 * 
-	 * @param bInfo
-	 * @return array of Strings which tells the unsatisfied constaints.
-	 * @throws FrameworkAdminRuntimeException if this implementation doesn't support resolving state, FrameworkAdminRuntimeException with a cause of {@value FrameworkAdminRuntimeException#UNSUPPORTED_OPERATION}  will be thrown.
-	 */
-	public String[] getUnsatisfiedConstraints(BundleInfo bInfo) throws FrameworkAdminRuntimeException;
-
-	/**
-	 * Install the specified bInfo as a installed bundle to the current state virtually.
-	 * Note that resolve this bundle is not done in this implementation.
-	 * 
-	 * @param bInfo BundleInfo to be installed
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created the parent {@link Manipulator} is unregistered. 
-	 */
-	void installBundle(BundleInfo bInfo) throws FrameworkAdminRuntimeException;
-
-	/**
-	 * Return true if this implementation supports full functions,
-	 *  such as resolving bundles and .
-	 * Otherwise false will be returend.
-	 * @return  true if this implementation supports resolving state. Otherwise false.
-	 */
-	boolean isFullySupported();
-
-	/**
-	 * Return true if the state currently composed is resolved after the last change of the state.
-	 * Otherwise false. 
-	 * 
-	 * If this implementation doesn't support resolving state,
-	 * FrameworkAdminRuntimeException with a cause of {@value FrameworkAdminRuntimeException#UNSUPPORTED_OPERATION}
-	 * will be thrown.
-	 * 
-	 * @return true if the state currently composed is resolved after the last change of the state. Otherwise false. 
-	 * @throws FrameworkAdminRuntimeException if this implementation doesn't support resolving state, FrameworkAdminRuntimeException with a cause of {@value FrameworkAdminRuntimeException#UNSUPPORTED_OPERATION}  will be thrown.
-	 */
-	public boolean isResolved() throws FrameworkAdminRuntimeException;
-
-	/**
-	 * Return true if the specified bundle is resolved.
-	 * Otherwise false. 
-	 * 
-	 * If this implementation doesn't support resolving state,
-	 * FwLauncherException with a cause of {@value FwLauncherException#UNSUPPORTED_OPERATION}
-	 * will be thrown.
-	 * 
-	 * @return true if the specified bundle is resolved. Otherwise false. 
-	 * @throws FrameworkAdminRuntimeException if this implementation doesn't support resolving state, FrameworkAdminRuntimeException with a cause of {@value FrameworkAdminRuntimeException#UNSUPPORTED_OPERATION}  will be thrown.
-	 */
-	public boolean isResolved(BundleInfo bInfo) throws FrameworkAdminRuntimeException;
-
-	/**	
-	 * Resolves the constraints contained in this state.
-	 * 
-	 * If this implementation doesn't support resolving state,
-	 * FrameworkAdminRuntimeException with a cause of {@value FrameworkAdminRuntimeException#UNSUPPORTED_OPERATION}
-	 * will be thrown.
-	 * 	 
-	 * @param incremental a flag controlling whether resolution should be incremental
-	 * @throws FrameworkAdminRuntimeException 
-	 */
-	void resolve(boolean increment) throws FrameworkAdminRuntimeException;
-
-	/**
-	 * Uninstall the specified bInfo from the current state virtually. 
-	 * 
-	 * @param bInfo BundleInfo to be uninstalled
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created the parent {@link Manipulator} is unregistered. 
-	 */
-	void uninstallBundle(BundleInfo bInfo) throws FrameworkAdminRuntimeException;;
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/ConfigData.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/ConfigData.java
deleted file mode 100644
index 0ee6bf2..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/ConfigData.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-import java.util.*;
-
-/**
- * This object is instantiated by {@link Manipulator#getConfigData()};
- * The class that keeps some parameters of the {@link Manipulator}
- * created this object. The manipulating of the parameters will affect
- * the  {@link Manipulator}.
- *   
- * @see Manipulator
- */
-public class ConfigData {
-
-	private static Properties appendProperties(Properties to, Properties from) {
-		if (from != null) {
-			if (to == null)
-				to = new Properties();
-			//			printoutProperties(System.out, "to", to);
-			//			printoutProperties(System.out, "from", from);
-
-			for (Enumeration enumeration = from.keys(); enumeration.hasMoreElements();) {
-				String key = (String) enumeration.nextElement();
-				to.setProperty(key, from.getProperty(key));
-			}
-		}
-		//		printoutProperties(System.out, "to", to);
-		return to;
-	}
-
-	final private String fwName;
-	final private String fwVersion;
-	final private String launcherName;
-	final private String launcherVersion;
-	private int beginningFwStartLevel = BundleInfo.NO_LEVEL;
-	private int initialBundleStartLevel = BundleInfo.NO_LEVEL;
-	// List of BundleInfo
-	private LinkedHashSet bundlesList = new LinkedHashSet();
-	private Properties fwIndependentProps = new Properties();
-
-	private Properties fwDependentProps = new Properties();
-
-	public ConfigData(String fwName, String fwVersion, String launcherName, String launcherVersion) {
-		this.fwName = fwName;
-		this.fwVersion = fwVersion;
-		this.launcherName = launcherName;
-		this.launcherVersion = launcherVersion;
-		this.initialize();
-	}
-
-	public void addBundle(BundleInfo bundleInfo) {
-		this.bundlesList.add(bundleInfo);
-	}
-
-	public int getBeginingFwStartLevel() {
-		return this.beginningFwStartLevel;
-	}
-
-	public BundleInfo[] getBundles() {
-		if (bundlesList.size() == 0)
-			return new BundleInfo[0];
-		BundleInfo[] ret = new BundleInfo[bundlesList.size()];
-		bundlesList.toArray(ret);
-		return ret;
-	}
-
-	public String getFwDependentProp(String key) {
-		return fwDependentProps.getProperty(key);
-	}
-
-	public Properties getFwDependentProps() {
-		Properties ret = new Properties();
-		appendProperties(ret, fwDependentProps);
-		return ret;
-	}
-
-	public String getFwIndependentProp(String key) {
-		return fwIndependentProps.getProperty(key);
-	}
-
-	public Properties getFwIndependentProps() {
-		Properties ret = new Properties();
-		appendProperties(ret, fwIndependentProps);
-		return ret;
-	}
-
-	public String getFwName() {
-		return this.fwName;
-	}
-
-	public String getFwVersion() {
-		return this.fwVersion;
-	}
-
-	public int getInitialBundleStartLevel() {
-		return this.initialBundleStartLevel;
-	}
-
-	public String getLauncherName() {
-		return launcherName;
-	}
-
-	public String getLauncherVersion() {
-		return launcherVersion;
-	}
-
-	public void initialize() {
-		this.beginningFwStartLevel = BundleInfo.NO_LEVEL;
-		this.initialBundleStartLevel = BundleInfo.NO_LEVEL;
-		this.bundlesList.clear();
-		this.fwIndependentProps.clear();
-		this.fwDependentProps.clear();
-	}
-
-	public void removeBundle(BundleInfo bundleInfo) {
-		this.bundlesList.remove(bundleInfo);
-	}
-
-	public void setBeginningFwStartLevel(int startLevel) {
-		this.beginningFwStartLevel = startLevel;
-	}
-
-	public void setBundles(BundleInfo[] bundleInfos) {
-		this.bundlesList.clear();
-		if (bundleInfos != null)
-			for (int i = 0; i < bundleInfos.length; i++)
-				bundlesList.add(bundleInfos[i]);
-	}
-
-	public void setFwDependentProp(String key, String value) {
-		this.fwDependentProps.setProperty(key, value);
-	}
-
-	public void setFwDependentProps(Properties props) {
-		this.fwDependentProps.clear();
-		appendProperties(fwDependentProps, props);
-	}
-
-	public void setFwIndependentProp(String key, String value) {
-		this.fwIndependentProps.setProperty(key, value);
-	}
-
-	public void setFwIndependentProps(Properties props) {
-		this.fwIndependentProps.clear();
-		appendProperties(fwIndependentProps, props);
-	}
-
-	public void setInitialBundleStartLevel(int startLevel) {
-		this.initialBundleStartLevel = startLevel;
-	}
-
-	public String toString() {
-		StringBuffer sb = new StringBuffer();
-		sb.append("Class:" + this.getClass().getName() + "\n");
-		sb.append("============Independent===============\n");
-		sb.append("fwName=" + this.fwName + "\n");
-		sb.append("fwVersion=" + this.fwVersion + "\n");
-		sb.append("launcherName=" + this.launcherName + "\n");
-		sb.append("launcherVersion=" + this.launcherVersion + "\n");
-		sb.append("beginningFwStartLevel=" + this.beginningFwStartLevel + "\n");
-		sb.append("initialBundleStartLevel=" + this.initialBundleStartLevel + "\n");
-		if (this.bundlesList.size() == 0)
-			sb.append("bundlesList=null\n");
-		else {
-			sb.append("bundlesList=\n");
-			int i = 0;
-			for (Iterator iter = this.bundlesList.iterator(); iter.hasNext();) {
-				sb.append("\tbundlesList[" + i + "]=" + iter.next().toString() + "\n");
-				i++;
-			}
-		}
-
-		sb.append("============ Fw Independent Props ===============\n");
-		sb.append("fwIndependentProps=");
-		setPropsStrings(sb, fwIndependentProps);
-		sb.append("============ Fw Dependent Props ===============\n");
-		sb.append("fwDependentProps=");
-		setPropsStrings(sb, fwDependentProps);
-		return sb.toString();
-	}
-
-	private static void setPropsStrings(StringBuffer sb, Properties props) {
-		if (props.size() > 0) {
-			sb.append("\n");
-			for (Enumeration enumeration = props.keys(); enumeration.hasMoreElements();) {
-				String key = (String) enumeration.nextElement();
-				String value = props.getProperty(key);
-				if (value == null || value.equals(""))
-					continue;
-				sb.append("\t{" + key + " ,\t" + value + "}\n");
-			}
-		} else
-			sb.append("empty\n");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdmin.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdmin.java
deleted file mode 100644
index a145750..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdmin.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * The implementation of this API will be registered to the service 
- * registry as an OSGi service.
- * 
- * *****************************************************************
- * 1. For developers who implement bundles that register this service.
- * 
- * Upon registration, the following service properties must be set to allow clients to 
- * search the FrameworkAdmin object, which will create BundlesState / ConfigData / LauncherData objects.
- * 
- * {@link FrameworkAdmin#SERVICE_PROP_KEY_FW_NAME}: String; name of the framework 
- * {@link FrameworkAdmin#SERVICE_PROP_KEY_FW_VERSION}: String; version of the framework
- * {@link FrameworkAdmin#SERVICE_PROP_KEY_LAUNCHER_NAME}: String; name of the launcher 
- * {@link FrameworkAdmin#SERVICE_PROP_KEY_LAUNCHER_VERSION}: String; version of the launcher 
- *
- * Bundles that register this service will check if the currently running system can be manipulated by 
- * this FrameworkAdmin. If yes and this implementation can create an initialized Manipulator object
- * according to the running framework and launcher, add the service property keyed by 
- * 
- * {@link FrameworkAdmin#SERVICE_PROP_KEY_RUNNING_SYSTEM_FLAG}: String; if "true", 
- * the service that will be returned by getRunningManipulator() is fully initialized to 
- * represent the state of the running system.
- *     
- * It is recommended to implement Manipulator objects created by calling methods of this interface
- * so that they cannot be used after this service is unregistered.  
- *     
- * *****************************************************************
- * 2. For developers who implement client bundles that use this service.
- * 
- * A client of this service can obtain a Manipulator object by calling the {@link #getManipulator()} method.
- * 
- * A client can search among services registered in a service registry to find the 
- * desired FrameworkAdmin implementation that matches the desired framework 
- * type, framework version, launcher type, and launcher version.
- * 
- * In order for a client bundle to manipulate the {@link Manipulator} object 
- * of the running framework and launcher, the service filter (FrameworkAdmin#SERVICE_PROP_KEY_RUNNING_FW_FLAG=true) 
- * should be used.   
- * 
- * As with all OSGi services, the client bundle should track this service state.
- * If the service is unregistered, it should stop using any of the objects obtained from this service and 
- * release them. If it continues to use them, {@link FrameworkAdminRuntimeException} might 
- * be thrown. 
- * 
- * *****************************************************************
- * In addition, FrameworkAdminFactory will create this object. This is used by Java programs.
- * 
- * @see FrameworkAdminFactory
- *    
- */
-public interface FrameworkAdmin {
-
-	String SERVICE_PROP_KEY_FW_NAME = "org.eclipse.equinox.frameworkhandler.framework.name";
-	String SERVICE_PROP_KEY_FW_VERSION = "org.eclipse.equinox.frameworkhandler.framework.version";
-
-	String SERVICE_PROP_KEY_LAUNCHER_NAME = "org.eclipse.equinox.frameworkhandler.launcher.name";
-	String SERVICE_PROP_KEY_LAUNCHER_VERSION = "org.eclipse.equinox.frameworkhandler.launcher.version";
-	String SERVICE_PROP_KEY_RUNNING_SYSTEM_FLAG = "org.eclipse.equinox.frameworkhandler.runningfwflag";
-
-	/**
-	 * Create new instance of {@link Manipulator} and return it.
-	 * 
-	 * @return new instance of Manipulator.
-	 */
-	public Manipulator getManipulator();
-
-	/**
-	 * Create new instance of {@link Manipulator} for running system 
-	 * and return it. The instance must be initialized fully according to the 
-	 * running environment. If this implementation cannot provide it, return null.
-	 * 
-	 * @return new instance of Manipulator.
-	 */
-	public Manipulator getRunningManipulator();
-
-	/**
-	 * Launch a framework instance under the specified current working directory. 
-	 * 
-	 * @param manipulator {@link Manipulator} object to be launched.
-	 * @param cwd current working directory to be used for launching.
-	 * @return process
-	 * @throws IllegalArgumentException if specified arguments are null.
-	 * @throws IOException if any error relate with IO occurs
-	 * @throws FrameworkAdminRuntimeException if the FrameworkAdmin service object
-	 * 		 that created the specified Manipulator object is unregistered.
-	 */
-	public Process launch(Manipulator manipulator, File cwd) throws IllegalArgumentException, IOException, FrameworkAdminRuntimeException;
-
-	/**
-	 * 	
-	 * @return true if this object is active. false otherwise.
-	 */
-	public boolean isActive();
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminFactory.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminFactory.java
deleted file mode 100644
index 9970466..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-/**
- * Factory class for creating FrameworkAdmin object from Java programs.
- * 
- *  @see FrameworkAdmin
- */
-public abstract class FrameworkAdminFactory {
-	abstract protected FrameworkAdmin createFrameworkAdmin() throws InstantiationException, IllegalAccessException, ClassNotFoundException;
-
-	// proposed method: only for ConfiguratorManipulatorFactory, magic system property is used.
-	public static FrameworkAdmin getInstance(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-		FrameworkAdminFactory factory = (FrameworkAdminFactory) Class.forName(className).newInstance();
-		return (FrameworkAdmin) factory.createFrameworkAdmin();
-	}
-
-	//  // method 3: two magic system properties are used.
-	//	public static FrameworkAdmin getInstance() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-	//		String className = System.getProperty("org.eclipse.equinox.internal.provisional.frameworkadmin.frameworkAdminFactory");
-	//		if (className == null)
-	//			throw new ClassNotFoundException("System property keyed by \"org.eclipse.equinox.internal.provisional.frameworkadmin.frameworkAdminFactory\" is not set.");
-	//		FrameworkAdminFactory factory = (FrameworkAdminFactory) Class.forName(className).newInstance();
-	//		return (FrameworkAdmin) factory.createFrameworkAdmin();
-	//	}
-
-	//  // method 1: no magic system properties are used.
-	//
-	//	public static FrameworkAdmin getInstance(String className, String configuratorManipulatorFactoryName) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
-	//		ExtendedFrameworkAdminFactory factory = (ExtendedFrameworkAdminFactory) Class.forName(className).newInstance();
-	//		return (FrameworkAdmin) factory.createFrameworkAdmin(configuratorManipulatorFactoryName);
-	//	}
-
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminRuntimeException.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminRuntimeException.java
deleted file mode 100644
index 0e99605..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/FrameworkAdminRuntimeException.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-public class FrameworkAdminRuntimeException extends RuntimeException {
-
-	private static final long serialVersionUID = -2292498677000772317L;
-	public static final String FRAMEWORKADMIN_UNAVAILABLE = "FrameworkAdmin service created this object is not available any more";
-	public static final String UNSUPPORTED_OPERATION = "This implementation doesn't support this method.";
-
-	private final String reason;
-	private Throwable cause;
-
-	/**
-	 * @param message
-	 */
-	public FrameworkAdminRuntimeException(String message, String reason) {
-		super(message);
-		this.reason = reason;
-		this.cause = null;
-	}
-
-	/**
-	 * @param message
-	 * @param cause
-	 */
-	public FrameworkAdminRuntimeException(String message, Throwable cause, String reason) {
-		super(message);
-		this.reason = reason;
-		this.cause  = cause;
-	}
-
-	/**
-	 * @param cause
-	 */
-	public FrameworkAdminRuntimeException(Throwable cause, String reason) {
-		super(cause.getLocalizedMessage());
-		this.reason = reason;
-		this.cause = cause;
-	}
-
-	public String getReason() {
-		return reason;
-	}
-
-	public Throwable getCause() {
-		return cause;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/LauncherData.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/LauncherData.java
deleted file mode 100644
index ad8fd49..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/LauncherData.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * This object is instantiated by {@link Manipulator#getLauncherData()};
- * The class that keeps some parameters of the {@link Manipulator}
- *  created this object. The manipulating of the parameters will affect
- *  the  {@link Manipulator}.
- *  
- * 
- * @see Manipulator
- */
-public class LauncherData {
-	//private static final String[] NULL_STRINGS = new String[0];
-	private File fwPersistentDataLocation = null;
-	private File jvm = null;
-	private List jvmArgs = new LinkedList();
-	private List programArgs = new LinkedList();
-
-	private boolean clean;
-	private File fwConfigLocation;
-	private File home = null;
-	private File fwJar = null;
-
-	private File launcher = null;
-	private File launcherConfigLocation = null;
-
-	private String fwName;
-	private String fwVersion;
-	private String launcherName;
-	private String launcherVersion;
-
-	public LauncherData(String fwName, String fwVersion, String launcherName, String launcherVersion) {
-		this.fwName = fwName;
-		this.fwVersion = fwVersion;
-		this.launcherName = launcherName;
-		this.launcherVersion = launcherVersion;
-		this.initialize();
-	}
-
-	public void addJvmArg(String arg) {
-		if (arg == null)
-			return;
-		jvmArgs.add(arg);
-	}
-
-	public void addProgramArg(String arg) {
-		if (arg == null)
-			return;
-		programArgs.add(arg);
-	}
-
-	public File getFwConfigLocation() {
-		return fwConfigLocation;
-	}
-
-	public File getFwJar() {
-		return fwJar;
-	}
-
-	public String getFwName() {
-		return fwName;
-	}
-
-	public File getFwPersistentDataLocation() {
-		return fwPersistentDataLocation;
-	}
-
-	public String getFwVersion() {
-		return fwVersion;
-	}
-
-	public File getHome() {
-		return home;
-	}
-
-	public File getJvm() {
-		return jvm;
-	}
-
-	public String[] getJvmArgs() {
-		String[] args = new String[jvmArgs.size()];
-		jvmArgs.toArray(args);
-		return args;
-	}
-
-	public File getLauncher() {
-		return launcher;
-	}
-
-	public File getLauncherConfigLocation() {
-		return launcherConfigLocation;
-	}
-
-	public String getLauncherName() {
-		return launcherName;
-	}
-
-	public String getLauncherVersion() {
-		return launcherVersion;
-	}
-
-	public String[] getProgramArgs() {
-		String[] args = new String[programArgs.size()];
-		programArgs.toArray(args);
-		return args;
-	}
-
-	public void initialize() {
-		fwPersistentDataLocation = null;
-		jvm = null;
-		jvmArgs.clear();
-		programArgs.clear();
-		clean = false;
-		fwConfigLocation = null;
-		fwJar = null;
-		launcher = null;
-	}
-
-	public boolean isClean() {
-		return clean;
-	}
-
-	public void removeJvmArg(String arg) {
-		jvmArgs.remove(arg);
-	}
-
-	public void removeProgramArg(String arg) {
-		programArgs.remove(arg);
-	}
-
-	public void setFwConfigLocation(File fwConfigLocation) {
-		this.fwConfigLocation = fwConfigLocation;
-	}
-
-	public void setFwJar(File fwJar) {
-		this.fwJar = fwJar;
-	}
-
-	public void setFwPersistentDataLocation(File fwPersistentDataLocation, boolean clean) {
-		this.fwPersistentDataLocation = fwPersistentDataLocation;
-		this.clean = clean;
-	}
-
-	public void setHome(File home) {
-		this.home = home;
-	}
-
-	public void setJvm(File file) {
-		this.jvm = file;
-	}
-
-	public void setJvmArgs(String[] args) {
-		if (args == null || args.length == 0) {
-			jvmArgs.clear();
-			return;
-		}
-		for (int i = 0; i < args.length; i++)
-			this.addJvmArg(args[i]);
-	}
-
-	public void setLauncher(File launcherFile) {
-		launcher = launcherFile;
-	}
-
-	public void setLauncherConfigLocation(File launcherConfigLocation) {
-		this.launcherConfigLocation = launcherConfigLocation;
-	}
-
-	public void setProgramArgs(String[] args) {
-		if (args == null || args.length == 0) {
-			programArgs.clear();
-			return;
-		}
-		for (int i = 0; i < args.length; i++)
-			this.addProgramArg(args[i]);
-	}
-
-	public String toString() {
-		StringBuffer sb = new StringBuffer();
-		sb.append("Class:" + this.getClass().getName() + "\n");
-		sb.append("fwName=" + this.fwName + "\n");
-		sb.append("fwVersion=" + this.fwVersion + "\n");
-		sb.append("launcherName=" + this.launcherName + "\n");
-		sb.append("launcherVersion=" + this.launcherVersion + "\n");
-
-		sb.append("jvm=" + this.jvm + "\n");
-		if (this.jvmArgs.size() == 0)
-			sb.append("jvmArgs = null\n");
-		else {
-			sb.append("jvmArgs=\n");
-			int i = 0;
-			for (Iterator iterator = jvmArgs.iterator(); iterator.hasNext(); iterator.next())
-				sb.append("\tjvmArgs[" + i++ + "]=" + iterator + "\n");
-
-		}
-		if (this.programArgs.size() == 0)
-			sb.append("programArgs = null\n");
-		else {
-			sb.append("programArgs=\n");
-			int i = 0;
-			for (Iterator iterator = programArgs.iterator(); iterator.hasNext(); iterator.next())
-				sb.append("\tprogramArgs[" + i++ + "]=" + iterator + "\n");
-		}
-		sb.append("fwConfigLocation=" + this.fwConfigLocation + "\n");
-		sb.append("fwJar=" + this.fwJar + "\n");
-		sb.append("fwPersistentDataLocation=" + this.fwPersistentDataLocation + "\n");
-		sb.append("home=" + this.home + "\n");
-		sb.append("launcher=" + this.launcher + "\n");
-		sb.append("launcherConfigLocation=" + this.launcherConfigLocation + "\n");
-		sb.append("clean=" + this.isClean() + "\n");
-
-		return sb.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/Manipulator.java b/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/Manipulator.java
deleted file mode 100644
index 303290b..0000000
--- a/bundles/org.eclipse.equinox.frameworkadmin/src/org/eclipse/equinox/internal/provisional/frameworkadmin/Manipulator.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.frameworkadmin;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulator;
-
-/**
- * A manipulator is used to query and modify the state of a framework instance. 
- * A manipulator instance is obtained by calling {@link FrameworkAdmin#getManipulator()}.
- * 
- * The typical use-cases of this interface:
- * 
- * Usecase 1: set parameters, check the expected state, save them into configuration files, and launch. 
- * 	A. create a {@link Manipulator} object from a {@link FrameworkAdmin}.
- *  B. set parameters to the {@link Manipulator} object.
- *  C. getExpectedState() and check what bundle state will be realized.
- *     If it is not same as you desire, repeat B and C until it becomes as you desire.
- *  D. save parameters into configuration files by {@link Manipulator#save(boolean)}.
- *  E. launch the framework by {@link FrameworkAdmin#launch(Manipulator, File)}.
- *     
- * Usecase 2: set parameters required for loading, load parameters from configuration files,
- * 		  check the expected state, and launch. 
- * 	A. create a {@link Manipulator} object from a {@link FrameworkAdmin}.
- *  B. set parameters about launcher or framework configuration file to the {@link Manipulator} object.
- *  C. load parameters from configuration files by {@link Manipulator#load()};
- *  D. getExpectedState() and check what bundle state will be realized.
- *  E. launch the framework by {@link FrameworkAdmin#launch(Manipulator, File)}.
- * @see FrameworkAdmin
- * @see ConfigData
- * @see LauncherData
- */
-public interface Manipulator {
-
-	/**
-	 * Return the newly created BundldsState object,
-	 * according to the parameters set to this object "in memory".
-	 * 
-	 * None of launcher config file, framework config file and configurator config file
-	 * will be read by this method. However, the framework persistent data location should be
-	 * taken into consideration. In other words, this method will return 
-	 * the expected {@link BundlesState} object assuming that the current parameters were saved and 
-	 * {@link FrameworkAdmin#launch(Manipulator, File)} with an argument of this object 
-	 * were called. (It would read the framework persistent data location if required).
-	 *  
-	 * This method should not modify the parameters in this {@link Manipulator} object.
-	 * 
-	 * @return framework bundle state object created according to he current parameters set.
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created this object is unregistered or this implementation doesn't support this method. 
-	 */
-	BundlesState getBundlesState() throws FrameworkAdminRuntimeException;
-
-	/**
-	 * The reference of {@link ConfigData} object representing configuration information related with framework settings will be returned.
-	 * Remind that manipulating returned object will affect this Manipulator behavior.
-	 *  
-	 * @return ConfigData object representing configuration information related with framework setting 
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created this object is unregistered or this implementation doesn't support this method. 
-	 * @see ConfigData
-	 */
-	ConfigData getConfigData() throws FrameworkAdminRuntimeException;
-
-	/**
-	 * Return the expected BundleInfo array representing state of bundles,
-	 * according to the parameters set to this object "in memory".
-	 * 
-	 * None of launcher config file, framework config file and configurator config file
-	 * will be read by this method. However, the framework persistent data location should be
-	 * taken into consideration. In other words, this method will return 
-	 * the expected bundles state assuming that the current parameters were saved and 
-	 * {@link FrameworkAdmin#launch(Manipulator, File)} with an argument of this object 
-	 * were called. (It would read the framework persistent data location if required).
-	 * 
-	 * Returned BundleInfos must have resolved flag set.
-	 * This method should not modify the parameters in this {@link Manipulator} object. 
-	 * 
-	 * cf. getConfigData().getBundles() will return array of BundleInfo too.
-	 * 	However the resolved flag of returned BundleInfos might not be reliable.
-	 * 
-	 * This method is equivalent to calling getBundlesState().getExpectedState().
-	 *  
-	 * @return array of BundleInfo representing expected state of all bundles installed.
-	 * @throws IllegalArgumentException - If either of fwJar or cwd doesn't exist.
-	 * @throws IOException - If reading fw configuration file or reading persistently recorded information 
-	 *   of fw fails. 
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created this object is unregistered or this implementation doesn't support this method. 
-	 */
-	BundleInfo[] getExpectedState() throws IllegalStateException, IOException, FrameworkAdminRuntimeException;
-
-	/**
-	 * The reference of {@link LauncherData} object representing configuration information
-	 * related with launcher settings will be returned. 
-	 * Remember that manipulating returned object will affect this Manipulator object behavior.
-	 * 
-	 * @return LauncherData object representing configuration information related with launcher setting 
-	 * @throws FrameworkAdminRuntimeException - If the ManipulatorAdmin service created this object is unregistered or this implementation doesn't support this method. 
-	 * @see LauncherData
-	 */
-	LauncherData getLauncherData() throws FrameworkAdminRuntimeException;
-
-	/**
-	 * Return timestamp of configurations which will be loaded by load() method
-	 * according to the parameters set to this manipulator in long value.
-	 * 
-	 * This method will check last modified time of all launcher configuration file, framework configuration file,
-	 * and framework persistent storage according to the parameters set.
-	 * @return
-	 */
-	long getTimeStamp();
-
-	/**
-	 * Initialize all information that this object keeps at that time.
-	 */
-	void initialize();
-
-	/**
-	 * load configs from appropriate config files, 
-	 * including launcher config file, fw config file, and configurator config files, 
-	 * whose locations are determined by the current setting. In addition, 
-	 * the fw persistent data location should be taken into consideration. 
-	 * 
-	 * The following procedure contains the matters of implementation detail.
-	 * However, it is an example how it works.
-	 * 
-	 * 1. if launcher object is set, corresponding launcher config file will be read.
-	 * According to the information retrieved, setting of this object will be updated.
-	 * including fw config file.
-	 * 
-	 * 2. If fw config file is not specified, IllegalStateException will be thrown. 
-	 * Otherwise, the information will be retrieved from the fw config file.
-	 * 
-	 * 3. If any ConfiguratorBundle is included in the bundle list,
-	 * read appropriate configurator config file by 
-	 * {@link ConfiguratorManipulator#updateBundles(Manipulator)},
-	 *  which will update the parameter about installed bundles in its 
-	 *  {@link Manipulator#getConfigData()} object.
-	 *  
-	 * Most old parameters will be updated by this method call. 
-	 * 
-	 * @throws IOException - If reading info from configuration files fails. 
-	 * @throws IllegalStateException - If config files cannot be determined.
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created this object is unregistered or this implementation doesn't support this method. 
-	 */
-	void load() throws IllegalStateException, IOException, FrameworkAdminRuntimeException;
-
-	/**
-	 * Save parameters that this object keeps at that time into appropriate configuration files, 
-	 * which include launcher configuration file, framework configuration file, and configurator configuration files
-	 * (if required and implementation of this object supports), according to the current setting and situation. 
-	 * 
-	 * The following procedure contains the matters of implementation detail.
-	 * However, it is an example how it works.
-	 * 
-	 * 1. if a launcher file is set,
-	 * the parameters to be saved into a LauncherConfigFile will be saved into the default LauncherConfigFile
-	 * that is determined by the location of the launcher file.
-	 * 
-	 * 
-	 * 2. if there are any {@link ConfiguratorManipulator} objects available whose corresponding ConfiguratorBundle
-	 * is set to be started, choose the ConfiguratorBudnle that starts the first among them and go to next step.
-	 * Otherwise, save the BundleInfo[] set to this object into a FwConfigFile that is determined
-	 * by the parameters set. 
-	 *  
-	 * 3. call {@link ConfiguratorManipulator#save(Manipulator, boolean)} of 
-	 * the ConfiguratorManipulator that can manipulate the chosen ConfiguratorBudnle. 
-	 * This method will save configurations for ConfiguratorBundle to read appropriately  
-	 * and return BundleInfo[] to be saved in the FwConfigFile, which is determined by the parameters set.
-	 * 
-	 * 4. Save the returned BundleInfo[] in the FwConfigFile, which is determined by the parameters set.
-	 * 	   
-	 * @param backup - if true, keep old file by renaming if exists. 
-	 * @throws IOException - If writing info into configuration files fails. 
-	 * @throws FrameworkAdminRuntimeException - If the {@link FrameworkAdmin} service created this object is unregistered or this implementation doesn't support this method. 
-	 */
-	void save(boolean backup) throws IOException, FrameworkAdminRuntimeException;
-
-	/**
-	 * Copy all information the specified {@link ConfigData} contains into this object.
-	 * All of old settings will be initialized and replaced.
-	 * 
-	 * @param configData fw config data to be set to this object.
-	 */
-	void setConfigData(ConfigData configData);
-
-	/**
-	 * Copy all information the specified {@link LauncherData} contains into this object.
-	 * All of old settings will be initialized and replaced.
-	 * 
-	 * @param launcherData launcher config data to be set to this object.
-	 */
-	void setLauncherData(LauncherData launcherData);
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.classpath b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.project b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.project
deleted file mode 100644
index fb42636..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.artifact.optimizers</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index c9dc95d..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Nov 14 12:49:29 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d1e9ee3..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Mon Nov 05 16:53:31 EST 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 900e4e1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,60 +0,0 @@
-#Mon Nov 05 16:53:31 EST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
deleted file mode 100644
index 394e092..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,30 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.artifact.optimizers;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.artifact.optimizers.Activator
-Import-Package: ie.wombat.jbdiff,
- org.eclipse.equinox.app;version="1.0.0",
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.p2.sar,
- org.eclipse.internal.provisional.equinox.p2.jarprocessor,
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Require-Bundle: org.eclipse.equinox.common
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.internal.p2.artifact.optimizers;x-friends:="org.eclipse.equinox.p2.artifact.processors",
- org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html b/bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties b/bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties
deleted file mode 100644
index 48a852f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch b/bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch
deleted file mode 100644
index 65bf933..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/optimizer.launch
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/optimizer"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre1.6.0"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.artifact.optimizers.pack200optimizer&#13;&#10;-artifactRepository file:d:/prov/repo&#13;&#10;-console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:default,org.eclipse.core.runtime.compatibility.registry@default:default,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default,org.eclipse.update.configurator@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="ie.wombat.jbdiff@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:true,org.eclipse.equinox.p2.artifact.optimizers@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.sar@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties b/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties
deleted file mode 100644
index 51697ea..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox p2 Artifact Optimizers
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml b/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml
deleted file mode 100644
index fb0e4f6..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/plugin.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-	<extension id="jardeltaoptimizer" point="org.eclipse.core.runtime.applications"> 
-      <application> 
-         <run class="org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta.Application"/> 
-      </application> 
-   </extension>
-
-	<extension id="pack200optimizer" point="org.eclipse.core.runtime.applications"> 
-      <application> 
-         <run class="org.eclipse.equinox.internal.p2.artifact.optimizers.pack200.Application"/> 
-      </application> 
-   </extension>
-
-	<extension id="jbdiffoptimizer" point="org.eclipse.core.runtime.applications"> 
-      <application> 
-         <run class="org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff.Application"/> 
-      </application> 
-   </extension>
-
-	<extension id="Pack200Optimizer" point="org.eclipse.equinox.p2.artifact.repository.processingSteps">
-		<step class="org.eclipse.equinox.internal.p2.artifact.optimizers.pack200.Pack200OptimizerStep"/>
-	</extension>
-
-	<extension id="JarDeltaOptimizer" point="org.eclipse.equinox.p2.artifact.repository.processingSteps">
-		<step class="org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta.JarDeltaOptimizerStep"/>
-	</extension>
-
-	<extension id="JBDiffStep" point="org.eclipse.equinox.p2.artifact.repository.processingSteps">
-		<step class="org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff.JBDiffStep"/>
-	</extension>
-
-	<extension id="JBDiffZipStep" point="org.eclipse.equinox.p2.artifact.repository.processingSteps">
-		<step class="org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff.JBDiffZipStep"/>
-	</extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractBufferingStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractBufferingStep.java
deleted file mode 100644
index c5b41bc..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractBufferingStep.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers;
-
-import java.io.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-
-public abstract class AbstractBufferingStep extends ProcessingStep {
-	protected static final String JAR_SUFFIX = ".jar"; //$NON-NLS-1$
-	protected static final String INCOMING_ROOT = "p2.optimizers.incoming"; //$NON-NLS-1$
-	protected static final String RESULT_ROOT = "p2.optimizers.result"; //$NON-NLS-1$
-	protected static final String PREDECESSOR_ROOT = "p2.optimizers.predecessor"; //$NON-NLS-1$
-
-	protected OutputStream incomingStream;
-	private File workDir;
-
-	protected AbstractBufferingStep() {
-		super();
-	}
-
-	public void write(int b) throws IOException {
-		OutputStream stream = getOutputStream();
-		stream.write(b);
-	}
-
-	protected OutputStream getOutputStream() throws IOException {
-		if (incomingStream != null)
-			return incomingStream;
-		// if buffering, store input stream in temporary file
-		incomingStream = createIncomingStream();
-		return incomingStream;
-	}
-
-	protected abstract OutputStream createIncomingStream() throws IOException;
-
-	public void close() throws IOException {
-		// When we go to close we must have seen all the content we are going to see.
-		// If no one wrote to the temp stream then there is nothing to do. If there is 
-		// content then close the temporary stream and perform the optimization.
-		// Performing the optimization should result in the new content being written to 
-		// the destination.  Make sure we delete the temporary file if any.
-		try {
-			if (incomingStream != null) {
-				incomingStream.close();
-				performProcessing();
-			}
-		} finally {
-			incomingStream = null;
-			cleanupTempFiles();
-			cleanupWorkDir();
-		}
-
-		super.close();
-		// TODO need to get real status here.  sometimes the optimizers do not give 
-		// any reasonable return status
-		// COMMENT status is initially set to OK!
-	}
-
-	protected abstract void performProcessing() throws IOException;
-
-	protected void cleanupTempFiles() {
-	}
-
-	private void cleanupWorkDir() throws IOException {
-		if (workDir != null) {
-			FileUtils.deleteAll(workDir);
-			// TODO try twice since there seems to be some cases where the dir is not 
-			// deleted the first time.  At least on Windows...
-			FileUtils.deleteAll(workDir);
-		}
-	}
-
-	protected File getWorkDir() throws IOException {
-		if (workDir != null)
-			return workDir;
-		workDir = File.createTempFile("work", "");
-		if (!workDir.delete())
-			throw new IOException("Could not delete file for creating temporary working dir.");
-		if (!workDir.mkdirs())
-			throw new IOException("Could not create temporary working dir.");
-		return workDir;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractDeltaStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractDeltaStep.java
deleted file mode 100644
index 4c321d3..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/AbstractDeltaStep.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers;
-
-import java.io.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * The <code>AbstractDeltaDiffStep</code> is an abstract processing step that
- * retrieves a local artifact repository containing the serialized/encoded
- * artifact key. It assumes that the artifact key is stored within the data property
- * of the processing step descriptor and that is encoded with the <code>ArtifactKeySerializer</code>.
- */
-public abstract class AbstractDeltaStep extends AbstractBufferingStep {
-
-	protected IArtifactKey key;
-	protected IArtifactRepository repository;
-
-	public AbstractDeltaStep() {
-		this(null);
-	}
-
-	protected AbstractDeltaStep(IArtifactRepository repository) {
-		super();
-		this.repository = repository;
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		readArtifactKey(descriptor);
-	}
-
-	protected void readArtifactKey(ProcessingStepDescriptor descriptor) {
-		try {
-			key = ArtifactKey.parse(descriptor.getData());
-		} catch (IllegalArgumentException e) {
-			setStatus(new Status(IStatus.ERROR, Activator.ID, "Predecessor artifact key for delta could not be deserialized. Serialized key is " + descriptor.getData(), e));
-		}
-	}
-
-	protected File fetchPredecessor(ArtifactDescriptor descriptor) {
-		if (repository instanceof IFileArtifactRepository)
-			return ((IFileArtifactRepository) repository).getArtifactFile(descriptor);
-		File result = null;
-		OutputStream resultStream = null;
-		try {
-			try {
-				result = File.createTempFile(PREDECESSOR_ROOT, JAR_SUFFIX);
-				resultStream = new BufferedOutputStream(new FileOutputStream(result));
-				setStatus(repository.getArtifact(descriptor, resultStream, getProgressMonitor()));
-				return result;
-			} finally {
-				if (resultStream != null)
-					resultStream.close();
-			}
-		} catch (IOException e) {
-		}
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java
deleted file mode 100644
index 4d0ea17..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/Activator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.artifact.optimizers;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.artifact.optimizers"; //$NON-NLS-1$
-	private static BundleContext context = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java
deleted file mode 100644
index d0c2738..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/VersionlessArtifactKey.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers;
-
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.osgi.framework.Version;
-
-public class VersionlessArtifactKey extends ArtifactKey {
-
-	public VersionlessArtifactKey(String classifier, String id) {
-		super(classifier, id, Version.emptyVersion);
-	}
-
-	public VersionlessArtifactKey(IArtifactKey base) {
-		super(base.getClassifier(), base.getId(), Version.emptyVersion);
-	}
-
-	public int hashCode() {
-		int hash = getId().hashCode();
-		hash = 17 * hash + getClassifier().hashCode();
-		return hash;
-	}
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof IArtifactKey))
-			return false;
-		IArtifactKey ak = (IArtifactKey) obj;
-		return ak.getId().equals(getId()) && ak.getClassifier().equals(getClassifier());
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java
deleted file mode 100644
index 0906962..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;
-
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * The optimizer <code>Application</code> for JBDiff based optimizations. 
- */
-public class Application implements IApplication {
-
-	private URL artifactRepositoryLocation;
-	private int width = 1;
-	private int depth = 1;
-
-	public Object start(IApplicationContext context) throws Exception {
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args")); //$NON-NLS-1$
-		IArtifactRepository repository = setupRepository(artifactRepositoryLocation);
-		new Optimizer(repository, width, depth).run();
-		return null;
-	}
-
-	private IArtifactRepository setupRepository(URL location) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		return manager.loadRepository(location, null);
-	}
-
-	public void stop() {
-		// nothing to do yet
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-			//			if (args[i].equals("-pack"))
-			//				pack = true;
-
-			// 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 param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase("-artifactRepository") || args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$
-				artifactRepositoryLocation = new URL(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-depth")) //$NON-NLS-1$
-				depth = Integer.parseInt(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-width")) //$NON-NLS-1$
-				width = Integer.parseInt(arg);
-
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/DeltaComputer.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/DeltaComputer.java
deleted file mode 100644
index 099283b..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/DeltaComputer.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.*;
-
-public class DeltaComputer {
-	private File target;
-	private File base;
-	private File destination;
-	private ZipFile baseJar;
-	private ZipFile targetJar;
-	private Set baseEntries;
-	private ArrayList additions;
-	private ArrayList changes;
-	private ZipFile manifestJar = null;
-
-	public DeltaComputer(File base, File target, File destination) {
-		this.base = base;
-		this.target = target;
-		this.destination = destination;
-	}
-
-	public void run() throws IOException {
-		try {
-			if (!openJars())
-				return;
-			computeDelta();
-			writeDelta();
-		} finally {
-			closeJars();
-		}
-	}
-
-	private void writeDelta() {
-		ZipOutputStream result = null;
-		try {
-			try {
-				result = new ZipOutputStream(new FileOutputStream(destination));
-				// if the delta includes the manifest, be sure to write it first
-				if (manifestJar != null)
-					writeEntry(result, manifestJar.getEntry("META-INF/MANIFEST.MF"), manifestJar, true);
-				// write out the removals.  These are all the entries left in the baseEntries
-				// since they were not seen in the targetJar.  Here just write out an empty
-				// entry with a name that signals the delta processor to delete.
-				for (Iterator i = baseEntries.iterator(); i.hasNext();)
-					writeEntry(result, new ZipEntry(((String) i.next()) + ".delete"), null, false);
-				// write out the additions.
-				for (Iterator i = additions.iterator(); i.hasNext();)
-					writeEntry(result, (ZipEntry) i.next(), targetJar, false);
-				// write out the changes.
-				for (Iterator i = changes.iterator(); i.hasNext();)
-					writeEntry(result, (ZipEntry) i.next(), targetJar, false);
-			} finally {
-				if (result != null)
-					result.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-			return;
-		}
-	}
-
-	private void writeEntry(ZipOutputStream result, ZipEntry entry, ZipFile sourceJar, boolean manifest) throws IOException {
-		if (!manifest && entry.getName().equalsIgnoreCase("META-INF/MANIFEST.MF"))
-			return;
-		// add the entry
-		result.putNextEntry(entry);
-		try {
-			// if there is a sourceJar copy over the content for the entry into the result
-			if (sourceJar != null) {
-				InputStream contents = sourceJar.getInputStream(entry);
-				try {
-					transferStreams(contents, result);
-				} finally {
-					contents.close();
-				}
-			}
-		} finally {
-			result.closeEntry();
-		}
-	}
-
-	/**
-	 * Transfers all available bytes from the given input stream to the given
-	 * output stream. Does not close either stream.
-	 * 
-	 * @param source
-	 * @param destination
-	 * @throws IOException
-	 */
-	public static void transferStreams(InputStream source, OutputStream destination) throws IOException {
-		source = new BufferedInputStream(source);
-		destination = new BufferedOutputStream(destination);
-		try {
-			byte[] buffer = new byte[8192];
-			while (true) {
-				int bytesRead = -1;
-				if ((bytesRead = source.read(buffer)) == -1)
-					break;
-				destination.write(buffer, 0, bytesRead);
-			}
-		} finally {
-			destination.flush();
-		}
-	}
-
-	private void computeDelta() throws IOException {
-		changes = new ArrayList();
-		additions = new ArrayList();
-		// start out assuming that all the base entries are being removed
-		baseEntries = getEntries(baseJar);
-		for (Enumeration e = targetJar.entries(); e.hasMoreElements();)
-			check((ZipEntry) e.nextElement(), targetJar);
-	}
-
-	private boolean openJars() {
-		try {
-			baseJar = new ZipFile(base);
-			targetJar = new ZipFile(target);
-		} catch (IOException e) {
-			return false;
-		}
-		return true;
-	}
-
-	private void closeJars() {
-		if (baseJar != null)
-			try {
-				baseJar.close();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		if (targetJar != null)
-			try {
-				targetJar.close();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-	}
-
-	/** 
-	 * Compare the given entry against the base JAR to see if/how it differs.  Update the appropriate set
-	 * based on the discovered difference.
-	 * @param entry the entry to test
-	 * @throws IOException 
-	 */
-	private void check(ZipEntry entry, ZipFile file) throws IOException {
-		ZipEntry baseEntry = baseJar.getEntry(entry.getName());
-
-		// remember the manifest if we see it
-		checkForManifest(entry, file);
-		// if there is no entry then this is an addition.  remember the addition and return;
-		if (baseEntry == null) {
-			additions.add(entry);
-			return;
-		}
-		// now we know each JAR has an entry for the name, compare and see how/if they differ
-		boolean changed = !equals(entry, baseEntry);
-		if (changed)
-			changes.add(entry);
-		baseEntries.remove(baseEntry.getName());
-	}
-
-	// compare the two entries.  We already know that they have the same name.
-	private boolean equals(ZipEntry entry, ZipEntry baseEntry) {
-		if (entry.getSize() != baseEntry.getSize())
-			return false;
-		// make sure the entries are of the same type
-		if (entry.isDirectory() != baseEntry.isDirectory())
-			return false;
-		// if the entries are files then compare the times.
-		if (!entry.isDirectory())
-			if (entry.getTime() != baseEntry.getTime())
-				return false;
-		return true;
-	}
-
-	private Set getEntries(ZipFile jar) {
-		HashSet result = new HashSet(jar.size());
-		for (Enumeration e = jar.entries(); e.hasMoreElements();) {
-			ZipEntry entry = (ZipEntry) e.nextElement();
-			checkForManifest(entry, jar);
-			result.add(entry.getName());
-		}
-		return result;
-	}
-
-	/**
-	 * Check to see if the given entry is the manifest.  If so, remember it for use when writing
-	 * the resultant JAR.
-	 * @param entry
-	 * @param jar
-	 */
-	private void checkForManifest(ZipEntry entry, ZipFile jar) {
-		if (entry.getName().equalsIgnoreCase("META-INF/MANIFEST.MF"))
-			manifestJar = jar;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/JarDeltaOptimizerStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/JarDeltaOptimizerStep.java
deleted file mode 100644
index 057b5ee..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/JarDeltaOptimizerStep.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
-*******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;
-
-import java.io.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractDeltaStep;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-
-/**
- * The JAR delta expects an input containing normal ".jar" data.   
- */
-public class JarDeltaOptimizerStep extends AbstractDeltaStep {
-
-	private File incoming;
-
-	protected JarDeltaOptimizerStep(IArtifactRepository repository) {
-		super(repository);
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX);
-		return new BufferedOutputStream(new FileOutputStream(incoming));
-	}
-
-	protected void cleanupTempFiles() {
-		super.cleanupTempFiles();
-		if (incoming != null)
-			incoming.delete();
-	}
-
-	protected void performProcessing() throws IOException {
-		File resultFile = null;
-		try {
-			resultFile = optimize();
-			// now write the optimized content to the destination
-			if (resultFile.length() > 0) {
-				InputStream resultStream = new BufferedInputStream(new FileInputStream(resultFile));
-				FileUtils.copyStream(resultStream, true, getDestination(), false);
-			} else {
-				setStatus(new Status(IStatus.ERROR, Activator.ID, "Empty optimized file: " + resultFile)); //$NON-NLS-1$
-			}
-		} finally {
-			if (resultFile != null)
-				resultFile.delete();
-		}
-	}
-
-	protected File optimize() throws IOException {
-		File predecessor = null;
-		try {
-			File resultFile = File.createTempFile(RESULT_ROOT, JAR_SUFFIX);
-			// get the predecessor and perform the optimization into a temp file
-			predecessor = fetchPredecessor(new ArtifactDescriptor(key));
-			new DeltaComputer(predecessor, incoming, resultFile).run();
-			return resultFile;
-		} finally {
-			// if we have a predecessor and it is our temp file then clean up the file
-			if (predecessor != null && predecessor.getAbsolutePath().indexOf(PREDECESSOR_ROOT) > -1)
-				predecessor.delete();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java
deleted file mode 100644
index d7b6dd4..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Optimizer.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - adaptation to JAR deltas and on-going development
-*******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.osgi.framework.Version;
-
-public class Optimizer {
-
-	private IArtifactRepository repository;
-	private int width;
-	private int depth;
-
-	private static final String JAR_DELTA_FORMAT = "jarDelta"; //$NON-NLS-1$
-	private static final String JAR_DELTA_PATCH_STEP = "org.eclipse.equinox.p2.processing.JarDeltaPatchStep"; //$NON-NLS-1$
-
-	private static final Comparator ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR = new ArtifactDescriptorVersionComparator();
-	private static final Comparator ARTIFACT_KEY_VERSION_COMPARATOR = new ArtifactKeyVersionComparator();
-
-	/**
-	 * This optimizer performs delta generation based on (currently) jbdiff. 
-	 * The optimization can be controlled with the ´width´ and the ´depth´ parameter.
-	 * ´width´ defines for how many ´related´ artifact keys a delta should be generated,
-	 * starting from the most up-to-date.
-	 * ´depth´ defines to how many predecessor a delta should be generated.
-	 * 
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the ´repository content´ can be viewed a two dimensional array, where the
-	 * artifact keys for the same component are in order of their version: 
-	 * <pre><code>
-	 *     w=1       w=2
-	 *      |        |
-	 *      | +------.------------+ d=2
-	 *      | | +----.---+ d=1    |
-	 *      | | |    |   |        v
-	 * [    v | |    v   v        v
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * E.g: with a ´width´ of one and a ´depth´ of two the optimizer would
-	 * create two deltas for component ´x´ from 1.5 to 2.0 and from 1.1 to 2.0.    
-	 * 
-	 * @param repository
-	 * @param width
-	 * @param depth
-	 */
-	public Optimizer(IArtifactRepository repository, int width, int depth) {
-		this.repository = repository;
-		this.width = width;
-		this.depth = depth;
-	}
-
-	public void run() {
-		System.out.println("Starting delta (jardelta) optimizations (width=" + width + ", depth=" + depth + ")");
-		IArtifactKey[][] keys = getSortedRelatedArtifactKeys(repository.getArtifactKeys());
-		for (int i = 0; i < keys.length; i++) {
-			if (keys[i].length < 2)
-				// Nothing to diff here!
-				continue;
-			int minWidth = Math.min(width, keys[i].length);
-			for (int j = 0; j < minWidth; j++) {
-				IArtifactKey key = keys[i][j];
-				boolean isArchive = key.getClassifier().equals("plugin"); //$NON-NLS-1$
-				optimize(keys[i], key);
-			}
-		}
-		System.out.println("Done.");
-
-	}
-
-	private void optimize(IArtifactKey[] keys, IArtifactKey key) {
-		IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(key);
-		IArtifactDescriptor canonical = null;
-		for (int k = 0; k < descriptors.length; k++) {
-			IArtifactDescriptor descriptor = descriptors[k];
-			boolean optimized = false;
-			if (isCanonical(descriptor))
-				canonical = descriptor;
-			else
-				optimized |= isOptimized(descriptor);
-			if (!optimized)
-				optimize(canonical, keys);
-		}
-	}
-
-	private IArtifactKey getVersionlessKey(IArtifactKey key) {
-		return new ArtifactKey(key.getClassifier(), key.getId(), Version.emptyVersion);
-	}
-
-	/**
-	 * This method retrieves a list of list of IArtifactKeys. The artifact keys in the
-	 * list of artifact keys are all ´strongly related´ to each other such that are  
-	 * equal but not considering the versions. This list is sorted such that the 
-	 * newer versions are first in the list.<p>
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the result is than, e.g.
-	 * <pre><code>
-	 * [
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * @param artifactKeys
-	 * @return the sorted artifact keys
-	 */
-	private IArtifactKey[][] getSortedRelatedArtifactKeys(IArtifactKey[] artifactKeys) {
-		Map map = new HashMap();
-		for (int i = 0; i < artifactKeys.length; i++) {
-			IArtifactKey freeKey = getVersionlessKey(artifactKeys[i]);
-			List values = (List) map.get(freeKey);
-			if (values == null) {
-				values = new ArrayList();
-				map.put(freeKey, values);
-			}
-			values.add(artifactKeys[i]);
-		}
-		IArtifactKey[][] lists = new IArtifactKey[map.size()][];
-		int i = 0;
-		for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
-			List artifactKeyList = (List) iterator.next();
-			IArtifactKey[] relatedArtifactKeys = (IArtifactKey[]) artifactKeyList.toArray(new IArtifactKey[artifactKeyList.size()]);
-			Arrays.sort(relatedArtifactKeys, ARTIFACT_KEY_VERSION_COMPARATOR);
-			lists[i++] = relatedArtifactKeys;
-		}
-		int candidates = 0;
-		for (int ii = 0; ii < lists.length; ii++) {
-			for (int jj = 0; jj < lists[ii].length; jj++) {
-				System.out.println(lists[ii][jj] + ", ");
-			}
-			System.out.println("");
-			if (lists[ii].length > 1)
-				candidates++;
-		}
-		System.out.println("Candidates found: " + candidates);
-		return lists;
-	}
-
-	private void optimize(IArtifactDescriptor canonical, IArtifactKey[] relatedArtifactKeys) {
-		System.out.println("Optimizing " + canonical);
-
-		IArtifactDescriptor[] descriptors = getSortedCompletePredecessors(canonical.getArtifactKey(), relatedArtifactKeys);
-
-		int minDepth = Math.min(depth, descriptors.length);
-		for (int i = 0; i < minDepth; i++) {
-			System.out.println("\t with jar delta against " + descriptors[i].getArtifactKey());
-			String predecessorData = descriptors[i].getArtifactKey().toExternalForm();
-			ArtifactDescriptor newDescriptor = new ArtifactDescriptor(canonical);
-			ProcessingStepDescriptor patchStep = new ProcessingStepDescriptor(JAR_DELTA_PATCH_STEP, predecessorData, true);
-			ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {patchStep};
-			newDescriptor.setProcessingSteps(steps);
-			newDescriptor.setProperty(IArtifactDescriptor.FORMAT, JAR_DELTA_FORMAT);
-			OutputStream repositoryStream = null;
-			try {
-				repositoryStream = repository.getOutputStream(newDescriptor);
-
-				// Add in all the processing steps needed to optimize (e.g., pack200, ...)
-				ProcessingStep optimizerStep = new JarDeltaOptimizerStep(repository);
-				optimizerStep.initialize(patchStep, newDescriptor);
-				ProcessingStepHandler handler = new ProcessingStepHandler();
-				OutputStream destination = handler.link(new ProcessingStep[] {optimizerStep}, repositoryStream, null);
-
-				// Do the actual work by asking the repo to get the artifact and put it in the destination.
-				IStatus status = repository.getArtifact(canonical, destination, new NullProgressMonitor());
-				if (!status.isOK()) {
-					System.out.println("Getting the artifact is not ok."); //$NON-NLS-1$
-					System.out.println(status);
-				}
-			} catch (ProvisionException e) {
-				System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-				System.out.println(e.getMessage());
-				e.printStackTrace();
-			} finally {
-				if (repositoryStream != null)
-					try {
-						repositoryStream.close();
-						IStatus status = ProcessingStepHandler.checkStatus(repositoryStream);
-						if (!status.isOK()) {
-							System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-							System.out.println(status.toString());
-						}
-					} catch (IOException e) {
-						System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-						System.out.println(e.getMessage());
-						e.printStackTrace();
-					}
-			}
-		}
-	}
-
-	private IArtifactDescriptor[] getSortedCompletePredecessors(IArtifactKey artifactKey, IArtifactKey[] relatedArtifactKeys) {
-		// get all artifact keys
-		List completeDescriptors = new ArrayList(relatedArtifactKeys.length);
-		for (int i = 0; i < relatedArtifactKeys.length; i++) {
-			// if we find ´our self´ skip
-			if (relatedArtifactKeys[i].equals(artifactKey))
-				continue;
-			// look for a complete artifact descriptor of the current key  
-			IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(relatedArtifactKeys[i]);
-			for (int j = 0; j < descriptors.length; j++) {
-				if (isCanonical(descriptors[j])) {
-					completeDescriptors.add(descriptors[j]);
-					break;
-				}
-			}
-		}
-
-		IArtifactDescriptor[] completeSortedDescriptors = (IArtifactDescriptor[]) completeDescriptors.toArray(new IArtifactDescriptor[completeDescriptors.size()]);
-		// Sort, so to allow a depth lookup!
-		Arrays.sort(completeSortedDescriptors, ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR);
-		return completeSortedDescriptors;
-	}
-
-	private boolean isOptimized(IArtifactDescriptor descriptor) {
-		if (descriptor.getProcessingSteps().length != 1)
-			return false;
-		return JAR_DELTA_FORMAT.equals(descriptor.getProperty(IArtifactDescriptor.FORMAT));
-	}
-
-	private boolean isCanonical(IArtifactDescriptor descriptor) {
-		// TODO length != 0 is not necessarily an indicator for not being canonical!   
-		return descriptor.getProcessingSteps().length == 0;
-	}
-
-	static final class ArtifactDescriptorVersionComparator implements Comparator {
-		public int compare(Object artifactDescriptor0, Object artifactDescriptor1) {
-			return -1 * ((IArtifactDescriptor) artifactDescriptor0).getArtifactKey().getVersion().compareTo(((IArtifactDescriptor) artifactDescriptor1).getArtifactKey().getVersion());
-		}
-	}
-
-	static final class ArtifactKeyVersionComparator implements Comparator {
-		public int compare(Object artifactKey0, Object artifactKey1) {
-			return -1 * ((IArtifactKey) artifactKey0).getVersion().compareTo(((IArtifactKey) artifactKey1).getVersion());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java
deleted file mode 100644
index bd2b08c..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * The optimizer <code>Application</code> for JBDiff based optimizations. 
- */
-public class Application implements IApplication {
-
-	private URL artifactRepositoryLocation;
-	private int width = 1;
-	private int depth = 1;
-	private boolean nosar;
-
-	public Object start(IApplicationContext context) throws Exception {
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args")); //$NON-NLS-1$
-		IArtifactRepository repository = setupRepository(artifactRepositoryLocation);
-		new Optimizer(repository, width, depth, nosar).run();
-		return null;
-	}
-
-	private IArtifactRepository setupRepository(URL location) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		return manager.loadRepository(location, null);
-	}
-
-	public void stop() {
-		// nothing to do yet
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-			//			if (args[i].equals("-pack"))
-			//				pack = true;
-
-			if (args[i].equals("-nosar")) //$NON-NLS-1$
-				nosar = true;
-
-			// 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 param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase("-artifactRepository") || args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$
-				artifactRepositoryLocation = new URL(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-depth")) //$NON-NLS-1$
-				depth = Integer.parseInt(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-width")) //$NON-NLS-1$
-				width = Integer.parseInt(arg);
-
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffStep.java
deleted file mode 100644
index abe9778..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffStep.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import ie.wombat.jbdiff.JBDiff;
-import java.io.*;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractDeltaStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-
-/**
- *
- */
-public class JBDiffStep extends AbstractDeltaStep {
-
-	public JBDiffStep() {
-		super();
-	}
-
-	// TODO We need a different way of injecting the base artifacts.  This approach forces
-	// the target and base to live in the same repo.  Typical but not really required.
-	protected JBDiffStep(IArtifactRepository repository) {
-		super(repository);
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		return new DirectByteArrayOutputStream();
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		DirectByteArrayOutputStream current = (DirectByteArrayOutputStream) incomingStream;
-		byte[] diff = JBDiff.bsdiff(predecessor.getBuffer(), predecessor.getBufferLength(), current.getBuffer(), current.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		current = null;
-		incomingStream = null;
-
-		// copy the result of the optimization to the destination.
-		FileUtils.copyStream(new ByteArrayInputStream(diff), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		setStatus(repository.getArtifact(artifactDescriptor, result, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java
deleted file mode 100644
index 8030ae1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/JBDiffZipStep.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import ie.wombat.jbdiff.JBDiff;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.p2.sar.SarUtil;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-
-public class JBDiffZipStep extends JBDiffStep {
-
-	public JBDiffZipStep() {
-		super();
-	}
-
-	// TODO We need a different way of injecting the base artifacts.  This approach forces
-	// the target and base to live in the same repo.  Typical but not really required.
-	protected JBDiffZipStep(IArtifactRepository repository) {
-		super(repository);
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream sarredCurrent = new DirectByteArrayOutputStream();
-		SarUtil.zipToSar(((DirectByteArrayOutputStream) incomingStream).getInputStream(), sarredCurrent);
-		incomingStream = null;
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		byte[] diff = JBDiff.bsdiff(predecessor.getBuffer(), predecessor.getBufferLength(), sarredCurrent.getBuffer(), sarredCurrent.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		incomingStream = null;
-		sarredCurrent = null;
-
-		// copy the result of the optimization to the destination.
-		FileUtils.copyStream(new ByteArrayInputStream(diff), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream zippedPredecessor = new DirectByteArrayOutputStream();
-
-		setStatus(repository.getArtifact(artifactDescriptor, zippedPredecessor, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		SarUtil.zipToSar(zippedPredecessor.getInputStream(), result);
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
deleted file mode 100644
index 6592b57..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Optimizer.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.VersionlessArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-public class Optimizer {
-
-	private IArtifactRepository repository;
-	private int width;
-	private int depth;
-	private boolean nosar;
-
-	private static final String JBPATCH_STEP_ID = "org.eclipse.equinox.p2.repository.JBPatchStep"; //$NON-NLS-1$
-	private static final String JBPATCH_STEP_ZIP_ID = "org.eclipse.equinox.p2.repository.JBPatchZipStep"; //$NON-NLS-1$
-
-	private static final Comparator ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR = new ArtifactDescriptorVersionComparator();
-	private static final Comparator ARTIFACT_KEY_VERSION_COMPARATOR = new ArtifactKeyVersionComparator();
-
-	/**
-	 * This optimizer performs delta generation based on (currently) jbdiff. 
-	 * The optimization can be controlled with the ´width´ and the ´depth´ parameter.
-	 * ´width´ defines for how many ´related´ artifact keys a delta should be generated,
-	 * starting from the most up-to-date.
-	 * ´depth´ defines to how many predecessor a delta should be generated.
-	 * 
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the ´repository content´ can be viewed a two dimensional array, where the
-	 * artifact keys for the same component are in order of their version: 
-	 * <pre><code>
-	 *     w=1       w=2
-	 *      |        |
-	 *      | +------.------------+ d=2
-	 *      | | +----.---+ d=1    |
-	 *      | | |    |   |        v
-	 * [    v | |    v   v        v
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * E.g: with a ´width´ of one and a ´depth´ of two the optimizer would
-	 * create two deltas for component ´x´ from 1.5 to 2.0 and from 1.1 to 2.0.    
-	 * 
-	 * @param repository
-	 * @param width
-	 * @param depth
-	 * @param nosar 
-	 */
-	public Optimizer(IArtifactRepository repository, int width, int depth, boolean nosar) {
-		this.repository = repository;
-		this.width = width;
-		this.depth = depth;
-		this.nosar = nosar;
-	}
-
-	public void run() {
-		System.out.println("Starting delta (jbdiff) optimizations (width=" + width + ", depth=" + depth + ", nosar=" + nosar + ")");
-		IArtifactKey[][] keys = getSortedRelatedArtifactKeys(repository.getArtifactKeys());
-		for (int i = 0; i < keys.length; i++) {
-			if (keys[i].length < 2)
-				// Nothing to diff here!
-				continue;
-			int minWidth = Math.min(width, keys[i].length);
-			for (int j = 0; j < minWidth; j++) {
-				IArtifactKey key = keys[i][j];
-				boolean isArchive = key.getClassifier().equals("plugin"); //$NON-NLS-1$
-				String proposedStrategy = isArchive && !nosar ? JBPATCH_STEP_ZIP_ID : JBPATCH_STEP_ID;
-				optimize(keys[i], key, proposedStrategy);
-			}
-		}
-		System.out.println("Done.");
-
-	}
-
-	private void optimize(IArtifactKey[] keys, IArtifactKey key, String proposedStrategy) throws OutOfMemoryError {
-		boolean retry;
-		do {
-			retry = false;
-			try {
-				IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(key);
-				IArtifactDescriptor complete = null;
-				for (int k = 0; k < descriptors.length; k++) {
-					IArtifactDescriptor descriptor = descriptors[k];
-					if (isCanonical(descriptor))
-						complete = descriptor;
-					else if (isOptimized(descriptor, proposedStrategy)) {
-						proposedStrategy = null;
-						break;
-					}
-				}
-				if (proposedStrategy != null && complete != null)
-					optimize(complete, proposedStrategy, keys);
-			} catch (OutOfMemoryError e) {
-				if (JBPATCH_STEP_ID.equals(proposedStrategy))
-					throw e;
-				proposedStrategy = JBPATCH_STEP_ID;
-				System.out.println("Retry with " + proposedStrategy);
-				retry = true;
-			}
-		} while (retry);
-	}
-
-	/**
-	 * This method retrieves a list of list of IArtifactKeys. The artifact keys in the
-	 * list of artifact keys are all ´strongly related´ to each other such that are  
-	 * equal but not considering the versions. This list is sorted such that the 
-	 * newer versions are first in the list.<p>
-	 * With AK(c-v) : AK - artifact key, c - artifact id, v - artifact version
-	 * the result is than, e.g.
-	 * <pre><code>
-	 * [
-	 * [ AK(x,2.0) AK(x,1.5) AK(x,1.1) ]
-	 * [ AK(y,2.0) AK(y,1.9) ]
-	 * [ AK(z,2.0) AK(z,1.5) AK(z,1.3) AK(z,1.0) ]
-	 * ]
-	 * </code></pre>  
-	 * @param artifactKeys
-	 * @return the sorted artifact keys
-	 */
-	private IArtifactKey[][] getSortedRelatedArtifactKeys(IArtifactKey[] artifactKeys) {
-		Map map = new HashMap();
-		for (int i = 0; i < artifactKeys.length; i++) {
-			IArtifactKey freeKey = new VersionlessArtifactKey(artifactKeys[i]);
-			List values = (List) map.get(freeKey);
-			if (values == null) {
-				values = new ArrayList();
-				map.put(freeKey, values);
-			}
-			values.add(artifactKeys[i]);
-		}
-		IArtifactKey[][] lists = new IArtifactKey[map.size()][];
-		int i = 0;
-		for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
-			List artifactKeyList = (List) iterator.next();
-			IArtifactKey[] relatedArtifactKeys = (IArtifactKey[]) artifactKeyList.toArray(new IArtifactKey[artifactKeyList.size()]);
-			Arrays.sort(relatedArtifactKeys, ARTIFACT_KEY_VERSION_COMPARATOR);
-			lists[i++] = relatedArtifactKeys;
-		}
-		int candidates = 0;
-		for (int ii = 0; ii < lists.length; ii++) {
-			for (int jj = 0; jj < lists[ii].length; jj++) {
-				System.out.println(lists[ii][jj] + ", ");
-			}
-			System.out.println("");
-			if (lists[ii].length > 1)
-				candidates++;
-		}
-		System.out.println("Candidates found: " + candidates);
-		return lists;
-	}
-
-	private void optimize(IArtifactDescriptor complete, String strategy, IArtifactKey[] relatedArtifactKeys) {
-		System.out.println("Optimizing " + complete);
-
-		IArtifactDescriptor[] descriptors = getSortedCompletePredecessors(complete.getArtifactKey(), relatedArtifactKeys);
-
-		int minDepth = Math.min(depth, descriptors.length);
-		for (int i = 0; i < minDepth; i++) {
-
-			System.out.println("\t with " + strategy + " against " + descriptors[i].getArtifactKey());
-			String predecessorData = descriptors[i].getArtifactKey().toExternalForm();
-			ArtifactDescriptor newDescriptor = new ArtifactDescriptor(complete);
-			ProcessingStepDescriptor patchStep = new ProcessingStepDescriptor(strategy, predecessorData, true);
-			ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {patchStep};
-			newDescriptor.setProcessingSteps(steps);
-			newDescriptor.setProperty(IArtifactDescriptor.FORMAT, strategy);
-			OutputStream repositoryStream = null;
-			try {
-				repositoryStream = repository.getOutputStream(newDescriptor);
-
-				// Add in all the processing steps needed to optimize (e.g., pack200, ...)
-				ProcessingStep diffStep = getProcessingStep(strategy);
-				diffStep.initialize(patchStep, newDescriptor);
-				ProcessingStepHandler handler = new ProcessingStepHandler();
-				OutputStream destination = handler.link(new ProcessingStep[] {diffStep}, repositoryStream, null);
-
-				// Do the actual work by asking the repo to get the artifact and put it in the destination.
-				IStatus status = repository.getArtifact(complete, destination, new NullProgressMonitor());
-				if (!status.isOK()) {
-					System.out.println("Getting the artifact is not ok."); //$NON-NLS-1$
-					System.out.println(status);
-				}
-			} catch (ProvisionException e) {
-				System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-				System.out.println(e.getMessage());
-				e.printStackTrace();
-			} finally {
-				if (repositoryStream != null)
-					try {
-						repositoryStream.close();
-						IStatus status = ProcessingStepHandler.checkStatus(repositoryStream);
-						if (!status.isOK()) {
-							System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-							System.out.println(status.toString());
-						}
-					} catch (IOException e) {
-						System.out.println("Skipping optimization of: " + descriptors[i].getArtifactKey()); //$NON-NLS-1$
-						System.out.println(e.getMessage());
-						e.printStackTrace();
-					}
-			}
-		}
-	}
-
-	private ProcessingStep getProcessingStep(String strategy) {
-		if (strategy.equals(JBPATCH_STEP_ID))
-			return new JBDiffStep(repository);
-		return new JBDiffZipStep(repository);
-	}
-
-	private IArtifactDescriptor[] getSortedCompletePredecessors(IArtifactKey artifactKey, IArtifactKey[] relatedArtifactKeys) {
-		// get all artifact keys
-		List completeDescriptors = new ArrayList(relatedArtifactKeys.length);
-		for (int i = 0; i < relatedArtifactKeys.length; i++) {
-			// if we find ´our self´ skip
-			if (relatedArtifactKeys[i].equals(artifactKey))
-				continue;
-			// look for a complete artifact descriptor of the current key  
-			IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(relatedArtifactKeys[i]);
-			for (int j = 0; j < descriptors.length; j++) {
-				if (isCanonical(descriptors[j])) {
-					completeDescriptors.add(descriptors[j]);
-					break;
-				}
-			}
-		}
-
-		IArtifactDescriptor[] completeSortedDescriptors = (IArtifactDescriptor[]) completeDescriptors.toArray(new IArtifactDescriptor[completeDescriptors.size()]);
-		// Sort, so to allow a depth lookup!
-		Arrays.sort(completeSortedDescriptors, ARTIFACT_DESCRIPTOR_VERSION_COMPARATOR);
-		return completeSortedDescriptors;
-	}
-
-	private boolean isOptimized(IArtifactDescriptor descriptor, String stepId) {
-		if (descriptor.getProcessingSteps().length != 1)
-			return false;
-		return stepId.equals(descriptor.getProcessingSteps()[0].getProcessorId());
-	}
-
-	private boolean isCanonical(IArtifactDescriptor descriptor) {
-		// TODO length != 0 is not necessarily an indicator for not being complete!   
-		return descriptor.getProcessingSteps().length == 0;
-	}
-
-	static final class ArtifactDescriptorVersionComparator implements Comparator {
-		public int compare(Object artifactDescriptor0, Object artifactDescriptor1) {
-			return -1 * ((IArtifactDescriptor) artifactDescriptor0).getArtifactKey().getVersion().compareTo(((IArtifactDescriptor) artifactDescriptor1).getArtifactKey().getVersion());
-		}
-	}
-
-	static final class ArtifactKeyVersionComparator implements Comparator {
-		public int compare(Object artifactKey0, Object artifactKey1) {
-			return -1 * ((IArtifactKey) artifactKey0).getVersion().compareTo(((IArtifactKey) artifactKey1).getVersion());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java
deleted file mode 100644
index 93e9ab2..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;
-
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-public class Application implements IApplication {
-	//Application return code
-	private static final Integer NON_WRITTABLE_REPOSITORY = new Integer(-1);
-
-	//Application arguments
-	private static final String ARTIFACT_REPOSITORY_ARG = "-artifactRepository"; //$NON-NLS-1$
-	private static final String ARTIFACT_REPOSITORY_SHORT_ARG = "-ar"; //$NON-NLS-1$
-
-	private URL artifactRepositoryLocation;
-
-	public Object start(IApplicationContext context) throws Exception {
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args")); //$NON-NLS-1$
-		IArtifactRepository repository = setupRepository(artifactRepositoryLocation);
-		if (!repository.isModifiable())
-			return NON_WRITTABLE_REPOSITORY;
-		new Optimizer(repository).run();
-		return null;
-	}
-
-	private IArtifactRepository setupRepository(URL location) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		return manager.loadRepository(location, null);
-	}
-
-	public void stop() {
-		//nothing to do
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// 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 param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase(ARTIFACT_REPOSITORY_ARG) || args[i - 1].equalsIgnoreCase(ARTIFACT_REPOSITORY_SHORT_ARG))
-				artifactRepositoryLocation = new URL(arg);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java
deleted file mode 100644
index 85dc7fa..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Messages.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.artifact.optimizers.pack200.messages"; //$NON-NLS-1$
-	public static String failed_getting_artifact;
-	public static String skip_optimization;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java
deleted file mode 100644
index e2fa5ac..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Optimizer.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.osgi.util.NLS;
-
-public class Optimizer {
-	private static final String PACKED_FORMAT = "packed"; //$NON-NLS-1$
-	private IArtifactRepository repository;
-
-	public Optimizer(IArtifactRepository repository) {
-		this.repository = repository;
-	}
-
-	public void run() {
-		IArtifactKey[] keys = repository.getArtifactKeys();
-		for (int i = 0; i < keys.length; i++) {
-			IArtifactKey key = keys[i];
-			if (!key.getClassifier().equals("plugin")) //$NON-NLS-1$
-				continue;
-			IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(key);
-			IArtifactDescriptor canonical = null;
-			boolean optimized = false;
-			for (int j = 0; j < descriptors.length; j++) {
-				IArtifactDescriptor descriptor = descriptors[j];
-				if (isCanonical(descriptor))
-					canonical = descriptor;
-				optimized |= isOptimized(descriptor);
-			}
-			if (!optimized)
-				optimize(canonical);
-		}
-	}
-
-	private boolean isCanonical(IArtifactDescriptor descriptor) {
-		// TODO length != 0 is not necessarily an indicator for not being complete!
-		String format = descriptor.getProperty(IArtifactDescriptor.FORMAT);
-		if (format == null)
-			return true;
-		return false;
-	}
-
-	private void optimize(IArtifactDescriptor descriptor) {
-		ArtifactDescriptor newDescriptor = new ArtifactDescriptor(descriptor);
-		ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Pack200Unpacker", null, true)}; //$NON-NLS-1$
-		newDescriptor.setProcessingSteps(steps);
-		newDescriptor.setProperty(IArtifactDescriptor.FORMAT, PACKED_FORMAT);
-		OutputStream repositoryStream = null;
-		try {
-			repositoryStream = repository.getOutputStream(newDescriptor);
-
-			// Add in all the processing steps needed to optimize (e.g., pack200, ...)
-			ProcessingStepHandler handler = new ProcessingStepHandler();
-			OutputStream destination = handler.link(new ProcessingStep[] {new Pack200OptimizerStep()}, repositoryStream, null);
-
-			// Do the actual work by asking the repo to get the artifact and put it in the destination.
-			IStatus status = repository.getArtifact(descriptor, destination, new NullProgressMonitor());
-			if (!status.isOK()) {
-				System.out.println(NLS.bind(Messages.failed_getting_artifact, descriptor.getArtifactKey()));
-				System.out.println(status);
-			}
-		} catch (ProvisionException e) {
-			System.out.println(NLS.bind(Messages.skip_optimization, descriptor.getArtifactKey()));
-			System.out.println(e.getMessage());
-			e.printStackTrace();
-		} finally {
-			if (repositoryStream != null)
-				try {
-					repositoryStream.close();
-					IStatus status = ProcessingStepHandler.checkStatus(repositoryStream);
-					if (!status.isOK()) {
-						System.out.println(NLS.bind(Messages.skip_optimization, descriptor.getArtifactKey()));
-						System.out.println(status.toString());
-					}
-				} catch (IOException e) {
-					System.out.println(NLS.bind(Messages.skip_optimization, descriptor.getArtifactKey()));
-					System.out.println(e.getMessage());
-					e.printStackTrace();
-				}
-		}
-	}
-
-	private boolean isOptimized(IArtifactDescriptor descriptor) {
-		return PACKED_FORMAT.equals(descriptor.getProperty(IArtifactDescriptor.FORMAT));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java
deleted file mode 100644
index 95a9c65..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Pack200OptimizerStep.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.optimizers.pack200;
-
-import java.io.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractBufferingStep;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor.Options;
-
-/**
- * The Pack200Packer expects an input containing normal ".jar" data.   
- */
-public class Pack200OptimizerStep extends AbstractBufferingStep {
-	private static final String PACKED_SUFFIX = ".pack.gz"; //$NON-NLS-1$
-	private File incoming;
-
-	protected OutputStream createIncomingStream() throws IOException {
-		incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX);
-		return new BufferedOutputStream(new FileOutputStream(incoming));
-	}
-
-	protected void cleanupTempFiles() {
-		super.cleanupTempFiles();
-		if (incoming != null)
-			incoming.delete();
-	}
-
-	protected void performProcessing() throws IOException {
-		File resultFile = null;
-		try {
-			resultFile = process();
-			// now write the optimized content to the destination
-			if (resultFile.length() > 0) {
-				InputStream resultStream = new BufferedInputStream(new FileInputStream(resultFile));
-				FileUtils.copyStream(resultStream, true, getDestination(), false);
-			} else {
-				setStatus(new Status(IStatus.ERROR, Activator.ID, "Empty intermediate file: " + resultFile)); //$NON-NLS-1$
-			}
-		} finally {
-			if (resultFile != null)
-				resultFile.delete();
-		}
-	}
-
-	protected File process() throws IOException {
-		// unpack
-		Options options = new Options();
-		options.pack = true;
-		// TODO use false here assuming that all content is conditioned.  Need to revise this
-		options.processAll = false;
-		options.input = incoming;
-		options.outputDir = getWorkDir().getPath();
-		options.verbose = true;
-		new JarProcessorExecutor().runJarProcessor(options);
-		return new File(getWorkDir(), incoming.getName() + PACKED_SUFFIX);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties b/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties
deleted file mode 100644
index c997c84..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/messages.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-failed_getting_artifact=Failed getting the artifact {0}.
-skip_optimization=Skipping optimization of {0}. 
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.classpath b/bundles/org.eclipse.equinox.p2.artifact.processors/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.project b/bundles/org.eclipse.equinox.p2.artifact.processors/.project
deleted file mode 100644
index f440337..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.artifact.processors</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index c973c13..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Nov 14 12:49:38 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b503d85..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue Nov 06 20:46:54 EST 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 57ebea5..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Mon Nov 05 21:23:42 EST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
deleted file mode 100644
index ba8d87f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,31 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.equinox.p2.artifact.processors;singleton:=true
-Bundle-Version: 0.1.0.qualifier
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.equinox.registry,
- org.eclipse.osgi
-Import-Package: ie.wombat.jbdiff,
- org.eclipse.equinox.internal.p2.artifact.optimizers,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.jarprocessor,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.p2.sar,
- org.eclipse.internal.provisional.equinox.p2.jarprocessor
-Bundle-Vendor: %providerName
-Export-Package: org.eclipse.equinox.internal.p2.artifact.processors;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.jardelta;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.jbdiff;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.pack200;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.processors.verifier;x-internal:=true
-Bundle-Activator: org.eclipse.equinox.internal.p2.artifact.processors.Activator
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/about.html b/bundles/org.eclipse.equinox.p2.artifact.processors/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/build.properties b/bundles/org.eclipse.equinox.p2.artifact.processors/build.properties
deleted file mode 100644
index ad40ab4..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties b/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties
deleted file mode 100644
index 4b529ba..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox p2 Artifact Processing Support
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml b/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
deleted file mode 100644
index d80e2d3..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/plugin.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.Pack200Unpacker">
-		<step class="org.eclipse.equinox.internal.p2.artifact.processors.pack200.Pack200ProcessorStep"/>
-	</extension>
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.JarDeltaPatchStep">
-		<step class="org.eclipse.equinox.internal.p2.artifact.processors.jardelta.JarDeltaProcessorStep"/>
-	</extension>
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.JBPatchStep">
-		<step class="org.eclipse.equinox.internal.p2.artifact.processors.jbdiff.JBPatchStep"/>
-	</extension>
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.JBPatchZipStep">
-		<step class="org.eclipse.equinox.internal.p2.artifact.processors.jbdiff.JBPatchZipStep"/>
-	</extension>
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.MD5Verifier">
-		<step class="org.eclipse.equinox.internal.p2.artifact.processors.verifier.MD5Verifier"/>
-	</extension>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/AbstractDeltaProcessorStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/AbstractDeltaProcessorStep.java
deleted file mode 100644
index fb6630c..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/AbstractDeltaProcessorStep.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractDeltaStep;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * The <code>AbstractDeltaPatchStep</code> is an abstract processing step that
- * retrieves a local artifact repository containing the serialized/encoded
- * artifact key. It assumes that the artifact key is stored within the data property
- * of the processing step descriptor encoding the artifact key of the base artifact.
- */
-public abstract class AbstractDeltaProcessorStep extends AbstractDeltaStep {
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		if (!getStatus().isOK())
-			return;
-		fetchLocalArtifactRepository();
-	}
-
-	/**
-	 * Fetch a local artifact repository containing the fetched artifact key.
-	 */
-	private void fetchLocalArtifactRepository() {
-		if (repository != null)
-			return;
-		IArtifactRepositoryManager repoMgr = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (repoMgr == null) {
-			setStatus(new Status(IStatus.ERROR, Activator.ID, "Could not get artifact repository manager."));
-			return;
-		}
-
-		URL[] repositories = repoMgr.getKnownRepositories(IArtifactRepositoryManager.REPOSITORIES_LOCAL);
-		for (int i = 0; i < repositories.length; i++) {
-			try {
-				IArtifactRepository currentRepo = repoMgr.loadRepository(repositories[i], null);
-				if (currentRepo.contains(key)) {
-					repository = currentRepo;
-					return;
-				}
-			} catch (ProvisionException e) {
-				//just skip unreadable repositories
-			}
-		}
-		setStatus(new Status(IStatus.ERROR, Activator.ID, "No repository available containing key " + key));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java
deleted file mode 100644
index f11af99..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/Activator.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.artifact.processors;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	public static final String ID = "org.eclipse.equinox.p2.artifact.processors"; //$NON-NLS-1$
-	private static BundleContext context = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java
deleted file mode 100644
index d5f4d16..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/DeltaApplier.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jardelta;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.*;
-
-public class DeltaApplier {
-	private static final String DELETE_SUFFIX = ".delete"; //$NON-NLS-1$
-	private static final String MANIFEST_ENTRY_NAME = "META-INF/MANIFEST.MF"; //$NON-NLS-1$
-	private File delta;
-	private File base;
-	private File destination;
-	private ZipFile baseJar;
-	private ZipFile deltaJar;
-	private Set baseEntries;
-	private ZipFile manifestJar;
-
-	public DeltaApplier(File base, File delta, File destination) {
-		this.base = base;
-		this.delta = delta;
-		this.destination = destination;
-	}
-
-	public void run() {
-		try {
-			if (!openJars())
-				return;
-			applyDelta();
-			writeResult();
-		} finally {
-			closeJars();
-		}
-	}
-
-	private void applyDelta() {
-		// start out assuming that all the base entries will be moved over.  
-		baseEntries = getEntries(baseJar);
-		// remove from the base all the entries that appear in the delta
-		for (Enumeration e = deltaJar.entries(); e.hasMoreElements();) {
-			ZipEntry entry = ((ZipEntry) e.nextElement());
-			checkForManifest(entry, deltaJar);
-			String name = entry.getName();
-			if (name.endsWith(DELETE_SUFFIX)) {
-				name = name.substring(0, name.length() - DELETE_SUFFIX.length());
-				// if the manifest is being deleted, forget anyone who might have a manifest
-				if (name.equalsIgnoreCase(MANIFEST_ENTRY_NAME))
-					manifestJar = null;
-			}
-			baseEntries.remove(name);
-		}
-	}
-
-	private void writeResult() {
-		ZipOutputStream result = null;
-		try {
-			try {
-				result = new ZipOutputStream(new FileOutputStream(destination));
-				// if the delta includes the manifest, be sure to write it first
-				if (manifestJar != null)
-					writeEntry(result, manifestJar.getEntry(MANIFEST_ENTRY_NAME), manifestJar, true);
-				// write out the things we know are staying from the base JAR
-				for (Iterator i = baseEntries.iterator(); i.hasNext();) {
-					ZipEntry entry = baseJar.getEntry((String) i.next());
-					writeEntry(result, entry, baseJar, false);
-				}
-				// write out the changes/additions from the delta.
-				for (Enumeration e = deltaJar.entries(); e.hasMoreElements();) {
-					ZipEntry entry = (ZipEntry) e.nextElement();
-					if (!entry.getName().endsWith(DELETE_SUFFIX))
-						writeEntry(result, entry, deltaJar, false);
-				}
-			} finally {
-				if (result != null)
-					result.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-			return;
-		}
-	}
-
-	private void writeEntry(ZipOutputStream result, ZipEntry entry, ZipFile sourceJar, boolean manifest) throws IOException {
-		if (!manifest && entry.getName().equalsIgnoreCase(MANIFEST_ENTRY_NAME))
-			return;
-		// add the entry
-		result.putNextEntry(entry);
-		try {
-			// if there is a sourceJar copy over the content for the entry into the result
-			if (sourceJar != null) {
-				InputStream contents = sourceJar.getInputStream(entry);
-				try {
-					transferStreams(contents, result);
-				} finally {
-					contents.close();
-				}
-			}
-		} finally {
-			result.closeEntry();
-		}
-	}
-
-	/**
-	 * Transfers all available bytes from the given input stream to the given
-	 * output stream. Does not close either stream.
-	 * 
-	 * @param source
-	 * @param destination
-	 * @throws IOException
-	 */
-	public static void transferStreams(InputStream source, OutputStream destination) throws IOException {
-		source = new BufferedInputStream(source);
-		destination = new BufferedOutputStream(destination);
-		try {
-			byte[] buffer = new byte[8192];
-			while (true) {
-				int bytesRead = -1;
-				if ((bytesRead = source.read(buffer)) == -1)
-					break;
-				destination.write(buffer, 0, bytesRead);
-			}
-		} finally {
-			destination.flush();
-		}
-	}
-
-	private boolean openJars() {
-		try {
-			baseJar = new ZipFile(base);
-			deltaJar = new ZipFile(delta);
-		} catch (IOException e) {
-			return false;
-		}
-		return true;
-	}
-
-	private void closeJars() {
-		if (baseJar != null)
-			try {
-				baseJar.close();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		if (deltaJar != null)
-			try {
-				deltaJar.close();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-	}
-
-	private Set getEntries(ZipFile jar) {
-		HashSet result = new HashSet(jar.size());
-		for (Enumeration e = jar.entries(); e.hasMoreElements();) {
-			ZipEntry entry = (ZipEntry) e.nextElement();
-			checkForManifest(entry, jar);
-			result.add(entry.getName());
-		}
-		return result;
-	}
-
-	/**
-	 * Check to see if the given entry is the manifest.  If so, remember it for use when writing
-	 * the resultant JAR.
-	 * @param entry
-	 * @param jar
-	 */
-	private void checkForManifest(ZipEntry entry, ZipFile jar) {
-		if (entry.getName().equalsIgnoreCase(MANIFEST_ENTRY_NAME))
-			manifestJar = jar;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java
deleted file mode 100644
index 42dda53..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jardelta/JarDeltaProcessorStep.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jardelta;
-
-import java.io.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.processors.AbstractDeltaProcessorStep;
-import org.eclipse.equinox.internal.p2.artifact.processors.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-
-/**
- * Processor that takes a JAR delta and applies it.
- */
-public class JarDeltaProcessorStep extends AbstractDeltaProcessorStep {
-
-	private File incoming;
-
-	public JarDeltaProcessorStep() {
-		super();
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX);
-		return new BufferedOutputStream(new FileOutputStream(incoming));
-	}
-
-	protected void cleanupTempFiles() {
-		super.cleanupTempFiles();
-		if (incoming != null)
-			incoming.delete();
-	}
-
-	protected void performProcessing() throws IOException {
-		File resultFile = null;
-		try {
-			resultFile = process();
-			// now write the optimized content to the destination
-			if (resultFile.length() > 0) {
-				InputStream resultStream = new BufferedInputStream(new FileInputStream(resultFile));
-				FileUtils.copyStream(resultStream, true, getDestination(), false);
-			} else {
-				setStatus(new Status(IStatus.ERROR, Activator.ID, "Empty optimized file: " + resultFile)); //$NON-NLS-1$
-			}
-		} finally {
-			if (resultFile != null)
-				resultFile.delete();
-		}
-	}
-
-	protected File process() throws IOException {
-		File predecessor = null;
-		try {
-			File resultFile = File.createTempFile(RESULT_ROOT, JAR_SUFFIX);
-			// get the predecessor and perform the optimization into a temp file
-			predecessor = fetchPredecessor(new ArtifactDescriptor(key));
-			new DeltaApplier(predecessor, incoming, resultFile).run();
-			return resultFile;
-		} finally {
-			// if we have a predecessor and it is our temp file then clean up the file
-			if (predecessor != null && predecessor.getAbsolutePath().indexOf(PREDECESSOR_ROOT) > -1)
-				predecessor.delete();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java
deleted file mode 100644
index 64bbe13..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchStep.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jbdiff;
-
-import ie.wombat.jbdiff.JBPatch;
-import java.io.*;
-import org.eclipse.equinox.internal.p2.artifact.processors.AbstractDeltaProcessorStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-
-/**
- * The JBPatchStep patches a JBDiff based data.   
- */
-public class JBPatchStep extends AbstractDeltaProcessorStep {
-
-	public JBPatchStep() {
-		super();
-	}
-
-	protected OutputStream createIncomingStream() throws IOException {
-		return new DirectByteArrayOutputStream();
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		DirectByteArrayOutputStream current = (DirectByteArrayOutputStream) incomingStream;
-		byte[] result = JBPatch.bspatch(predecessor.getBuffer(), predecessor.getBufferLength(), current.getBuffer(), current.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		current = null;
-		incomingStream = null;
-
-		// copy the result of the optimization to the destination.
-		FileUtils.copyStream(new ByteArrayInputStream(result), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		setStatus(repository.getArtifact(artifactDescriptor, result, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java
deleted file mode 100644
index de1f22c..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/jbdiff/JBPatchZipStep.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.jbdiff;
-
-import ie.wombat.jbdiff.JBPatch;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-import org.eclipse.equinox.internal.p2.sar.SarUtil;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-
-/**
- * The <code>JBPatchZipStep</code> patches a JBDiff based diff of zips/jars.   
- */
-public class JBPatchZipStep extends JBPatchStep {
-
-	public JBPatchZipStep() {
-		super();
-	}
-
-	protected void performProcessing() throws IOException {
-		DirectByteArrayOutputStream predecessor = fetchPredecessorBytes(new ArtifactDescriptor(key));
-		DirectByteArrayOutputStream current = (DirectByteArrayOutputStream) incomingStream;
-		byte[] result = JBPatch.bspatch(predecessor.getBuffer(), predecessor.getBufferLength(), current.getBuffer(), current.getBufferLength());
-		// free up the memory as soon as possible.
-		predecessor = null;
-		current = null;
-		incomingStream = null;
-
-		// copy the result of the optimization to the destination.
-		SarUtil.sarToZip(new ByteArrayInputStream(result), true, getDestination(), false);
-	}
-
-	private DirectByteArrayOutputStream fetchPredecessorBytes(ArtifactDescriptor artifactDescriptor) throws IOException {
-		DirectByteArrayOutputStream zippedPredecessor = new DirectByteArrayOutputStream();
-		setStatus(repository.getArtifact(artifactDescriptor, zippedPredecessor, getProgressMonitor()));
-		if (!getStatus().isOK())
-			throw (IOException) new IOException(getStatus().getMessage()).initCause(getStatus().getException());
-
-		DirectByteArrayOutputStream result = new DirectByteArrayOutputStream();
-		SarUtil.zipToSar(zippedPredecessor.getInputStream(), result);
-		return result;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java
deleted file mode 100644
index 78c099c..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/pack200/Pack200ProcessorStep.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.pack200;
-
-import java.io.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.AbstractBufferingStep;
-import org.eclipse.equinox.internal.p2.artifact.processors.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.jarprocessor.UnpackStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor.Options;
-
-/**
- * The Pack200Unpacker expects an input containing ".jar.pack.gz" data.   
- */
-public class Pack200ProcessorStep extends AbstractBufferingStep {
-	public static final String PACKED_SUFFIX = ".pack.gz"; //$NON-NLS-1$
-
-	private File incoming;
-
-	protected OutputStream createIncomingStream() throws IOException {
-		incoming = File.createTempFile(INCOMING_ROOT, JAR_SUFFIX + PACKED_SUFFIX);
-		return new BufferedOutputStream(new FileOutputStream(incoming));
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		if (!UnpackStep.canUnpack())
-			setStatus(new Status(IStatus.ERROR, Activator.ID, "Unpack facility not configured")); //$NON-NLS-1$
-	}
-
-	protected void cleanupTempFiles() {
-		super.cleanupTempFiles();
-		if (incoming != null)
-			incoming.delete();
-	}
-
-	protected void performProcessing() throws IOException {
-		File resultFile = null;
-		try {
-			resultFile = process();
-			// now write the processed content to the destination
-			if (resultFile.length() > 0) {
-				InputStream resultStream = new BufferedInputStream(new FileInputStream(resultFile));
-				FileUtils.copyStream(resultStream, true, getDestination(), false);
-			} else {
-				setStatus(new Status(IStatus.ERROR, Activator.ID, "Empty intermediate file: " + resultFile)); //$NON-NLS-1$
-			}
-		} finally {
-			if (resultFile != null)
-				resultFile.delete();
-		}
-	}
-
-	protected File process() throws IOException {
-		Options options = new Options();
-		options.unpack = true;
-		// TODO use false here assuming that all content is conditioned.  Need to revise this
-		options.processAll = false;
-		options.input = incoming;
-		options.outputDir = getWorkDir().getPath();
-		options.verbose = false;
-		new JarProcessorExecutor().runJarProcessor(options);
-		return new File(getWorkDir(), incoming.getName().substring(0, incoming.getName().length() - PACKED_SUFFIX.length()));
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/verifier/MD5Verifier.java b/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/verifier/MD5Verifier.java
deleted file mode 100644
index 11161de..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.processors/src/org/eclipse/equinox/internal/p2/artifact/processors/verifier/MD5Verifier.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.processors.verifier;
-
-import java.io.IOException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.processors.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-
-public class MD5Verifier extends ProcessingStep {
-
-	protected String md5Test;
-	private MessageDigest md5;
-
-	public MD5Verifier() {
-		super();
-	}
-
-	public MD5Verifier(String md5Test) {
-		super();
-		this.md5Test = md5Test;
-		basicInitialize(null);
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		String data = descriptor.getData();
-		if (data.equals("download"))
-			md5Test = context.getProperty(IArtifactDescriptor.DOWNLOAD_MD5);
-		else if (data.equals("artifact"))
-			md5Test = context.getProperty(IArtifactDescriptor.ARTIFACT_MD5);
-		else
-			md5Test = data;
-		basicInitialize(descriptor);
-	}
-
-	private void basicInitialize(ProcessingStepDescriptor descriptor) {
-		int code = (descriptor == null) ? IStatus.ERROR : descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-		if (md5Test == null || md5Test.length() != 32)
-			setStatus(new Status(code, Activator.ID, "MD5 value not available or incorrect size"));
-		try {
-			md5 = MessageDigest.getInstance("MD5");
-		} catch (NoSuchAlgorithmException e) {
-			setStatus(new Status(code, Activator.ID, "Could not create MD5 algorithm", e));
-		}
-	}
-
-	public void write(int b) throws IOException {
-		if (b != -1)
-			md5.update((byte) b);
-		getDestination().write(b);
-	}
-
-	public void close() throws IOException {
-		super.close();
-
-		byte[] digest = md5.digest();
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < digest.length; i++) {
-			if ((digest[i] & 0xFF) < 0x10)
-				buf.append('0');
-			buf.append(Integer.toHexString(digest[i] & 0xFF));
-		}
-
-		// if the hashes don't line up set the status to error.
-		if (!buf.toString().equals(md5Test))
-			setStatus(new Status(IStatus.ERROR, Activator.ID, "Error processing stream. MD5 hash is not as expected."));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/.classpath b/bundles/org.eclipse.equinox.p2.artifact.repository/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/.project b/bundles/org.eclipse.equinox.p2.artifact.repository/.project
deleted file mode 100644
index e03096b..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.artifact.repository</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 943b809..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,329 +0,0 @@
-#Thu Feb 21 15:37:24 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 1546d82..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,58 +0,0 @@
-#Tue Aug 21 11:27:48 CDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-internal.default.compliance=user
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=99
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 979e4e8..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=true
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF
deleted file mode 100644
index 1b2c32f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,45 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.artifact.repository;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Export-Package: org.eclipse.equinox.internal.p2.artifact.mirror;x-internal:=true,
- org.eclipse.equinox.internal.p2.artifact.repository;x-friends:="org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.tests",
- org.eclipse.equinox.internal.p2.artifact.repository.simple;x-friends:="org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.tests",
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository
-Import-Package: javax.xml.parsers,
- org.eclipse.core.runtime.jobs,
- org.eclipse.core.runtime.preferences;resolution:=optional,
- org.eclipse.equinox.app;version="1.0.0";resolution:=optional,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.jarprocessor;resolution:=optional,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.p2.persistence,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.eventbus,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.spi.p2.core.repository,
- org.eclipse.internal.provisional.equinox.p2.jarprocessor;resolution:=optional,
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.eclipse.osgi.signedcontent;version="1.0.0",
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.prefs;version="1.1.0",
- org.osgi.util.tracker;version="1.3.0",
- org.w3c.dom,
- org.xml.sax;resolution:=optional
-Bundle-Activator: org.eclipse.equinox.internal.p2.artifact.repository.Activator
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Require-Bundle: org.eclipse.ecf.filetransfer,
- org.eclipse.ecf,
- org.eclipse.equinox.common,
- org.eclipse.equinox.registry
-Eclipse-BuddyPolicy: registered
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/about.html b/bundles/org.eclipse.equinox.p2.artifact.repository/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/build.properties b/bundles/org.eclipse.equinox.p2.artifact.repository/build.properties
deleted file mode 100644
index 1e585bd..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               plugin.properties
-src.includes = about.html,\
-               schema/
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/p2 tools - mirror artifacts.launch b/bundles/org.eclipse.equinox.p2.artifact.repository/p2 tools - mirror artifacts.launch
deleted file mode 100644
index 219f06c..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/p2 tools - mirror artifacts.launch
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/p2 tools - mirror artifacts"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.tools.mirrorApplication&#13;&#10;-source http://download.eclipse.org/eclipse/testUpdates&#13;&#10;-destination file:d:/tmp/equinox.p2/servers.mirror"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="javax.servlet@default:default,org.eclipse.core.jobs@default:default,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.tools@default:default,org.eclipse.equinox.simpleconfigurator@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.properties b/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.properties
deleted file mode 100644
index 037f5b1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Artifact Repository Support
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml b/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml
deleted file mode 100644
index e588fda..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="artifactRepositories" name="Artifact Repositories" schema="schema/artifactRepositories.exsd"/>
-   <extension-point id="processingSteps" name="Processing Steps" schema="schema/processingSteps.exsd"/>
-
-   <extension id="simpleRepository"  point="org.eclipse.equinox.p2.artifact.repository.artifactRepositories">
-		<filter suffix="artifacts.xml"/>
-		<factory class="org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.SimpleArtifactRepositoryFactory"/>
-   </extension>
-
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.SignatureVerifier">
-		<step class="org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier"/>
-	</extension>
-
-   <extension id="mirrorApplication"  point="org.eclipse.core.runtime.applications">
-      <application cardinality="1" thread="main" visible="true">
-         <run class="org.eclipse.equinox.internal.p2.artifact.mirror.MirrorApplication"/>
-      </application>
-   </extension>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/schema/artifactRepositories.exsd b/bundles/org.eclipse.equinox.p2.artifact.repository/schema/artifactRepositories.exsd
deleted file mode 100644
index 62c0adc..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/schema/artifactRepositories.exsd
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.equinox.p2.artifact.repository">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.equinox.p2.artifact.repository" id="artifactRepositories" name="Artifact Repositories"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to provide artifact repository implementations
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="factory"/>
-            <element ref="filter" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the fully-qualified name of a class which implements 
-&lt;samp&gt;org.eclipse.equinox.p2.artifact.repository.IArtifactRepository&lt;/samp&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.equinox.p2.artifact.repository.IArtifactRepository"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="filter">
-      <complexType>
-         <attribute name="suffix" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         org.eclipse.equinox.p2.artifact.repository 0.1.0
-      </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>
-         The value of the class attribute must represent an 
-implementor of &lt;tt&gt;org.eclipse.equinox.p2.artifact.repository.IArtifactRepository&lt;/tt&gt;
-      </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>
-         Copyright (c) 2007 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies this distribution, and is available at &lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/schema/processingSteps.exsd b/bundles/org.eclipse.equinox.p2.artifact.repository/schema/processingSteps.exsd
deleted file mode 100644
index 92dbb09..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/schema/processingSteps.exsd
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.equinox.p2.artifact.repository">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.equinox.p2.artifact.repository" id="processingSteps" name="Processing Steps"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to provide processing step implementations
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="step"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="step">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.equinox.p2.artifact.repository.processing.ProcessingStep:"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         org.eclipse.equinox.p2.artifact.repository ?.?.?
-      </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>
-         The value of the class attribute must represent an 
-implementor of &lt;tt&gt;org.eclipse.equinox.p2.artifact.processing.IProcessingStep&lt;/tt&gt;
-      </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>
-         Copyright (c) 2007 compeople AG and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies this distribution, and is available at &lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java
deleted file mode 100644
index ab3515f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.mirror;
-
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * An application that performs mirroring of artifacts between repositories.
- */
-public class MirrorApplication implements IApplication {
-
-	private URL sourceLocation;
-	private URL destinationLocation;
-	private IArtifactRepository source;
-	private IArtifactRepository destination;
-	private boolean append;
-	private boolean raw = false;
-
-	public Object start(IApplicationContext context) throws Exception {
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args"));
-		setupRepositories();
-		new Mirroring(source, destination, raw).run();
-		return null;
-	}
-
-	private void setupRepositories() throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return;
-
-		source = manager.loadRepository(sourceLocation, null);
-		if (destinationLocation != null)
-			destination = initializeDestination();
-		else
-			destination = source;
-	}
-
-	private IArtifactRepository initializeDestination() throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		try {
-			IArtifactRepository repository = manager.loadRepository(destinationLocation, null);
-			if (!repository.isModifiable())
-				throw new IllegalArgumentException("Artifact repository not modifiable: " + destinationLocation); //$NON-NLS-1$
-			if (!append)
-				repository.removeAll();
-			return repository;
-		} catch (ProvisionException e) {
-			//fall through and create a new repository below
-		}
-		// 	the given repo location is not an existing repo so we have to create something
-		// TODO for now create a Simple repo by default.
-		String repositoryName = destinationLocation + " - artifacts"; //$NON-NLS-1$
-		IArtifactRepository repository = manager.createRepository(destinationLocation, repositoryName, IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(repository.getLocation());
-		return repository;
-	}
-
-	public void stop() {
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-			if (args[i].equals("-raw"))
-				raw = true;
-
-			// 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 param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase("-source"))
-				sourceLocation = new URL(arg);
-			if (args[i - 1].equalsIgnoreCase("-destination"))
-				destinationLocation = new URL(arg);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/Mirroring.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/Mirroring.java
deleted file mode 100644
index ce0c90f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/Mirroring.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *		compeople AG (Stefan Liebig) - various ongoing maintenance
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.mirror;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * A utility class that performs mirroring of artifacts between repositories.
- */
-public class Mirroring {
-	private IArtifactRepository source;
-	private IArtifactRepository destination;
-	private boolean raw;
-
-	public Mirroring(IArtifactRepository source, IArtifactRepository destination, boolean raw) {
-		this.source = source;
-		this.destination = destination;
-		this.raw = raw;
-	}
-
-	public void run() {
-		if (!destination.isModifiable())
-			throw new IllegalStateException("Destination repository must be modifiable: " + destination.getLocation());
-		IArtifactKey[] keys = source.getArtifactKeys();
-		for (int i = 0; i < keys.length; i++) {
-			IArtifactKey key = keys[i];
-			IArtifactDescriptor[] descriptors = source.getArtifactDescriptors(key);
-			for (int j = 0; j < descriptors.length; j++)
-				mirror(descriptors[j]);
-		}
-	}
-
-	private void mirror(IArtifactDescriptor descriptor) {
-		IArtifactDescriptor newDescriptor = raw ? descriptor : new ArtifactDescriptor(descriptor);
-		try {
-			OutputStream repositoryStream = null;
-			try {
-				System.out.println("Mirroring: " + descriptor.getArtifactKey()); //$NON-NLS-1$
-				repositoryStream = destination.getOutputStream(newDescriptor);
-				if (repositoryStream == null)
-					return;
-				// TODO Is that ok to ignore the result?
-				source.getArtifact(descriptor, repositoryStream, new NullProgressMonitor());
-			} finally {
-				if (repositoryStream != null)
-					repositoryStream.close();
-			}
-		} catch (ProvisionException e) {
-			// TODO Is that ok to ignore the exception
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Is that ok to ignore the exception
-			e.printStackTrace();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/AbstractRepositoryManager.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/AbstractRepositoryManager.java
deleted file mode 100644
index 6bd47e1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/AbstractRepositoryManager.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.net.URL;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.RepositoryEvent;
-
-/**
- * Common code shared between artifact and metadata repository managers.
- */
-public class AbstractRepositoryManager {
-	protected void broadcastChangeEvent(URL location, int repositoryType, int kind) {
-		IProvisioningEventBus bus = (IProvisioningEventBus) ServiceHelper.getService(Activator.getContext(), IProvisioningEventBus.class.getName());
-		if (bus != null)
-			bus.publishEvent(new RepositoryEvent(location, repositoryType, kind));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Activator.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Activator.java
deleted file mode 100644
index 4d1154f..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Activator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.osgi.framework.*;
-
-public class Activator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.artifact.repository"; //$NON-NLS-1$
-	public static final String REPO_PROVIDER_XPT = ID + '.' + "artifactRepositories"; //$NON-NLS-1$
-
-	private static BundleContext context;
-	private ServiceRegistration repositoryManagerRegistration;
-
-	public static BundleContext getContext() {
-		return Activator.context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-		ArtifactRepositoryManager repositoryManager = new ArtifactRepositoryManager();
-		repositoryManagerRegistration = context.registerService(IArtifactRepositoryManager.class.getName(), repositoryManager, null);
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		Activator.context = null;
-		if (repositoryManagerRegistration != null)
-			repositoryManagerRegistration.unregister();
-		repositoryManagerRegistration = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java
deleted file mode 100644
index 5488722..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java
+++ /dev/null
@@ -1,572 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.lang.ref.SoftReference;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
-import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository;
-import org.eclipse.equinox.internal.p2.core.helpers.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.ProvisioningListener;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.RepositoryEvent;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.IArtifactRepositoryFactory;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * Default implementation of {@link IArtifactRepositoryManager}.
- * 
- * TODO the current assumption that the "location" is the dir/root limits us to 
- * having just one repository in a given URL..  
- */
-public class ArtifactRepositoryManager extends AbstractRepositoryManager implements IArtifactRepositoryManager, ProvisioningListener {
-	static class RepositoryInfo {
-		String description;
-		boolean isSystem = false;
-		URL location;
-		String name;
-		SoftReference repository;
-	}
-
-	private static final String ATTR_SUFFIX = "suffix"; //$NON-NLS-1$
-	private static final String DEFAULT_SUFFIX = "artifacts.xml"; //$NON-NLS-1$
-	private static final String EL_FACTORY = "factory"; //$NON-NLS-1$
-
-	private static final String EL_FILTER = "filter"; //$NON-NLS-1$
-	private static final String KEY_DESCRIPTION = "description"; //$NON-NLS-1$
-	private static final String KEY_NAME = "name"; //$NON-NLS-1$
-	private static final String KEY_PROVIDER = "provider"; //$NON-NLS-1$
-	private static final String KEY_SYSTEM = "isSystem"; //$NON-NLS-1$
-	private static final String KEY_TYPE = "type"; //$NON-NLS-1$
-	private static final String KEY_URL = "url"; //$NON-NLS-1$
-	private static final String KEY_VERSION = "version"; //$NON-NLS-1$
-	private static final String NODE_REPOSITORIES = "repositories"; //$NON-NLS-1$
-
-	/**
-	 * Map of String->RepositoryInfo, where String is the repository key
-	 * obtained via getKey(URL).
-	 */
-	private Map repositories = null;
-	//lock object to be held when referring to the repositories field
-	private final Object repositoryLock = new Object();
-
-	/**
-	 * Cache List of repositories that are not reachable. Maintain cache
-	 * for short duration because repository may become available at any time.
-	 */
-	private SoftReference unavailableRepositories;
-
-	public ArtifactRepositoryManager() {
-		IProvisioningEventBus bus = (IProvisioningEventBus) ServiceHelper.getService(Activator.getContext(), IProvisioningEventBus.class.getName());
-		if (bus != null)
-			bus.addListener(this);
-		//initialize repositories lazily
-	}
-
-	public void addRepository(IArtifactRepository repository) {
-		RepositoryInfo info = new RepositoryInfo();
-		info.repository = new SoftReference(repository);
-		info.name = repository.getName();
-		info.description = repository.getDescription();
-		info.location = repository.getLocation();
-		String value = (String) repository.getProperties().get(IRepository.PROP_SYSTEM);
-		info.isSystem = value == null ? false : Boolean.valueOf(value).booleanValue();
-		boolean added = true;
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			added = repositories.put(getKey(repository), info) == null;
-		}
-		// save the given repository in the preferences.
-		remember(repository);
-		if (added)
-			broadcastChangeEvent(repository.getLocation(), IRepository.TYPE_ARTIFACT, RepositoryEvent.ADDED);
-	}
-
-	public void addRepository(URL location) {
-		Assert.isNotNull(location);
-		RepositoryInfo info = new RepositoryInfo();
-		info.location = location;
-		boolean added = true;
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			added = repositories.put(getKey(location), info) == null;
-		}
-		// save the given repository in the preferences.
-		remember(info);
-		if (added)
-			broadcastChangeEvent(location, IRepository.TYPE_ARTIFACT, RepositoryEvent.ADDED);
-	}
-
-	/**
-	 * Check if we recently attempted to load the given location and failed
-	 * to find anything. Returns <code>true</code> if the repository was not
-	 * found, and <code>false</code> otherwise.
-	 */
-	private boolean checkNotFound(URL location) {
-		if (unavailableRepositories == null)
-			return false;
-		List badRepos = (List) unavailableRepositories.get();
-		if (badRepos == null)
-			return false;
-		return badRepos.contains(location);
-	}
-
-	/**
-	 * Clear the fact that we tried to load a repository at this location and did not find anything.
-	 */
-	private void clearNotFound(URL location) {
-		List badRepos;
-		if (unavailableRepositories != null) {
-			badRepos = (List) unavailableRepositories.get();
-			if (badRepos != null) {
-				badRepos.remove(location);
-				return;
-			}
-		}
-	}
-
-	public IArtifactRequest createDownloadRequest(IArtifactKey key, IPath destination) {
-		return new FileDownloadRequest(key, destination);
-	}
-
-	private Object createExecutableExtension(IExtension extension, String element) {
-		IConfigurationElement[] elements = extension.getConfigurationElements();
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i].getName().equals(element)) {
-				try {
-					return elements[i].createExecutableExtension("class"); //$NON-NLS-1$
-				} catch (CoreException e) {
-					log("Error loading repository extension: " + extension.getUniqueIdentifier(), e); //$NON-NLS-1$
-					return null;
-				}
-			}
-		}
-		log("Malformed repository extension: " + extension.getUniqueIdentifier(), null); //$NON-NLS-1$
-		return null;
-	}
-
-	public IArtifactRequest createMirrorRequest(IArtifactKey key, IArtifactRepository destination) {
-		return createMirrorRequest(key, destination, null, null);
-	}
-
-	public IArtifactRequest createMirrorRequest(IArtifactKey key, IArtifactRepository destination, Properties destinationDescriptorProperties, Properties destinationRepositoryProperties) {
-		return new MirrorRequest(key, destination, destinationDescriptorProperties, destinationRepositoryProperties);
-	}
-
-	public IArtifactRepository createRepository(URL location, String name, String type) throws ProvisionException {
-		try {
-			loadRepository(location, (IProgressMonitor) null);
-			fail(location, ProvisionException.REPOSITORY_EXISTS);
-		} catch (ProvisionException e) {
-			//expected - fall through and create a new repository
-		}
-		IExtension extension = RegistryFactory.getRegistry().getExtension(Activator.REPO_PROVIDER_XPT, type);
-		if (extension == null)
-			fail(location, ProvisionException.REPOSITORY_UNKNOWN_TYPE);
-		IArtifactRepositoryFactory factory = (IArtifactRepositoryFactory) createExecutableExtension(extension, EL_FACTORY);
-		if (factory == null)
-			fail(location, ProvisionException.REPOSITORY_FAILED_READ);
-		IArtifactRepository result = factory.create(location, name, type);
-		if (result == null)
-			fail(location, ProvisionException.REPOSITORY_FAILED_READ);
-		clearNotFound(result.getLocation());
-		return result;
-	}
-
-	private void fail(URL location, int code) throws ProvisionException {
-		String msg = null;
-		switch (code) {
-			case ProvisionException.REPOSITORY_EXISTS :
-				msg = NLS.bind(Messages.repoMan_exists, location);
-				break;
-			case ProvisionException.REPOSITORY_UNKNOWN_TYPE :
-				msg = NLS.bind(Messages.repoMan_unknownType, location);
-				break;
-			case ProvisionException.REPOSITORY_FAILED_READ :
-				msg = NLS.bind(Messages.repoMan_failedRead, location);
-				break;
-			case ProvisionException.REPOSITORY_NOT_FOUND :
-				msg = NLS.bind(Messages.repoMan_notExists, location);
-				break;
-		}
-		if (msg == null)
-			msg = Messages.repoMan_internalError;
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, code, msg, null));
-	}
-
-	private IExtension[] findMatchingRepositoryExtensions(String suffix) {
-		IConfigurationElement[] elt = RegistryFactory.getRegistry().getConfigurationElementsFor(Activator.REPO_PROVIDER_XPT);
-		int count = 0;
-		for (int i = 0; i < elt.length; i++) {
-			if (EL_FILTER.equals(elt[i].getName())) {
-				if (!suffix.equals(elt[i].getAttribute(ATTR_SUFFIX))) {
-					elt[i] = null;
-				} else {
-					count++;
-				}
-			} else {
-				elt[i] = null;
-			}
-		}
-		IExtension[] results = new IExtension[count];
-		for (int i = 0; i < elt.length; i++) {
-			if (elt[i] != null)
-				results[--count] = elt[i].getDeclaringExtension();
-		}
-		return results;
-	}
-
-	private String[] getAllSuffixes() {
-		IConfigurationElement[] elements = RegistryFactory.getRegistry().getConfigurationElementsFor(Activator.REPO_PROVIDER_XPT);
-		ArrayList result = new ArrayList(elements.length);
-		result.add(DEFAULT_SUFFIX);
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i].getName().equals(EL_FILTER)) {
-				String suffix = elements[i].getAttribute(ATTR_SUFFIX);
-				if (!result.contains(suffix))
-					result.add(suffix);
-			}
-		}
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	/*
-	 * Return an encoded repository key that is suitable for using
-	 * as the name of a preference node.
-	 */
-	private String getKey(IArtifactRepository repository) {
-		return getKey(repository.getLocation());
-	}
-
-	/*
-	 * Return a string key based on the given repository location which
-	 * is suitable for use as a preference node name.
-	 */
-	private String getKey(URL location) {
-		return location.toExternalForm().replace('/', '_');
-	}
-
-	public URL[] getKnownRepositories(int flags) {
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			ArrayList result = new ArrayList();
-			int i = 0;
-			for (Iterator it = repositories.values().iterator(); it.hasNext(); i++) {
-				RepositoryInfo info = (RepositoryInfo) it.next();
-				if (matchesFlags(info, flags))
-					result.add(info.location);
-			}
-			return (URL[]) result.toArray(new URL[result.size()]);
-		}
-	}
-
-	/*
-	 * Return the root preference node where we store the repository information.
-	 */
-	private Preferences getPreferences() {
-		return new ConfigurationScope().getNode(Activator.ID).node(NODE_REPOSITORIES);
-	}
-
-	public IArtifactRepository getRepository(URL location) {
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			for (Iterator it = repositories.values().iterator(); it.hasNext();) {
-				RepositoryInfo info = (RepositoryInfo) it.next();
-				if (URLUtil.sameURL(info.location, location)) {
-					if (info.repository == null)
-						return null;
-					IArtifactRepository repo = (IArtifactRepository) info.repository.get();
-					//update our repository info because the repository may have changed
-					if (repo != null)
-						addRepository(repo);
-					return repo;
-				}
-			}
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager#getRepositoryProperty(java.net.URL, java.lang.String)
-	 */
-	public String getRepositoryProperty(URL location, String key) {
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			for (Iterator it = repositories.values().iterator(); it.hasNext();) {
-				RepositoryInfo info = (RepositoryInfo) it.next();
-				if (URLUtil.sameURL(info.location, location)) {
-					if (IRepository.PROP_DESCRIPTION.equals(key))
-						return info.description;
-					if (IRepository.PROP_NAME.equals(key))
-						return info.name;
-					// Key not known, return null
-					return null;
-				}
-			}
-			// Repository not found, return null
-			return null;
-		}
-	}
-
-	public IArtifactRepository loadRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		// TODO do something with the monitor
-		IArtifactRepository result = getRepository(location);
-		if (result != null)
-			return result;
-		if (checkNotFound(location))
-			fail(location, ProvisionException.REPOSITORY_NOT_FOUND);
-		String[] suffixes = getAllSuffixes();
-		SubMonitor sub = SubMonitor.convert(monitor, suffixes.length * 100);
-		for (int i = 0; i < suffixes.length; i++) {
-			result = loadRepository(location, suffixes[i], sub.newChild(100));
-			if (result != null) {
-				addRepository(result);
-				return result;
-			}
-		}
-		rememberNotFound(location);
-		fail(location, ProvisionException.REPOSITORY_NOT_FOUND);
-		return null;
-	}
-
-	private IArtifactRepository loadRepository(URL location, String suffix, SubMonitor monitor) {
-		IExtension[] providers = findMatchingRepositoryExtensions(suffix);
-		// Loop over the candidates and return the first one that successfully loads
-		monitor.beginTask("", providers.length * 10); //$NON-NLS-1$
-		for (int i = 0; i < providers.length; i++)
-			try {
-				IArtifactRepositoryFactory factory = (IArtifactRepositoryFactory) createExecutableExtension(providers[i], EL_FACTORY);
-				if (factory != null)
-					return factory.load(location, monitor.newChild(10));
-			} catch (CoreException e) {
-				if (e.getStatus().getCode() != ProvisionException.REPOSITORY_NOT_FOUND)
-					log("Unable to load repository: " + location, e); //$NON-NLS-1$
-			}
-		return null;
-	}
-
-	protected void log(String message, Throwable t) {
-		LogHelper.log(new Status(IStatus.ERROR, Activator.ID, message, t));
-	}
-
-	private boolean matchesFlags(RepositoryInfo info, int flags) {
-		if ((flags & REPOSITORIES_SYSTEM) == REPOSITORIES_SYSTEM)
-			if (!info.isSystem)
-				return false;
-		if ((flags & REPOSITORIES_NON_SYSTEM) == REPOSITORIES_NON_SYSTEM)
-			if (info.isSystem)
-				return false;
-		if ((flags & REPOSITORIES_LOCAL) == REPOSITORIES_LOCAL)
-			return "file".equals(info.location.getProtocol()); //$NON-NLS-1$
-		return true;
-	}
-
-	/*(non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.core.eventbus.ProvisioningListener#notify(java.util.EventObject)
-	 */
-	public void notify(EventObject o) {
-		if (o instanceof RepositoryEvent) {
-			RepositoryEvent event = (RepositoryEvent) o;
-			if (event.getKind() == RepositoryEvent.DISCOVERED && event.getRepositoryType() == IRepository.TYPE_ARTIFACT)
-				addRepository(event.getRepositoryLocation());
-		}
-	}
-
-	/**
-	 * Sets a preference and returns <code>true</code> if the preference
-	 * was actually changed.
-	 */
-	private boolean putValue(Preferences node, String key, String newValue) {
-		String oldValue = node.get(key, null);
-		if (oldValue == newValue || (oldValue != null && oldValue.equals(newValue)))
-			return false;
-		if (newValue == null)
-			node.remove(key);
-		else
-			node.put(key, newValue);
-		return true;
-	}
-
-	public IArtifactRepository refreshRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		clearNotFound(location);
-		if (!removeRepository(location))
-			fail(location, ProvisionException.REPOSITORY_NOT_FOUND);
-		return loadRepository(location, monitor);
-	}
-
-	/*
-	 * Add the given repository object to the preferences and save.
-	 */
-	private void remember(IArtifactRepository repository) {
-		boolean changed = false;
-		Preferences node = getPreferences().node(getKey(repository));
-		changed |= putValue(node, KEY_URL, repository.getLocation().toExternalForm());
-		changed |= putValue(node, KEY_DESCRIPTION, repository.getDescription());
-		changed |= putValue(node, KEY_NAME, repository.getName());
-		changed |= putValue(node, KEY_PROVIDER, repository.getProvider());
-		changed |= putValue(node, KEY_TYPE, repository.getType());
-		changed |= putValue(node, KEY_VERSION, repository.getVersion());
-		changed |= putValue(node, KEY_SYSTEM, (String) repository.getProperties().get(IRepository.PROP_SYSTEM));
-		if (changed)
-			saveToPreferences();
-	}
-
-	/*
-	 * Save the list of repositories in the preference store.
-	 */
-	private void remember(RepositoryInfo info) {
-		boolean changed = false;
-		Preferences node = getPreferences().node(getKey(info.location));
-		changed |= putValue(node, KEY_URL, info.location.toExternalForm());
-		changed |= putValue(node, KEY_SYSTEM, Boolean.toString(info.isSystem));
-		changed |= putValue(node, KEY_DESCRIPTION, info.description);
-		changed |= putValue(node, KEY_NAME, info.name);
-		if (changed)
-			saveToPreferences();
-	}
-
-	/**
-	 * Cache the fact that we tried to load a repository at this location and did not find anything.
-	 */
-	private void rememberNotFound(URL location) {
-		List badRepos;
-		if (unavailableRepositories != null) {
-			badRepos = (List) unavailableRepositories.get();
-			if (badRepos != null) {
-				badRepos.add(location);
-				return;
-			}
-		}
-		badRepos = new ArrayList();
-		badRepos.add(location);
-		unavailableRepositories = new SoftReference(badRepos);
-	}
-
-	public boolean removeRepository(URL toRemove) {
-		Assert.isNotNull(toRemove);
-		final String repoKey = getKey(toRemove);
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			if (repositories.remove(repoKey) == null)
-				return false;
-		}
-		// remove the repository from the preference store
-		try {
-			getPreferences().node(repoKey).removeNode();
-			saveToPreferences();
-		} catch (BackingStoreException e) {
-			log("Error saving preferences", e); //$NON-NLS-1$
-		}
-		broadcastChangeEvent(toRemove, IRepository.TYPE_ARTIFACT, RepositoryEvent.REMOVED);
-		return true;
-	}
-
-	private void restoreDownloadCache() {
-		// TODO while recreating, we may want to have proxies on repo instead of the real repo object to limit what is activated.
-		AgentLocation location = (AgentLocation) ServiceHelper.getService(Activator.getContext(), AgentLocation.class.getName());
-		if (location == null)
-			// TODO should do something here since we are failing to restore.
-			return;
-		try {
-			SimpleArtifactRepository cache = (SimpleArtifactRepository) createRepository(location.getArtifactRepositoryURL(), "download cache", TYPE_SIMPLE_REPOSITORY); //$NON-NLS-1$
-			addRepository(cache);
-			cache.setProperty(IRepository.PROP_SYSTEM, Boolean.TRUE.toString());
-		} catch (ProvisionException e) {
-			LogHelper.log(e);
-		}
-	}
-
-	/*
-	 * Load the list of repositories from the preferences.
-	 */
-	private void restoreFromPreferences() {
-		// restore the list of repositories from the preference store
-		Preferences node = getPreferences();
-		String[] children;
-		try {
-			children = node.childrenNames();
-		} catch (BackingStoreException e) {
-			log("Error restoring repositories from preferences", e); //$NON-NLS-1$
-			return;
-		}
-		for (int i = 0; i < children.length; i++) {
-			Preferences child = node.node(children[i]);
-			String locationString = child.get(KEY_URL, null);
-			if (locationString == null)
-				continue;
-			try {
-				RepositoryInfo info = new RepositoryInfo();
-				info.location = new URL(locationString);
-				info.name = child.get(KEY_NAME, null);
-				info.description = child.get(KEY_DESCRIPTION, null);
-				info.isSystem = child.getBoolean(KEY_SYSTEM, false);
-				repositories.put(getKey(info.location), info);
-			} catch (MalformedURLException e) {
-				log("Error while restoring repository: " + locationString, e); //$NON-NLS-1$
-			}
-		}
-		// now that we have loaded everything, remember them
-		saveToPreferences();
-	}
-
-	private void restoreFromSystemProperty() {
-		String locationString = Activator.getContext().getProperty("eclipse.p2.artifactRepository"); //$NON-NLS-1$
-		if (locationString != null) {
-			StringTokenizer tokenizer = new StringTokenizer(locationString, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				try {
-					addRepository(new URL(tokenizer.nextToken()));
-				} catch (MalformedURLException e) {
-					log("Error while restoring repository " + locationString, e); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	/**
-	 * Restores the repository list.
-	 */
-	protected void restoreRepositories() {
-		synchronized (repositoryLock) {
-			repositories = new HashMap();
-			restoreDownloadCache();
-			restoreFromSystemProperty();
-			restoreFromPreferences();
-		}
-	}
-
-	/*
-	 * Save the list of repositories to the file-system.
-	 */
-	private void saveToPreferences() {
-		try {
-			getPreferences().flush();
-		} catch (BackingStoreException e) {
-			log("Error while saving repositories in preferences", e); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRequest.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRequest.java
deleted file mode 100644
index 2a3d3d6..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRequest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * Base class for all requests on an {@link IArtifactRepository}.
- */
-public abstract class ArtifactRequest implements IArtifactRequest {
-	private static final Status DEFAULT_STATUS = new Status(IStatus.ERROR, Activator.ID, "default"); //$NON-NLS-1$
-	protected IArtifactKey artifact;
-	protected String resolvedKey;
-	protected IArtifactRepository source;
-	protected IStatus result = DEFAULT_STATUS;
-	protected IArtifactDescriptor descriptor;
-
-	public ArtifactRequest(IArtifactKey key) {
-		artifact = key;
-		// TODO do we need to make this configurable? for now set default request handler to ECF
-	}
-
-	public IArtifactKey getArtifactKey() {
-		return artifact;
-	}
-
-	public IArtifactDescriptor getArtifactDescriptor() {
-		return descriptor;
-	}
-
-	/**
-	 * Returns the result of the previous call to {@link #perform(IProgressMonitor)},
-	 * or <code>null</code> if perform has never been called.
-	 * 
-	 * @return The result of the previous perform call.
-	 */
-	public IStatus getResult() {
-		if (result == DEFAULT_STATUS)
-			return new Status(IStatus.ERROR, Activator.ID, "No repository found containing: " + getArtifactKey().toString());
-
-		return result;
-	}
-
-	protected IArtifactRepository getSourceRepository() {
-		return source;
-	}
-
-	/**
-	 * Performs the artifact request, and sets the result status.
-	 * 
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 */
-	abstract public void perform(IProgressMonitor monitor);
-
-	/**
-	 * Sets the descriptor to use when processing this request.
-	 * 
-	 * @param value The descriptor to use when processing this request
-	 */
-	public void setDescriptor(IArtifactDescriptor value) {
-		if (!value.getArtifactKey().equals(artifact))
-			throw new IllegalArgumentException("Descriptor's key must match the request's key"); //$NON-NLS-1$
-		descriptor = value;
-		if (artifact == null)
-			artifact = value.getArtifactKey();
-	}
-
-	/**
-	 * Sets the result of an invocation of {@link #perform(IProgressMonitor)}.
-	 * This method is called by subclasses to set the result status for
-	 * this request.
-	 * 
-	 * @param value The result status
-	 */
-	protected void setResult(IStatus value) {
-		result = value;
-	}
-
-	public void setSourceRepository(IArtifactRepository value) {
-		source = value;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/DownloadStatus.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/DownloadStatus.java
deleted file mode 100644
index 3481849..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/DownloadStatus.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import org.eclipse.core.runtime.Status;
-
-/**
- * A status object that optionally reports additional information about the
- * result of a download.
- */
-public class DownloadStatus extends Status {
-	public static final long UNKNOWN_RATE = -1;
-
-	private long speed = UNKNOWN_RATE;
-
-	/**
-	 * Constructs a new DownloadStatus with the given attributes.
-	 */
-	public DownloadStatus(int severity, String pluginId, int code, String message, Throwable exception) {
-		super(severity, pluginId, code, message, exception);
-	}
-
-	/**
-	 * Constructs a new DownloadStatus with the given attributes.
-	 */
-	public DownloadStatus(int severity, String pluginId, String message) {
-		super(severity, pluginId, message);
-	}
-
-	/**
-	 * Constructs a new DownloadStatus with the given attributes.
-	 */
-	public DownloadStatus(int severity, String pluginId, String message, Throwable exception) {
-		super(severity, pluginId, message, exception);
-	}
-
-	/**
-	 * Returns the download rate in bytes per second.  If the rate is unknown,
-	 * @{link {@link #UNKNOWN_RATE}} is returned.
-	 * @return the download rate in bytes per second
-	 */
-	public long getTransferRate() {
-		return speed;
-	}
-
-	/**
-	 * Sets the download rate of the transfer in bytes per second.
-	 * @param rate The download rate in bytes per second
-	 */
-	public void setTransferRate(long rate) {
-		this.speed = rate;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ECFTransport.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ECFTransport.java
deleted file mode 100644
index 5d3f6e5..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ECFTransport.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *		compeople AG (Stefan Liebig) - various ongoing maintenance
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import org.eclipse.core.runtime.*;
-import org.eclipse.ecf.filetransfer.*;
-import org.eclipse.ecf.filetransfer.events.*;
-import org.eclipse.ecf.filetransfer.identity.FileCreateException;
-import org.eclipse.ecf.filetransfer.identity.FileIDFactory;
-import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IStateful;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * A transport implementation that uses ECF file transfer API.
- */
-public class ECFTransport extends Transport {
-
-	/**
-	 * The singleton transport instance.
-	 */
-	private static ECFTransport instance;
-
-	private final ServiceTracker retrievalFactoryTracker;
-
-	/**
-	 * Returns an initialized instance of ECFTransport
-	 */
-	public static synchronized ECFTransport getInstance() {
-		if (instance == null) {
-			instance = new ECFTransport();
-		}
-		return instance;
-	}
-
-	/**
-	 * Private to avoid client instantiation.
-	 */
-	private ECFTransport() {
-		retrievalFactoryTracker = new ServiceTracker(Activator.getContext(), IRetrieveFileTransferFactory.class.getName(), null);
-		retrievalFactoryTracker.open();
-	}
-
-	protected IStatus convertToStatus(IFileTransferEvent event, Exception failure, long startTime) {
-		long speed = DownloadStatus.UNKNOWN_RATE;
-		if (event instanceof IIncomingFileTransferEvent) {
-			long bytes = ((IIncomingFileTransferEvent) event).getSource().getBytesReceived();
-			if (bytes > 0) {
-				long elapsed = (System.currentTimeMillis() - startTime) / 1000;//in seconds
-				if (elapsed == 0)
-					elapsed = 1;
-				speed = bytes / elapsed;
-			}
-		}
-		DownloadStatus result = null;
-		if (failure == null)
-			result = new DownloadStatus(IStatus.OK, Activator.ID, Status.OK_STATUS.getMessage());
-		else if (failure instanceof UserCancelledException)
-			result = new DownloadStatus(IStatus.CANCEL, Activator.ID, failure.getMessage(), failure);
-		else
-			result = new DownloadStatus(IStatus.ERROR, Activator.ID, "Error during transfer", failure);
-		result.setTransferRate(speed);
-		return result;
-	}
-
-	public IStatus download(String toDownload, OutputStream target, IProgressMonitor monitor) {
-		IRetrieveFileTransferFactory factory = (IRetrieveFileTransferFactory) retrievalFactoryTracker.getService();
-		if (factory == null)
-			return statusOn(target, new Status(IStatus.ERROR, Activator.ID, "ECF Transfer manager not available"));
-
-		return transfer(factory.newInstance(), toDownload, target, monitor);
-	}
-
-	private IStatus transfer(final IRetrieveFileTransferContainerAdapter retrievalContainer, final String toDownload, final OutputStream target, final IProgressMonitor monitor) {
-		final IStatus[] result = new IStatus[1];
-		final long startTime = System.currentTimeMillis();
-		IFileTransferListener listener = new IFileTransferListener() {
-			public void handleTransferEvent(IFileTransferEvent event) {
-				if (event instanceof IIncomingFileTransferReceiveStartEvent) {
-					IIncomingFileTransferReceiveStartEvent rse = (IIncomingFileTransferReceiveStartEvent) event;
-					try {
-						if (target != null) {
-							rse.receive(target);
-						}
-					} catch (IOException e) {
-						IStatus status = convertToStatus(event, e, startTime);
-						synchronized (result) {
-							result[0] = status;
-							result.notify();
-						}
-					}
-				}
-				if (event instanceof IIncomingFileTransferReceiveDataEvent) {
-					IIncomingFileTransfer source = ((IIncomingFileTransferReceiveDataEvent) event).getSource();
-					if (monitor != null) {
-						if (monitor.isCanceled())
-							source.cancel();
-					}
-				}
-				if (event instanceof IIncomingFileTransferReceiveDoneEvent) {
-					Exception exception = ((IIncomingFileTransferReceiveDoneEvent) event).getException();
-					IStatus status = convertToStatus(event, exception, startTime);
-					synchronized (result) {
-						result[0] = status;
-						result.notify();
-					}
-				}
-			}
-		};
-
-		try {
-			retrievalContainer.sendRetrieveRequest(FileIDFactory.getDefault().createFileID(retrievalContainer.getRetrieveNamespace(), toDownload), listener, null);
-		} catch (IncomingFileTransferException e) {
-			return statusOn(target, e.getStatus());
-		} catch (FileCreateException e) {
-			return statusOn(target, e.getStatus());
-		}
-		synchronized (result) {
-			while (result[0] == null) {
-				boolean logged = false;
-				try {
-					result.wait();
-				} catch (InterruptedException e) {
-					if (!logged)
-						LogHelper.log(new Status(IStatus.WARNING, Activator.ID, "Unexpected interrupt while waiting on ECF transfer", e)); //$NON-NLS-1$
-				}
-			}
-		}
-
-		return statusOn(target, result[0]);
-	}
-
-	private static IStatus statusOn(OutputStream target, IStatus status) {
-		if (target instanceof IStateful)
-			((IStateful) target).setStatus(status);
-		return status;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/FileDownloadRequest.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/FileDownloadRequest.java
deleted file mode 100644
index 27e8d86..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/FileDownloadRequest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.io.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.osgi.util.NLS;
-
-public class FileDownloadRequest extends ArtifactRequest {
-	public static final FileDownloadRequest[] NO_REQUEST = new FileDownloadRequest[0];
-
-	private File destination; // The fully qualified path where the file should be written
-
-	public FileDownloadRequest(IArtifactKey downloadKey, IPath downloadPath) {
-		super(downloadKey);
-		destination = downloadPath.toFile();
-	}
-
-	public void perform(IProgressMonitor monitor) {
-		try {
-			OutputStream destinationStream = null;
-			try {
-				destinationStream = new BufferedOutputStream(new FileOutputStream(destination));
-				setResult(source.getArtifact(descriptor, destinationStream, null));
-			} finally {
-				if (destinationStream != null)
-					destinationStream.close();
-			}
-		} catch (IOException e) {
-			setResult(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.FileDownloadError, descriptor, destination), e));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Messages.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Messages.java
deleted file mode 100644
index db269df..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Messages.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.artifact.repository.messages"; //$NON-NLS-1$
-
-	public static String artifact_not_found;
-	public static String available_already_in;
-	public static String downloading;
-	public static String error_closing_stream;
-	public static String FileDownloadError;
-	public static String io_failedRead;
-	public static String io_incompatibleVersion;
-	public static String SignatureVerification_failedRead;
-	public static String SignatureVerification_invalidContent;
-	public static String SignatureVerification_invalidFileContent;
-	public static String io_parseError;
-	public static String mirroring;
-	public static String repoMan_exists;
-	public static String repoMan_failedRead;
-	public static String repoMan_internalError;
-	public static String repoMan_notExists;
-	public static String repoMan_unknownType;
-	public static String repoFailedWrite;
-	public static String repoReadOnly;
-
-	public static String sar_downloading;
-	public static String sar_downloadJobName;
-	public static String sar_failedMkdir;
-	public static String sar_reportStatus;
-
-	static {
-		// initialize resource bundles
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorRequest.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorRequest.java
deleted file mode 100644
index f3aec73..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorRequest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *		compeople AG (Stefan Liebig) - various ongoing maintenance
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Properties;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * A request to mirror (copy) an artifact into a given destination artifact repository.
- */
-public class MirrorRequest extends ArtifactRequest {
-	private static final ProcessingStepDescriptor[] EMPTY_STEPS = new ProcessingStepDescriptor[0];
-
-	private final IArtifactRepository target;
-
-	private final Properties targetDescriptorProperties;
-
-	private final Properties targetRepositoryProperties;
-
-	public MirrorRequest(IArtifactKey key, IArtifactRepository targetRepository, Properties targetDescriptorProperties, Properties targetRepositoryProperties) {
-		super(key);
-		target = targetRepository;
-		if (targetDescriptorProperties == null || targetDescriptorProperties.isEmpty()) {
-			this.targetDescriptorProperties = null;
-		} else {
-			this.targetDescriptorProperties = new Properties();
-			this.targetDescriptorProperties.putAll(targetDescriptorProperties);
-		}
-
-		if (targetRepositoryProperties == null || targetRepositoryProperties.isEmpty()) {
-			this.targetRepositoryProperties = null;
-		} else {
-			this.targetRepositoryProperties = new Properties();
-			this.targetRepositoryProperties.putAll(targetRepositoryProperties);
-		}
-	}
-
-	public void perform(IProgressMonitor monitor) {
-		monitor.subTask(NLS.bind(Messages.downloading, getArtifactKey().getId()));
-		// Do we already have the artifact in the target?
-		if (target.contains(getArtifactKey())) {
-			setResult(new Status(IStatus.OK, Activator.ID, NLS.bind(Messages.available_already_in, getArtifactKey())));
-			return;
-		}
-
-		// if the request does not have a descriptor then try to fill one in by getting
-		// the list of all and randomly picking one that appears to be optimized.
-		if (descriptor == null) {
-			IArtifactDescriptor[] descriptors = source.getArtifactDescriptors(getArtifactKey());
-			if (descriptors.length > 0) {
-				IArtifactDescriptor optimized = null;
-				IArtifactDescriptor canonical = null;
-				for (int i = 0; i < descriptors.length; i++) {
-					if (descriptors[i].getProperty(IArtifactDescriptor.FORMAT) == null)
-						canonical = descriptors[i];
-					else if (ProcessingStepHandler.canProcess(descriptors[i]))
-						optimized = descriptors[i];
-				}
-				boolean chooseCanonical = source.getLocation().getProtocol().equals("file"); //$NON-NLS-1$
-				// If the source repo is local then look for a canonical descriptor so we don't waste processing time.
-				descriptor = chooseCanonical ? canonical : optimized;
-				// if the descriptor is still null then we could not find our first choice of format so switch the logic.
-				if (descriptor == null)
-					descriptor = !chooseCanonical ? canonical : optimized;
-			}
-		}
-
-		// if the descriptor is not set now then the repo does not have the requested artifact
-		// TODO improve the reporting here.  It may be the case that the repo has the artifact
-		// but the client does not have a processor
-		if (descriptor == null) {
-			setResult(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.artifact_not_found, getArtifactKey())));
-			return;
-		}
-
-		// Get the output stream to store the artifact
-		// Since we are mirroring, ensure we clear out data from the original descriptor that may
-		// not apply in the new repo location.
-		// TODO this is brittle.  perhaps the repo itself should do this?  there are cases where
-		// we really do need to give the repo the actual descriptor to use however...
-		ArtifactDescriptor destinationDescriptor = new ArtifactDescriptor(getArtifactDescriptor());
-		destinationDescriptor.setProcessingSteps(EMPTY_STEPS);
-		destinationDescriptor.setProperty(IArtifactDescriptor.DOWNLOAD_MD5, null);
-		//		destinationDescriptor.setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, null);
-
-		if (targetDescriptorProperties != null)
-			destinationDescriptor.addProperties(targetDescriptorProperties);
-
-		if (targetRepositoryProperties != null)
-			destinationDescriptor.addRepositoryProperties(targetRepositoryProperties);
-
-		OutputStream destination;
-		try {
-			destination = target.getOutputStream(destinationDescriptor);
-		} catch (ProvisionException e) {
-			setResult(e.getStatus());
-			return;
-		}
-
-		// Do the actual transfer
-		try {
-			setResult(getSourceRepository().getArtifact(descriptor, destination, monitor));
-			return;
-		} finally {
-			try {
-				destination.close();
-			} catch (IOException e) {
-				setResult(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.error_closing_stream, getArtifactKey(), target.getLocation()), e));
-			}
-		}
-	}
-
-	public String toString() {
-		return Messages.mirroring + getArtifactKey() + " into " + target; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java
deleted file mode 100644
index e9944f2..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.net.*;
-import java.util.*;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.Tracing;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.w3c.dom.*;
-
-/**
- * Mirror support class for repositories. This class implements
- * mirror support equivalent to the mirroring of update manager sites. A repository 
- * optionally provides a mirror URL via the {@link IRepository#PROP_MIRRORS_URL} key. 
- * The contents of the file at this URL is expected to be an XML document 
- * containing a list of <mirror> elements. The mirrors are assumed to be already 
- * sorted geographically with closer mirrors first.
- */
-public class MirrorSelector {
-	private static final double LOG2 = Math.log(2);
-
-	/**
-	 * Encapsulates information about a single mirror
-	 */
-	static class MirrorInfo implements Comparable {
-		long bytesPerSecond;
-		int failureCount;
-		private final int initialRank;
-		String locationString;
-
-		MirrorInfo(String location, int initialRank) {
-			this.initialRank = initialRank;
-			this.locationString = location;
-			if (!locationString.endsWith("/")) //$NON-NLS-1$
-				locationString = locationString + "/"; //$NON-NLS-1$
-			failureCount = 0;
-			bytesPerSecond = DownloadStatus.UNKNOWN_RATE;
-		}
-
-		/**
-		 * Comparison used to sort mirrors.
-		 */
-		public int compareTo(Object o) {
-			if (!(o instanceof MirrorInfo))
-				return 0;
-			MirrorInfo that = (MirrorInfo) o;
-			//less failures is better
-			if (this.failureCount != that.failureCount)
-				return this.failureCount - that.failureCount;
-			//faster is better
-			if (this.bytesPerSecond != that.bytesPerSecond)
-				return (int) (this.bytesPerSecond - that.failureCount);
-			//trust that initial rank indicates geographical proximity
-			return this.initialRank - that.initialRank;
-		}
-
-		public String toString() {
-			return "Mirror(" + locationString + ',' + failureCount + ',' + bytesPerSecond + ')'; //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * The URI of the base repository being mirrored.
-	 */
-	URI baseURI;
-
-	MirrorInfo[] mirrors;
-
-	private final IRepository repository;
-
-	private final Random random = new Random();
-
-	/**
-	 * Constructs a mirror support class for the given repository. Mirrors are
-	 * not contacted and the mirrorsURL document is not parsed until a
-	 * mirror location request is sent.
-	 */
-	public MirrorSelector(IRepository repository) {
-		this.repository = repository;
-		try {
-			URL repositoryURL = repository.getLocation();
-			if (repositoryURL != null)
-				this.baseURI = new URI(repositoryURL.toExternalForm());
-		} catch (URISyntaxException e) {
-			log("Error initializing mirrors for: " + repository.getLocation(), e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Parses the given mirror URL to obtain the list of mirrors. Returns the mirrors,
-	 * or null if mirrors could not be computed.
-	 * 
-	 * Originally copied from DefaultSiteParser.getMirrors in org.eclipse.update.core
-	 */
-	private MirrorInfo[] computeMirrors(String mirrorsURL) {
-		try {
-			String countryCode = Locale.getDefault().getCountry().toLowerCase();
-			int timeZone = (new GregorianCalendar()).get(Calendar.ZONE_OFFSET) / (60 * 60 * 1000);
-
-			if (mirrorsURL.indexOf('?') != -1) {
-				mirrorsURL = mirrorsURL + '&';
-			} else {
-				mirrorsURL = mirrorsURL + '?';
-			}
-			mirrorsURL = mirrorsURL + "countryCode=" + countryCode + "&timeZone=" + timeZone + "&responseType=xml"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-			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$
-			int mirrorCount = mirrorNodes.getLength();
-			MirrorInfo[] infos = new MirrorInfo[mirrorCount + 1];
-			for (int i = 0; i < mirrorCount; i++) {
-				Element mirrorNode = (Element) mirrorNodes.item(i);
-				String infoURL = mirrorNode.getAttribute("url"); //$NON-NLS-1$
-				infos[i] = new MirrorInfo(infoURL, i);
-			}
-			//p2: add the base site as the last resort mirror so we can track download speed and failure rate
-			infos[mirrorCount] = new MirrorInfo(repository.getLocation().toExternalForm(), mirrorCount);
-			return infos;
-		} catch (Exception e) {
-			// log if absolute url
-			if (mirrorsURL != null && (mirrorsURL.startsWith("http://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("https://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("file://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("ftp://") //$NON-NLS-1$
-			|| mirrorsURL.startsWith("jar://"))) //$NON-NLS-1$
-				log("Error processing mirrors URL: " + mirrorsURL, e); //$NON-NLS-1$
-			return null;
-		}
-	}
-
-	/**
-	 * Returns an equivalent location for the given artifact location in the base 
-	 * repository.  Always falls back to the given input location in case of failure
-	 * to compute mirrors. Never returns null.
-	 */
-	public synchronized String getMirrorLocation(String inputLocation) {
-		Assert.isNotNull(inputLocation);
-		if (baseURI == null)
-			return inputLocation;
-		URI relativeLocation = null;
-		try {
-			relativeLocation = baseURI.relativize(new URI(inputLocation));
-		} catch (URISyntaxException e) {
-			if (Tracing.DEBUG_MIRRORS)
-				log("Unable to make location relative: " + inputLocation, e); //$NON-NLS-1$
-		}
-		//if we failed to relativize the location, we can't select a mirror
-		if (relativeLocation == null || relativeLocation.isAbsolute())
-			return inputLocation;
-		MirrorInfo selectedMirror = selectMirror();
-		if (selectedMirror == null)
-			return inputLocation;
-		if (Tracing.DEBUG_MIRRORS)
-			Tracing.debug("Selected mirror for artifact " + inputLocation + ": " + selectedMirror); //$NON-NLS-1$ //$NON-NLS-2$
-		try {
-			return new URL(selectedMirror.locationString + relativeLocation.getPath()).toExternalForm();
-		} catch (MalformedURLException e) {
-			log("Unable to make location " + inputLocation + " relative to mirror " + selectedMirror.locationString, e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return inputLocation;
-	}
-
-	/**
-	 * Returns the mirror locations for this repository, or <code>null</code> if
-	 * they could not be computed.
-	 */
-	private MirrorInfo[] initMirrors() {
-		if (mirrors != null)
-			return mirrors;
-		String mirrorsURL = (String) repository.getProperties().get(IRepository.PROP_MIRRORS_URL);
-		if (mirrorsURL != null)
-			mirrors = computeMirrors(mirrorsURL);
-		return mirrors;
-	}
-
-	private void log(String message, Throwable exception) {
-		LogHelper.log(new Status(IStatus.ERROR, Activator.ID, message, exception));
-	}
-
-	/**
-	 * Reports the result of a mirror download
-	 */
-	public synchronized void reportResult(String toDownload, IStatus result) {
-		if (mirrors == null)
-			return;
-		for (int i = 0; i < mirrors.length; i++) {
-			MirrorInfo mirror = mirrors[i];
-			if (toDownload.startsWith(mirror.locationString)) {
-				if (!result.isOK() && result.getSeverity() != IStatus.CANCEL)
-					mirror.failureCount++;
-				if (result instanceof DownloadStatus) {
-					long oldRate = mirror.bytesPerSecond;
-					long newRate = ((DownloadStatus) result).getTransferRate();
-					//average old and new rate so one slow download doesn't ruin the mirror's reputation
-					if (oldRate > 0)
-						newRate = (oldRate + newRate) / 2;
-					mirror.bytesPerSecond = newRate;
-				}
-				if (Tracing.DEBUG_MIRRORS)
-					Tracing.debug("Updated mirror " + mirror); //$NON-NLS-1$
-				Arrays.sort(mirrors);
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Selects a mirror from the given list of mirrors. Returns null if a mirror
-	 * could not be found.
-	 */
-	private MirrorInfo selectMirror() {
-		initMirrors();
-		int mirrorCount;
-		if (mirrors == null || (mirrorCount = mirrors.length) == 0)
-			return null;
-		//this is a function that randomly selects a mirror based on a logarithmic
-		//distribution. Mirror 0 has a 1/2 chance of being selected, mirror 1 has a 1/4 chance, 
-		// mirror 2 has a 1/8 chance, etc. This introduces some variation in the mirror 
-		//selection, while still favoring better mirrors
-		int result = (int) (Math.log(random.nextInt(1 << Math.min(15, mirrorCount)) + 1) / LOG2);
-		if (result >= mirrorCount)
-			result = mirrorCount - 1;
-		MirrorInfo selected = mirrors[mirrorCount - 1 - result];
-		//if we selected a mirror that has failed in the past, revert to best available mirror
-		if (selected.failureCount > 0)
-			selected = mirrors[0];
-		//for now, don't tolerate failing mirrors
-		if (selected.failureCount > 0)
-			return null;
-		return selected;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/SignatureVerifier.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/SignatureVerifier.java
deleted file mode 100644
index 3a31c04..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/SignatureVerifier.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*  IBM - continuing development
-*******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.io.*;
-import java.security.GeneralSecurityException;
-import java.util.ArrayList;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.osgi.signedcontent.*;
-
-/**
- * The Pack200Unpacker expects an input containing ".jar.pack.gz" data.   
- */
-public class SignatureVerifier extends ProcessingStep {
-	private File inputFile;
-	private OutputStream tempStream;
-
-	public boolean areRequirementsSatisfied() {
-		return true;
-	}
-
-	public void write(int b) throws IOException {
-		getOutputStream().write(b);
-	}
-
-	private OutputStream getOutputStream() throws IOException {
-		if (tempStream != null)
-			return tempStream;
-		// store input stream in temporary file
-		inputFile = File.createTempFile("signatureFile", ".jar"); //$NON-NLS-1$ //$NON-NLS-2$
-		tempStream = new BufferedOutputStream(new FileOutputStream(inputFile));
-		return tempStream;
-	}
-
-	private void verify() throws IOException {
-		BufferedInputStream resultStream = null;
-		try {
-			if (tempStream == null)
-				// hmmm, no one wrote to this stream so there is nothing to pass on
-				return;
-			// Ok, so there is content, close the tempStream
-			tempStream.close();
-			setStatus(verifyContent());
-
-			// now write the  content to the final destination
-			resultStream = new BufferedInputStream(new FileInputStream(inputFile));
-			FileUtils.copyStream(resultStream, true, getDestination(), false);
-			resultStream = null;
-		} finally {
-			if (inputFile != null)
-				inputFile.delete();
-			if (resultStream != null)
-				resultStream.close();
-		}
-	}
-
-	private IStatus verifyContent() throws IOException {
-		SignedContentFactory verifierFactory = (SignedContentFactory) ServiceHelper.getService(Activator.getContext(), SignedContentFactory.class.getName());
-		SignedContent signedContent;
-		try {
-			signedContent = verifierFactory.getSignedContent(inputFile);
-		} catch (GeneralSecurityException e) {
-			return new Status(IStatus.ERROR, Activator.ID, Messages.SignatureVerification_failedRead + inputFile, e);
-		}
-		ArrayList allStatus = new ArrayList(0);
-		SignedContentEntry[] entries = signedContent.getSignedEntries();
-		for (int i = 0; i < entries.length; i++)
-			try {
-				entries[i].verify();
-			} catch (InvalidContentException e) {
-				allStatus.add(new Status(IStatus.ERROR, Activator.ID, Messages.SignatureVerification_invalidContent + entries[i].getName(), e));
-			}
-		if (allStatus.size() > 0)
-			return new MultiStatus(Activator.ID, IStatus.ERROR, (IStatus[]) allStatus.toArray(new IStatus[allStatus.size()]), Messages.SignatureVerification_invalidFileContent + inputFile, null);
-		return Status.OK_STATUS;
-	}
-
-	public void close() throws IOException {
-		// When we go to close we must have seen all the content we are going to see
-		// So before closing, verify and write the result to the destination
-		verify();
-		super.close();
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Transport.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Transport.java
deleted file mode 100644
index b89ec4c..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/Transport.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository;
-
-import java.io.OutputStream;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-public abstract class Transport {
-	public abstract IStatus download(String toDownload, OutputStream target, IProgressMonitor pm);
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/messages.properties b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/messages.properties
deleted file mode 100644
index eea6ced..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/messages.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-artifact_not_found=Artifact requested not found {0}.
-available_already_in=The artifact is already available in the repository {0}.
-downloading=Downloading {0}.
-error_closing_stream=Error closing the output stream for {0} on repository {1}. 
-
-FileDownloadError=Error downloading {0} to {1}. 
-io_failedRead=Unable to read repository at {0}.
-io_parseError=\
-	Error parsing simple artifact repository.
-io_incompatibleVersion=\
-	Simple artifact repository has incompatible version {0}; expected {1}.
-mirroring=Mirroring: 
-
-repoFailedWrite=Unable to write to repository: {0}.
-repoReadOnly=Cannot write because repository is read only: {0}
-
-repoMan_exists=Repository already exists at {0}.
-repoMan_failedRead=The repository could not be read: {0}.
-repoMan_internalError=Internal error.
-repoMan_notExists=No repository found at {0}.
-repoMan_unknownType=Unknown repository type at {0}.
-
-SignatureVerification_failedRead=Error reading signed content: 
-SignatureVerification_invalidContent=Invalid content: 
-SignatureVerification_invalidFileContent=File has invalid content: 
-	
-sar_downloading=Download {0} artifacts
-sar_downloadJobName=Install download 
-sar_failedMkdir=Failed to create directory {0}.
-sar_reportStatus=Problems downloading artifact: {0}.
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java
deleted file mode 100644
index 9d769aa..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository.simple;
-
-import java.io.*;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.Set;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Blob store which maps UUIDs to blobs on disk. The UUID is mapped
- * to a file in the file-system and the blob is the file contents. For scalability,
- * the blobs are split among 255 directories with the names 00 to FF.
- */
-public class BlobStore {
-	protected URL store;
-
-	protected boolean fileBased;
-	/** Limits the range of directories' names. */
-	protected byte mask;
-
-	//private static short[] randomArray = {213, 231, 37, 85, 211, 29, 161, 175, 187, 3, 147, 246, 170, 30, 202, 183, 242, 47, 254, 189, 25, 248, 193, 2, 119, 133, 125, 12, 76, 213, 219, 79, 69, 133, 202, 80, 150, 190, 157, 190, 80, 190, 219, 150, 169, 117, 95, 10, 77, 214, 233, 70, 5, 188, 44, 91, 165, 149, 177, 93, 17, 112, 4, 41, 230, 148, 188, 107, 213, 31, 52, 60, 111, 246, 226, 121, 129, 197, 144, 248, 92, 133, 96, 116, 104, 67, 74, 144, 185, 141, 96, 34, 182, 90, 36, 217, 28, 205, 107, 52, 201, 14, 8, 1, 27, 216, 60, 35, 251, 194, 7, 156, 32, 5, 145, 29, 96, 61, 110, 145, 50, 56, 235, 239, 170, 138, 17, 211, 56, 98, 101, 126, 27, 57, 211, 144, 206, 207, 179, 111, 160, 50, 243, 69, 106, 118, 155, 159, 28, 57, 11, 175, 43, 173, 96, 181, 99, 169, 171, 156, 246, 243, 30, 198, 251, 81, 77, 92, 160, 235, 215, 187, 23, 71, 58, 247, 127, 56, 118, 132, 79, 188, 42, 188, 158, 121, 255, 65, 154, 118, 172, 217, 4, 47, 105, 204, 135, 27, 43, 90, 9, 31, 59, 115, 193, 28, 55, 101, 9, 117, 211, 112, 61, 55, 23, 235, 51, 104, 123, 138, 76, 148, 115, 119, 81, 54, 39, 46, 149, 191, 79, 16, 222, 69, 219, 136, 148, 181, 77, 250, 101, 223, 140, 194, 141, 44, 195, 217, 31, 223, 207, 149, 245, 115, 243, 183};
-	private static byte[] randomArray = {-43, -25, 37, 85, -45, 29, -95, -81, -69, 3, -109, -10, -86, 30, -54, -73, -14, 47, -2, -67, 25, -8, -63, 2, 119, -123, 125, 12, 76, -43, -37, 79, 69, -123, -54, 80, -106, -66, -99, -66, 80, -66, -37, -106, -87, 117, 95, 10, 77, -42, -23, 70, 5, -68, 44, 91, -91, -107, -79, 93, 17, 112, 4, 41, -26, -108, -68, 107, -43, 31, 52, 60, 111, -10, -30, 121, -127, -59, -112, -8, 92, -123, 96, 116, 104, 67, 74, -112, -71, -115, 96, 34, -74, 90, 36, -39, 28, -51, 107, 52, -55, 14, 8, 1, 27, -40, 60, 35, -5, -62, 7, -100, 32, 5, -111, 29, 96, 61, 110, -111, 50, 56, -21, -17, -86, -118, 17, -45, 56, 98, 101, 126, 27, 57, -45, -112, -50, -49, -77, 111, -96, 50, -13, 69, 106, 118, -101, -97, 28, 57, 11, -81, 43, -83, 96, -75, 99, -87, -85, -100, -10, -13, 30,
-			-58, -5, 81, 77, 92, -96, -21, -41, -69, 23, 71, 58, -9, 127, 56, 118, -124, 79, -68, 42, -68, -98, 121, -1, 65, -102, 118, -84, -39, 4, 47, 105, -52, -121, 27, 43, 90, 9, 31, 59, 115, -63, 28, 55, 101, 9, 117, -45, 112, 61, 55, 23, -21, 51, 104, 123, -118, 76, -108, 115, 119, 81, 54, 39, 46, -107, -65, 79, 16, -34, 69, -37, -120, -108, -75, 77, -6, 101, -33, -116, -62, -115, 44, -61, -39, 31, -33, -49, -107, -11, 115, -13, -73,};
-
-	/**
-	 * The limit is the maximum number of directories managed by this store.
-	 * This number must be power of 2 and do not exceed 256. The location
-	 * should be an existing valid directory.
-	 */
-	public BlobStore(URL store, int limit) {
-		Assert.isNotNull(store);
-		this.store = store;
-		fileBased = "file".equalsIgnoreCase(store.getProtocol()); //$NON-NLS-1$
-		if (fileBased)
-			Assert.isTrue(!new File(store.getPath()).isFile());
-		Assert.isTrue(limit == 256 || limit == 128 || limit == 64 || limit == 32 || limit == 16 || limit == 8 || limit == 4 || limit == 2 || limit == 1);
-		mask = (byte) (limit - 1);
-	}
-
-	public OutputStream getOutputStream(byte[] uuid) throws IOException {
-		if (!fileBased)
-			return null;
-		new File(folderFor(uuid)).mkdir();
-		return new FileOutputStream(fileFor(uuid));
-	}
-
-	/* (non-Javadoc)
-	 * @see UniversalUniqueIdentifier#appendByteString(StringBuffer, byte)
-	 */
-	private void appendByteString(StringBuffer buffer, byte value) {
-		String hexString;
-		if (value < 0)
-			hexString = Integer.toHexString(256 + value);
-		else
-			hexString = Integer.toHexString(value);
-		if (hexString.length() == 1)
-			buffer.append("0"); //$NON-NLS-1$
-		buffer.append(hexString);
-	}
-
-	/* (non-Javadoc)
-	 * Converts an array of bytes into a String.
-	 *
-	 * @see UniversalUniqueIdentifier#toString()
-	 */
-	private String bytesToHexString(byte[] b) {
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < b.length; i++)
-			appendByteString(buffer, b[i]);
-		return buffer.toString();
-	}
-
-	/**
-	 * Deletes a blobFile.
-	 */
-	public void deleteBlob(byte[] uuid) {
-		Assert.isNotNull(uuid);
-		if (fileBased)
-			new File(fileFor(uuid)).delete();
-	}
-
-	/**
-	 * Delete all of the blobs in the given set.
-	 */
-	public void deleteBlobs(Set set) {
-		for (Iterator i = set.iterator(); i.hasNext();)
-			deleteBlob((byte[]) i.next());
-	}
-
-	public String fileFor(byte[] uuid) {
-		return folderFor(uuid) + bytesToHexString(uuid);
-	}
-
-	/**
-	 * Find out the name of the directory that fits better to this UUID.
-	 */
-	public String folderFor(byte[] uuid) {
-		byte hash = hashUUIDbytes(uuid);
-		hash &= mask; // limit the range of the directory
-		return store + Integer.toHexString(hash + (128 & mask)) + "/"; // +(128 & mask) makes sure 00h is the lower value //$NON-NLS-1$
-	}
-
-	public InputStream getBlob(byte[] uuid) throws IOException {
-		return new URL(fileFor(uuid)).openStream();
-	}
-
-	/**
-	 * Converts a byte array into a byte hash representation. It is used to
-	 * get a directory name.
-	 */
-	protected byte hashUUIDbytes(byte[] uuid) {
-		byte hash = 0;
-		for (int i = 0; i < uuid.length; i++)
-			hash ^= randomArray[uuid[i] + 128]; // +128 makes sure the index is >0
-		return hash;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/DownloadJob.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/DownloadJob.java
deleted file mode 100644
index 0001a28..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/DownloadJob.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Genuitec, LLC and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Genuitec, LLC - initial API and implementation
- * 						IBM Corporation - ongoing maintenance
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository.simple;
-
-import java.util.LinkedList;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRequest;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRequest;
-
-public class DownloadJob extends Job {
-	static final Object FAMILY = new Object();
-
-	private LinkedList requestsPending;
-	private SimpleArtifactRepository repository;
-	private IProgressMonitor masterMonitor;
-	private MultiStatus overallStatus;
-
-	DownloadJob(String name) {
-		super(name);
-		setSystem(true);
-	}
-
-	void initialize(SimpleArtifactRepository repository, LinkedList requestsPending, IProgressMonitor masterMonitor, MultiStatus overallStatus) {
-		this.repository = repository;
-		this.requestsPending = requestsPending;
-		this.masterMonitor = masterMonitor;
-		this.overallStatus = overallStatus;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
-	 */
-	public boolean belongsTo(Object family) {
-		return family == FAMILY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected IStatus run(IProgressMonitor jobMonitor) {
-		jobMonitor.beginTask("Downloading software", IProgressMonitor.UNKNOWN);
-		do {
-			// get the request we are going to process
-			IArtifactRequest request;
-			synchronized (requestsPending) {
-				if (requestsPending.isEmpty())
-					break;
-				request = (IArtifactRequest) requestsPending.removeFirst();
-			}
-			if (masterMonitor.isCanceled())
-				return Status.CANCEL_STATUS;
-			// process the actual request
-			SubProgressMonitor subMonitor = new SubProgressMonitor(masterMonitor, 1);
-			subMonitor.beginTask("", 1); //$NON-NLS-1$
-			try {
-				IStatus status = repository.getArtifact((ArtifactRequest) request, subMonitor);
-				if (!status.isOK()) {
-					synchronized (overallStatus) {
-						overallStatus.add(status);
-					}
-				}
-			} finally {
-				subMonitor.done();
-			}
-		} while (true);
-
-		jobMonitor.done();
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/Mapper.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/Mapper.java
deleted file mode 100644
index b5e6908..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/Mapper.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *		compeople AG (Stefan Liebig) - various ongoing maintenance
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository.simple;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.osgi.framework.*;
-
-public class Mapper {
-	private Filter[] filters;
-	private String[] outputStrings;
-
-	private static final String REPOURL = "repoUrl"; //$NON-NLS-1$
-	private static final String CLASSIFIER = "classifier"; //$NON-NLS-1$
-	private static final String FORMAT = "format"; //$NON-NLS-1$
-	private static final String ID = "id"; //$NON-NLS-1$
-	private static final String VERSION = "version"; //$NON-NLS-1$
-
-	public Mapper() {
-		filters = new Filter[0];
-		outputStrings = new String[0];
-	}
-
-	/**
-	 * mapping rule: LDAP filter --> output value
-	 * the more specific filters should be given first.
-	 */
-	public void initialize(BundleContext ctx, String[][] mappingRules) {
-		filters = new Filter[mappingRules.length];
-		outputStrings = new String[mappingRules.length];
-		for (int i = 0; i < mappingRules.length; i++) {
-			try {
-				filters[i] = ctx.createFilter(mappingRules[i][0]);
-				outputStrings[i] = mappingRules[i][1];
-			} catch (InvalidSyntaxException e) {
-				//TODO Neeed to process this
-				e.printStackTrace();
-			}
-		}
-	}
-
-	public String map(String repoUrl, String classifier, String id, String version, String format) {
-		Dictionary values = new Hashtable(5);
-		if (repoUrl != null)
-			values.put(REPOURL, repoUrl);
-
-		if (classifier != null)
-			values.put(CLASSIFIER, classifier);
-
-		if (id != null)
-			values.put(ID, id);
-
-		if (version != null)
-			values.put(VERSION, version);
-
-		if (format != null)
-			values.put(FORMAT, format);
-
-		for (int i = 0; i < filters.length; i++) {
-			if (filters[i].match(values))
-				return doReplacement(outputStrings[i], repoUrl, classifier, id, version, format);
-		}
-		return null;
-	}
-
-	private String doReplacement(String pattern, String repoUrl, String classifier, String id, String version, String format) {
-		// currently our mapping rules assume the repo URL is not "/" terminated. 
-		// This may be the case for repoURLs in the root of a URL space e.g. root of a jar file or file:/c:/
-		if (repoUrl.endsWith("/")) //$NON-NLS-1$
-			repoUrl = repoUrl.substring(0, repoUrl.length() - 1);
-
-		StringBuffer output = new StringBuffer(pattern);
-		int index = 0;
-		while (index < output.length()) {
-			int beginning = output.indexOf("${", index); //$NON-NLS-1$
-			if (beginning == -1)
-				return output.toString();
-
-			int end = output.indexOf("}", beginning); //$NON-NLS-1$
-			if (end == -1)
-				return pattern;
-
-			String varName = output.substring(beginning + 2, end);
-			String varValue = null;
-			if (varName.equalsIgnoreCase(CLASSIFIER)) {
-				varValue = classifier;
-			} else if (varName.equalsIgnoreCase(ID)) {
-				varValue = id;
-			} else if (varName.equalsIgnoreCase(VERSION)) {
-				varValue = version;
-			} else if (varName.equalsIgnoreCase(REPOURL)) {
-				varValue = repoUrl;
-			} else if (varName.equalsIgnoreCase(FORMAT)) {
-				varValue = format;
-			}
-			if (varValue == null)
-				varValue = ""; //$NON-NLS-1$
-
-			output.replace(beginning, end + 1, varValue);
-			index = beginning + varValue.length();
-		}
-		return output.toString();
-	}
-
-	public String toString() {
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < filters.length; i++) {
-			result.append(filters[i]).append('-').append('>').append(outputStrings[i]).append('\n');
-		}
-		return result.toString();
-	}
-
-	public String[][] serialize() {
-		String[][] result = new String[filters.length][2];
-		for (int i = 0; i < filters.length; i++) {
-			result[i][0] = filters[i].toString();
-			result[i][1] = outputStrings[i];
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
deleted file mode 100644
index 0b99690..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
+++ /dev/null
@@ -1,843 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- * 						Genuitec, LLC - support for multi-threaded downloads
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository.simple;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.jar.JarEntry;
-import java.util.jar.JarOutputStream;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.equinox.internal.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.AbstractArtifactRepository;
-import org.eclipse.osgi.util.NLS;
-
-public class SimpleArtifactRepository extends AbstractArtifactRepository implements IArtifactRepository, IFileArtifactRepository {
-	/** 
-	 * A boolean property controlling whether mirroring is enabled.
-	 */
-	public static final boolean MIRRORS_ENABLED = !"false".equals(Activator.getContext().getProperty("eclipse.p2.mirrors")); //$NON-NLS-1$//$NON-NLS-2$
-
-	/** 
-	 * The key for a integer property controls the maximum number
-	 * of threads that should be used when optimizing downloads from a remote
-	 * artifact repository.
-	 */
-	public static final String PROP_MAX_THREADS = "eclipse.p2.max.threads"; //$NON-NLS-1$
-
-	/**
-	 * Allows override of whether threading should be used.
-	 */
-	public static final String PROP_FORCE_THREADING = "eclipse.p2.force.threading"; //$NON-NLS-1$
-
-	public class ArtifactOutputStream extends OutputStream implements IStateful {
-		private boolean closed;
-		private long count = 0;
-		private IArtifactDescriptor descriptor;
-		private OutputStream destination;
-		private File file;
-		private IStatus status = Status.OK_STATUS;
-
-		public ArtifactOutputStream(OutputStream os, IArtifactDescriptor descriptor) {
-			this(os, descriptor, null);
-		}
-
-		public ArtifactOutputStream(OutputStream os, IArtifactDescriptor descriptor, File file) {
-			this.destination = os;
-			this.descriptor = descriptor;
-			this.file = file;
-		}
-
-		public void close() throws IOException {
-			if (closed)
-				return;
-			closed = true;
-
-			try {
-				destination.close();
-			} catch (IOException e) {
-				// cleanup if possible
-				if (file != null)
-					delete(file);
-				if (getStatus().isOK())
-					throw e;
-				// if the stream has already been e.g. canceled, we can return - the status is already set correctly 
-				return;
-			}
-			// if the steps ran ok and there was actual content, write the artifact descriptor
-			// TODO the count check is a bit bogus but helps in some error cases (e.g., the optimizer)
-			// where errors occurred in a processing step earlier in the chain.  We likely need a better
-			// or more explicit way of handling this case.
-			if (getStatus().isOK() && ProcessingStepHandler.checkStatus(destination).isOK() && count > 0) {
-				((ArtifactDescriptor) descriptor).setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, Long.toString(count));
-				addDescriptor(descriptor);
-			} else if (file != null)
-				// cleanup if possible
-				delete(file);
-		}
-
-		public IStatus getStatus() {
-			return status;
-		}
-
-		public void setStatus(IStatus status) {
-			this.status = status == null ? Status.OK_STATUS : status;
-		}
-
-		public void write(byte[] b) throws IOException {
-			destination.write(b);
-			count += b.length;
-		}
-
-		public void write(byte[] b, int off, int len) throws IOException {
-			destination.write(b, off, len);
-			count += len;
-		}
-
-		public void write(int b) throws IOException {
-			destination.write(b);
-			count++;
-		}
-	}
-
-	// TODO: optimize
-	// we could stream right into the folder
-	public static class ZippedFolderOutputStream extends OutputStream {
-
-		private final File folder;
-		private final FileOutputStream fos;
-		private final File zipFile;
-
-		public ZippedFolderOutputStream(File folder) throws IOException {
-			this.folder = folder;
-			zipFile = File.createTempFile(folder.getName(), JAR_EXTENSION, null);
-			fos = new FileOutputStream(zipFile);
-		}
-
-		public void close() throws IOException {
-			fos.close();
-			FileUtils.unzipFile(zipFile, folder);
-			zipFile.delete();
-		}
-
-		public void flush() throws IOException {
-			fos.flush();
-		}
-
-		public String toString() {
-			return fos.toString();
-		}
-
-		public void write(byte[] b) throws IOException {
-			fos.write(b);
-		}
-
-		public void write(byte[] b, int off, int len) throws IOException {
-			fos.write(b, off, len);
-		}
-
-		public void write(int b) throws IOException {
-			fos.write(b);
-		}
-	}
-
-	private static final String ARTIFACT_FOLDER = "artifact.folder"; //$NON-NLS-1$
-	private static final String ARTIFACT_REFERENCE = "artifact.reference"; //$NON-NLS-1$
-	private static final String ARTIFACT_UUID = "artifact.uuid"; //$NON-NLS-1$
-	static final private String BLOBSTORE = ".blobstore/"; //$NON-NLS-1$
-	static final private String CONTENT_FILENAME = "artifacts"; //$NON-NLS-1$
-	static final private String[][] PACKED_MAPPING_RULES = { {"(& (classifier=osgi.bundle) (format=packed))", "${repoUrl}/plugins/${id}_${version}.jar.pack.gz"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=osgi.bundle))", "${repoUrl}/plugins/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=binary))", "${repoUrl}/binary/${id}_${version}"}, //$NON-NLS-1$ //$NON-NLS-2$
-			{"(& (classifier=org.eclipse.update.feature))", "${repoUrl}/features/${id}_${version}.jar"}}; //$NON-NLS-1$//$NON-NLS-2$
-
-	static final private String[][] DEFAULT_MAPPING_RULES = { {"(& (classifier=osgi.bundle))", "${repoUrl}/plugins/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=binary))", "${repoUrl}/binary/${id}_${version}"}, //$NON-NLS-1$ //$NON-NLS-2$
-			{"(& (classifier=org.eclipse.update.feature))", "${repoUrl}/features/${id}_${version}.jar"}}; //$NON-NLS-1$//$NON-NLS-2$
-	private static final String JAR_EXTENSION = ".jar"; //$NON-NLS-1$
-	static final private String REPOSITORY_TYPE = IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY;
-
-	static final private Integer REPOSITORY_VERSION = new Integer(1);
-	private static final String XML_EXTENSION = ".xml"; //$NON-NLS-1$
-	protected Set artifactDescriptors = new HashSet();
-	private transient BlobStore blobStore;
-	transient private Mapper mapper = new Mapper();
-
-	static final private String PACKED_FORMAT = "packed"; //$NON-NLS-1$
-	static final private String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$
-
-	private static final int DEFAULT_MAX_THREADS = 4;
-
-	protected String[][] mappingRules = DEFAULT_MAPPING_RULES;
-
-	private boolean signatureVerification = false;
-	private MirrorSelector mirrors;
-
-	static void delete(File toDelete) {
-		if (toDelete.isFile()) {
-			toDelete.delete();
-			return;
-		}
-		if (toDelete.isDirectory()) {
-			File[] children = toDelete.listFiles();
-			if (children != null) {
-				for (int i = 0; i < children.length; i++) {
-					delete(children[i]);
-				}
-			}
-			toDelete.delete();
-		}
-	}
-
-	public static URL getActualLocation(URL base, boolean compress) {
-		return getActualLocation(base, compress ? JAR_EXTENSION : XML_EXTENSION);
-	}
-
-	private static URL getActualLocation(URL base, String extension) {
-		final String name = CONTENT_FILENAME + extension;
-		String spec = base.toExternalForm();
-		if (spec.endsWith(name))
-			return base;
-		if (spec.endsWith("/")) //$NON-NLS-1$
-			spec += name;
-		else
-			spec += "/" + name; //$NON-NLS-1$
-		try {
-			return new URL(spec);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-
-	public static URL getBlobStoreLocation(URL base) {
-		String spec = base.toExternalForm();
-		if (spec.endsWith("/")) //$NON-NLS-1$
-			spec += BLOBSTORE;
-		else
-			spec += "/" + BLOBSTORE; //$NON-NLS-1$
-		try {
-			return new URL(spec);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-
-	public SimpleArtifactRepository(String name, String type, String version, String description, String provider, boolean verifySignature, Set artifacts, String[][] mappingRules, Map properties) {
-		super(name, type, version, null, description, provider);
-		signatureVerification = verifySignature;
-		this.artifactDescriptors.addAll(artifacts);
-		this.mappingRules = mappingRules;
-		this.properties.putAll(properties);
-	}
-
-	public SimpleArtifactRepository(String repositoryName, URL location) {
-		super(repositoryName, REPOSITORY_TYPE, REPOSITORY_VERSION.toString(), location, null, null);
-		initializeAfterLoad(location);
-	}
-
-	public synchronized void addDescriptor(IArtifactDescriptor toAdd) {
-		// TODO perhaps the argument here should be ArtifactDescriptor.  IArtifactDescriptors are for 
-		// people who are reading the repository.
-		// TODO: here we may want to ensure that the artifact has not been added concurrently
-		((ArtifactDescriptor) toAdd).setRepository(this);
-		artifactDescriptors.add(toAdd);
-		save();
-	}
-
-	public synchronized void addDescriptors(IArtifactDescriptor[] descriptors) {
-
-		for (int i = 0; i < descriptors.length; i++) {
-			((ArtifactDescriptor) descriptors[i]).setRepository(this);
-			artifactDescriptors.add(descriptors[i]);
-		}
-		save();
-	}
-
-	private synchronized OutputStream addPostSteps(ProcessingStepHandler handler, IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		ArrayList steps = new ArrayList();
-		steps.add(new SignatureVerifier());
-		//		if (md5Verification)
-		//			steps.add(new MD5Verifier(descriptor.getProperty(IArtifactDescriptor.ARTIFACT_MD5)));
-		if (steps.isEmpty())
-			return destination;
-		ProcessingStep[] stepArray = (ProcessingStep[]) steps.toArray(new ProcessingStep[steps.size()]);
-		// TODO should probably be using createAndLink here
-		return handler.link(stepArray, destination, monitor);
-	}
-
-	private OutputStream addPreSteps(ProcessingStepHandler handler, IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		ArrayList steps = new ArrayList();
-		// Add steps here if needed
-		if (steps.isEmpty())
-			return destination;
-		ProcessingStep[] stepArray = (ProcessingStep[]) steps.toArray(new ProcessingStep[steps.size()]);
-		// TODO should probably be using createAndLink here
-		return handler.link(stepArray, destination, monitor);
-	}
-
-	private byte[] bytesFromHexString(String string) {
-		byte[] bytes = new byte[UniversalUniqueIdentifier.BYTES_SIZE];
-		for (int i = 0; i < string.length(); i += 2) {
-			String byteString = string.substring(i, i + 2);
-			bytes[i / 2] = (byte) Integer.parseInt(byteString, 16);
-		}
-		return bytes;
-	}
-
-	private String bytesToHexString(byte[] bytes) {
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < bytes.length; i++) {
-			String hexString;
-			if (bytes[i] < 0)
-				hexString = Integer.toHexString(256 + bytes[i]);
-			else
-				hexString = Integer.toHexString(bytes[i]);
-			if (hexString.length() == 1)
-				buffer.append("0"); //$NON-NLS-1$
-			buffer.append(hexString);
-		}
-		return buffer.toString();
-	}
-
-	public synchronized boolean contains(IArtifactDescriptor descriptor) {
-		return artifactDescriptors.contains(descriptor);
-	}
-
-	public synchronized boolean contains(IArtifactKey key) {
-		for (Iterator iterator = artifactDescriptors.iterator(); iterator.hasNext();) {
-			IArtifactDescriptor descriptor = (IArtifactDescriptor) iterator.next();
-			if (descriptor.getArtifactKey().equals(key))
-				return true;
-		}
-		return false;
-	}
-
-	public synchronized String createLocation(ArtifactDescriptor descriptor) {
-		if (flatButPackedEnabled(descriptor)) {
-			return getLocationForPackedButFlatArtifacts(descriptor);
-		}
-		// if the descriptor is canonical, clear out any UUID that might be set and use the Mapper
-		if (descriptor.getProcessingSteps().length == 0) {
-			descriptor.setProperty(ARTIFACT_UUID, null);
-			IArtifactKey key = descriptor.getArtifactKey();
-			String result = mapper.map(location.toExternalForm(), key.getClassifier(), key.getId(), key.getVersion().toString(), descriptor.getProperty(IArtifactDescriptor.FORMAT));
-			if (result != null) {
-				if (isFolderBased(descriptor) && result.endsWith(JAR_EXTENSION))
-					return result.substring(0, result.lastIndexOf(JAR_EXTENSION));
-
-				return result;
-			}
-		}
-
-		// Otherwise generate a location by creating a UUID, remembering it in the properties 
-		// and computing the location
-		byte[] bytes = new UniversalUniqueIdentifier().toBytes();
-		descriptor.setProperty(ARTIFACT_UUID, bytesToHexString(bytes));
-		return blobStore.fileFor(bytes);
-	}
-
-	/**
-	 * Removes the given descriptor, and the physical artifact corresponding
-	 * to that descriptor. Returns <code>true</code> if and only if the
-	 * descriptor existed in the repository, and was successfully removed.
-	 */
-	private boolean doRemoveArtifact(IArtifactDescriptor descriptor) {
-		if (((ArtifactDescriptor) descriptor).getRepositoryProperty(ARTIFACT_REFERENCE) == null) {
-			File file = getArtifactFile(descriptor);
-			if (file == null)
-				return false;
-			delete(file);
-			if (file.exists())
-				return false;
-		}
-		return artifactDescriptors.remove(descriptor);
-	}
-
-	protected IStatus downloadArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		if (isFolderBased(descriptor)) {
-			File artifactFolder = getArtifactFile(descriptor);
-			// TODO: optimize and ensure manifest is written first
-			File zipFile = null;
-			try {
-				zipFile = File.createTempFile(artifactFolder.getName(), JAR_EXTENSION, null);
-				FileUtils.zip(artifactFolder.listFiles(), zipFile);
-				FileInputStream fis = new FileInputStream(zipFile);
-				FileUtils.copyStream(fis, true, destination, false);
-			} catch (IOException e) {
-				return new Status(IStatus.ERROR, Activator.ID, e.getMessage());
-			} finally {
-				if (zipFile != null)
-					zipFile.delete();
-			}
-			return Status.OK_STATUS;
-		}
-
-		//download from the best available mirror
-		String baseLocation = getLocation(descriptor);
-		String mirrorLocation = getMirror(baseLocation);
-		IStatus result = getTransport().download(mirrorLocation, destination, monitor);
-		if (mirrors != null)
-			mirrors.reportResult(mirrorLocation, result);
-		if (result.isOK() || baseLocation.equals(mirrorLocation))
-			return result;
-		//maybe we hit a bad mirror - try the base location
-		return getTransport().download(baseLocation, destination, monitor);
-	}
-
-	/**
-	 * Returns an equivalent mirror location for the given artifact location.
-	 * @param baseLocation The location of the artifact in this repository
-	 * @return the Location of the artifact in this repository, or an equivalent mirror
-	 */
-	private synchronized String getMirror(String baseLocation) {
-		if (!MIRRORS_ENABLED || (!isForceThreading() && isLocal()))
-			return baseLocation;
-		if (mirrors == null)
-			mirrors = new MirrorSelector(this);
-		return mirrors.getMirrorLocation(baseLocation);
-	}
-
-	public Object getAdapter(Class adapter) {
-		// if we are adapting to file or writable repositories then make sure we have a file location
-		if (adapter == IFileArtifactRepository.class)
-			if (!isLocal())
-				return null;
-		return super.getAdapter(adapter);
-	}
-
-	IStatus getArtifact(ArtifactRequest request, IProgressMonitor monitor) {
-		request.setSourceRepository(this);
-		request.perform(monitor);
-		return request.getResult();
-	}
-
-	public IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		ProcessingStepHandler handler = new ProcessingStepHandler();
-		destination = processDestination(handler, descriptor, destination, monitor);
-		IStatus status = ProcessingStepHandler.checkStatus(destination);
-		if (!status.isOK() && status.getSeverity() != IStatus.INFO)
-			return status;
-
-		status = downloadArtifact(descriptor, destination, monitor);
-		return reportStatus(descriptor, destination, status);
-	}
-
-	public synchronized IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key) {
-		ArrayList result = new ArrayList();
-		for (Iterator iterator = artifactDescriptors.iterator(); iterator.hasNext();) {
-			IArtifactDescriptor descriptor = (IArtifactDescriptor) iterator.next();
-			if (descriptor.getArtifactKey().equals(key))
-				result.add(descriptor);
-		}
-		return (IArtifactDescriptor[]) result.toArray(new IArtifactDescriptor[result.size()]);
-	}
-
-	public File getArtifactFile(IArtifactDescriptor descriptor) {
-		String result = getLocation(descriptor);
-		if (result == null || !result.startsWith("file:")) //$NON-NLS-1$
-			return null;
-		return new File(result.substring(5));
-	}
-
-	public File getArtifactFile(IArtifactKey key) {
-		IArtifactDescriptor descriptor = getCompleteArtifactDescriptor(key);
-		if (descriptor == null)
-			return null;
-		return getArtifactFile(descriptor);
-	}
-
-	public synchronized IArtifactKey[] getArtifactKeys() {
-		// there may be more descriptors than keys to collect up the unique keys
-		HashSet result = new HashSet(artifactDescriptors.size());
-		for (Iterator it = artifactDescriptors.iterator(); it.hasNext();)
-			result.add(((IArtifactDescriptor) it.next()).getArtifactKey());
-		return (IArtifactKey[]) result.toArray(new IArtifactKey[result.size()]);
-	}
-
-	public IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor) {
-		final MultiStatus overallStatus = new MultiStatus(Activator.ID, IStatus.OK, null, null);
-		LinkedList requestsPending = new LinkedList(Arrays.asList(requests));
-
-		int numberOfJobs = Math.min(requests.length, getMaximumThreads());
-		if (numberOfJobs <= 1 || (!isForceThreading() && isLocal())) {
-			SubMonitor subMonitor = SubMonitor.convert(monitor, requests.length);
-			try {
-				for (int i = 0; i < requests.length; i++) {
-					if (monitor.isCanceled())
-						return Status.CANCEL_STATUS;
-					IStatus result = getArtifact((ArtifactRequest) requests[i], subMonitor.newChild(1));
-					if (!result.isOK())
-						overallStatus.add(result);
-				}
-			} finally {
-				subMonitor.done();
-			}
-		} else {
-			// initialize the various jobs needed to process the get artifact requests
-			monitor.beginTask(NLS.bind(Messages.sar_downloading, Integer.toString(requests.length)), requests.length);
-			try {
-				DownloadJob jobs[] = new DownloadJob[numberOfJobs];
-				for (int i = 0; i < numberOfJobs; i++) {
-					jobs[i] = new DownloadJob(Messages.sar_downloadJobName + i);
-					jobs[i].initialize(this, requestsPending, monitor, overallStatus);
-					jobs[i].schedule();
-				}
-				// wait for all the jobs to complete
-				try {
-					Job.getJobManager().join(DownloadJob.FAMILY, null);
-				} catch (InterruptedException e) {
-					//ignore
-				}
-			} finally {
-				monitor.done();
-			}
-		}
-		return (monitor.isCanceled() ? Status.CANCEL_STATUS : overallStatus);
-	}
-
-	public synchronized IArtifactDescriptor getCompleteArtifactDescriptor(IArtifactKey key) {
-		for (Iterator iterator = artifactDescriptors.iterator(); iterator.hasNext();) {
-			IArtifactDescriptor desc = (IArtifactDescriptor) iterator.next();
-			// look for a descriptor that matches the key and is "complete"
-			if (desc.getArtifactKey().equals(key) && desc.getProcessingSteps().length == 0)
-				return desc;
-		}
-		return null;
-	}
-
-	public synchronized Set getDescriptors() {
-		return artifactDescriptors;
-	}
-
-	/**
-	 * Typically non-canonical forms of the artifact are stored in the blob store.
-	 * However, we support having the pack200 files alongside the canonical artifact
-	 * for compatibility with the format used in optimized update sites.  We call
-	 * this arrangement "flat but packed".
-	 */
-	private boolean flatButPackedEnabled(IArtifactDescriptor descriptor) {
-		return Boolean.TRUE.toString().equals(getProperties().get(PUBLISH_PACK_FILES_AS_SIBLINGS)) && PACKED_FORMAT.equals(descriptor.getProperty(IArtifactDescriptor.FORMAT));
-	}
-
-	/**
-	 * @see #flatButPackedEnabled(IArtifactDescriptor)
-	 */
-	private String getLocationForPackedButFlatArtifacts(IArtifactDescriptor descriptor) {
-		IArtifactKey key = descriptor.getArtifactKey();
-		return mapper.map(location.toExternalForm(), key.getClassifier(), key.getId(), key.getVersion().toString(), descriptor.getProperty(IArtifactDescriptor.FORMAT));
-	}
-
-	public synchronized String getLocation(IArtifactDescriptor descriptor) {
-		// if the artifact has a uuid then use it
-		String uuid = descriptor.getProperty(ARTIFACT_UUID);
-		if (uuid != null)
-			return blobStore.fileFor(bytesFromHexString(uuid));
-
-		if (flatButPackedEnabled(descriptor)) {
-			return getLocationForPackedButFlatArtifacts(descriptor);
-		}
-
-		// if the artifact is just a reference then return the reference location
-		if (descriptor instanceof ArtifactDescriptor) {
-			String artifactReference = ((ArtifactDescriptor) descriptor).getRepositoryProperty(ARTIFACT_REFERENCE);
-			if (artifactReference != null)
-				return artifactReference;
-		}
-
-		// if the descriptor is complete then use the mapping rules...
-		if (descriptor.getProcessingSteps().length == 0) {
-			IArtifactKey key = descriptor.getArtifactKey();
-			String result = mapper.map(location.toExternalForm(), key.getClassifier(), key.getId(), key.getVersion().toString(), descriptor.getProperty(IArtifactDescriptor.FORMAT));
-			if (result != null) {
-				if (isFolderBased(descriptor) && result.endsWith(JAR_EXTENSION))
-					return result.substring(0, result.lastIndexOf(JAR_EXTENSION));
-
-				return result;
-			}
-		}
-
-		// in the end there is not enough information so return null 
-		return null;
-	}
-
-	/**
-	 * Returns the maximum number of concurrent download threads.
-	 */
-	private int getMaximumThreads() {
-		try {
-			String maxThreadString = (String) getProperties().get(PROP_MAX_THREADS);
-			if (maxThreadString != null)
-				return Math.max(1, Integer.parseInt(maxThreadString));
-		} catch (NumberFormatException nfe) {
-			// return default number of threads
-		}
-		return DEFAULT_MAX_THREADS;
-	}
-
-	public OutputStream getOutputStream(IArtifactDescriptor descriptor) throws ProvisionException {
-		assertModifiable();
-		// Check if the artifact is already in this repository
-		if (contains(descriptor)) {
-			String msg = NLS.bind(Messages.available_already_in, getLocation().toExternalForm());
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.ARTIFACT_EXISTS, msg, null));
-		}
-
-		// create a copy of the original descriptor that we can manipulate
-		ArtifactDescriptor newDescriptor = new ArtifactDescriptor(descriptor);
-		if (isFolderBased(descriptor))
-			newDescriptor.setRepositoryProperty(ARTIFACT_FOLDER, Boolean.TRUE.toString());
-
-		// Determine writing location
-		String newLocation = createLocation(newDescriptor);
-		String file = null;
-		try {
-			file = new URL(newLocation).getFile();
-		} catch (MalformedURLException e1) {
-			// This should not happen
-			Assert.isTrue(false, "Unexpected failure: " + e1); //$NON-NLS-1$
-		}
-
-		// TODO at this point we have to assume that the repository is file-based.  Eventually 
-		// we should end up with writeable URLs...
-		// Make sure that the file does not exist and that the parents do
-		File outputFile = new File(file);
-		if (outputFile.exists()) {
-			System.err.println("Artifact repository out of sync. Overwriting " + outputFile.getAbsoluteFile()); //$NON-NLS-1$
-			delete(outputFile);
-		}
-
-		OutputStream target = null;
-		try {
-			if (isFolderBased(newDescriptor)) {
-				outputFile.mkdirs();
-				if (!outputFile.isDirectory())
-					throw failedWrite(new IOException(NLS.bind(Messages.sar_failedMkdir, outputFile.toString())));
-				target = new ZippedFolderOutputStream(outputFile);
-			} else {
-				// file based
-				File parent = outputFile.getParentFile();
-				parent.mkdirs();
-				if (!parent.isDirectory())
-					throw failedWrite(new IOException(NLS.bind(Messages.sar_failedMkdir, parent.toString())));
-				target = new FileOutputStream(file);
-			}
-
-			// finally create and return an output stream suitably wrapped so that when it is 
-			// closed the repository is updated with the descriptor
-			return new ArtifactOutputStream(new BufferedOutputStream(target), newDescriptor, outputFile);
-		} catch (IOException e) {
-			throw failedWrite(e);
-		}
-	}
-
-	private ProvisionException failedWrite(Exception e) throws ProvisionException {
-		String msg = NLS.bind(Messages.repoFailedWrite, getLocation().toExternalForm());
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_WRITE, msg, e));
-	}
-
-	public synchronized String[][] getRules() {
-		return mappingRules;
-	}
-
-	public synchronized boolean getSignatureVerification() {
-		return signatureVerification;
-	}
-
-	private Transport getTransport() {
-		return ECFTransport.getInstance();
-	}
-
-	// use this method to setup any transient fields etc after the object has been restored from a stream
-	public synchronized void initializeAfterLoad(URL location) {
-		this.location = location;
-		blobStore = new BlobStore(getBlobStoreLocation(location), 128);
-		initializeMapper();
-		for (Iterator i = artifactDescriptors.iterator(); i.hasNext();) {
-			((ArtifactDescriptor) i.next()).setRepository(this);
-		}
-	}
-
-	private synchronized void initializeMapper() {
-		mapper = new Mapper();
-		mapper.initialize(Activator.getContext(), mappingRules);
-	}
-
-	private boolean isFolderBased(IArtifactDescriptor descriptor) {
-		// if the artifact is just a reference then return the reference location
-		if (descriptor instanceof ArtifactDescriptor) {
-			String useArtifactFolder = ((ArtifactDescriptor) descriptor).getRepositoryProperty(ARTIFACT_FOLDER);
-			if (useArtifactFolder != null)
-				return Boolean.valueOf(useArtifactFolder).booleanValue();
-		}
-		//TODO: refactor this when the artifact folder property is consistently set in repository properties
-		return Boolean.valueOf(descriptor.getProperty(ARTIFACT_FOLDER)).booleanValue();
-	}
-
-	private boolean isForceThreading() {
-		return "true".equals(getProperties().get(PROP_FORCE_THREADING)); //$NON-NLS-1$
-	}
-
-	private boolean isLocal() {
-		return "file".equalsIgnoreCase(location.getProtocol()); //$NON-NLS-1$
-	}
-
-	public boolean isModifiable() {
-		return isLocal();
-	}
-
-	public OutputStream processDestination(ProcessingStepHandler handler, IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		destination = addPostSteps(handler, descriptor, destination, monitor);
-		destination = handler.createAndLink(descriptor.getProcessingSteps(), descriptor, destination, monitor);
-		destination = addPreSteps(handler, descriptor, destination, monitor);
-		return destination;
-	}
-
-	public synchronized void removeAll() {
-		IArtifactDescriptor[] toRemove = (IArtifactDescriptor[]) artifactDescriptors.toArray(new IArtifactDescriptor[artifactDescriptors.size()]);
-		boolean changed = false;
-		for (int i = 0; i < toRemove.length; i++)
-			changed |= doRemoveArtifact(toRemove[i]);
-		if (changed)
-			save();
-	}
-
-	public synchronized void removeDescriptor(IArtifactDescriptor descriptor) {
-		if (doRemoveArtifact(descriptor))
-			save();
-	}
-
-	public synchronized void removeDescriptor(IArtifactKey key) {
-		IArtifactDescriptor[] toRemove = getArtifactDescriptors(key);
-		boolean changed = false;
-		for (int i = 0; i < toRemove.length; i++)
-			changed |= doRemoveArtifact(toRemove[i]);
-		if (changed)
-			save();
-	}
-
-	public IStatus reportStatus(IArtifactDescriptor descriptor, OutputStream destination, IStatus status) {
-		// If the destination is just a normal stream then the status is simple.  Just return
-		// it and do not close the destination
-		if (!(destination instanceof ProcessingStep))
-			return status;
-
-		// If the destination is a processing step then close the stream to flush the data through all
-		// the steps.  then collect up the status from all the steps and return
-		try {
-			destination.close();
-		} catch (IOException e) {
-			return new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.sar_reportStatus, descriptor.getArtifactKey().toExternalForm()), e);
-		}
-
-		IStatus stepStatus = ((ProcessingStep) destination).getStatus(true);
-		// if the steps all ran ok and there is no interesting information, return the status from this method
-		if (!stepStatus.isMultiStatus() && stepStatus.isOK())
-			return status;
-		// else gather up the status from the steps
-		MultiStatus result = new MultiStatus(Activator.ID, IStatus.OK, new IStatus[0], NLS.bind(Messages.sar_reportStatus, descriptor.getArtifactKey().toExternalForm()), null);
-		result.merge(status);
-		result.merge(stepStatus);
-		return result;
-	}
-
-	public void save() {
-		boolean compress = "true".equalsIgnoreCase((String) properties.get(PROP_COMPRESSED)); //$NON-NLS-1$
-		save(compress);
-	}
-
-	public void save(boolean compress) {
-		assertModifiable();
-		OutputStream os = null;
-		try {
-			try {
-				URL actualLocation = getActualLocation(location, false);
-				File artifactsFile = new File(actualLocation.getPath());
-				File jarFile = new File(getActualLocation(location, true).getPath());
-				if (!compress) {
-					if (jarFile.exists()) {
-						jarFile.delete();
-					}
-					if (!artifactsFile.exists()) {
-						// create parent folders
-						artifactsFile.getParentFile().mkdirs();
-					}
-					os = new FileOutputStream(artifactsFile);
-				} else {
-					if (artifactsFile.exists()) {
-						artifactsFile.delete();
-					}
-					if (!jarFile.exists()) {
-						if (!jarFile.getParentFile().exists())
-							jarFile.getParentFile().mkdirs();
-						jarFile.createNewFile();
-					}
-					JarOutputStream jOs = new JarOutputStream(new FileOutputStream(jarFile));
-					jOs.putNextEntry(new JarEntry(new Path(actualLocation.getFile()).lastSegment()));
-					os = jOs;
-				}
-				super.setProperty(IRepository.PROP_TIMESTAMP, Long.toString(System.currentTimeMillis()));
-				new SimpleArtifactRepositoryIO().write(this, os);
-			} catch (IOException e) {
-				// TODO proper exception handling
-				e.printStackTrace();
-			} finally {
-				if (os != null)
-					os.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-
-	public String setProperty(String key, String newValue) {
-		String oldValue = super.setProperty(key, newValue);
-		if (oldValue == newValue || (oldValue != null && oldValue.equals(newValue)))
-			return oldValue;
-		if (PUBLISH_PACK_FILES_AS_SIBLINGS.equals(key)) {
-			synchronized (this) {
-				if (Boolean.TRUE.toString().equals(newValue)) {
-					mappingRules = PACKED_MAPPING_RULES;
-				} else {
-					mappingRules = DEFAULT_MAPPING_RULES;
-				}
-				initializeMapper();
-			}
-		}
-		save();
-		//force repository manager to reload this repository because it caches properties
-		ArtifactRepositoryManager manager = (ArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager.removeRepository(getLocation()))
-			manager.addRepository(this);
-		return oldValue;
-	}
-
-	public synchronized void setRules(String[][] rules) {
-		mappingRules = rules;
-	}
-
-	public synchronized void setSignatureVerification(boolean value) {
-		signatureVerification = value;
-	}
-
-	public String toString() {
-		return location.toExternalForm();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java
deleted file mode 100644
index 23fd1c4..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java
+++ /dev/null
@@ -1,524 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository.simple;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import javax.xml.parsers.ParserConfigurationException;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.p2.artifact.repository.Messages;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.p2.persistence.XMLParser;
-import org.eclipse.equinox.internal.p2.persistence.XMLWriter;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-import org.xml.sax.*;
-
-/**
- * This class reads and writes artifact repository metadata
- * (e.g. table of contents files);
- * 
- * This class is not used for reading or writing the actual artifacts.
- */
-
-// TODO: Should a registration/factory mechanism be supported
-//		 for getting a repository reader/writer given a repository type
-public class SimpleArtifactRepositoryIO {
-
-	/**
-	 * Writes the given artifact repository to the stream.
-	 * This method performs buffering, and closes the stream when finished.
-	 */
-	public void write(SimpleArtifactRepository repository, OutputStream output) {
-		OutputStream bufferedOutput = null;
-		try {
-			try {
-				bufferedOutput = new BufferedOutputStream(output);
-				Writer repositoryWriter = new Writer(bufferedOutput);
-				repositoryWriter.write(repository);
-			} finally {
-				if (bufferedOutput != null) {
-					bufferedOutput.close();
-				}
-			}
-		} catch (IOException ioe) {
-			// TODO shouldn't this throw a core exception?
-			ioe.printStackTrace();
-		}
-	}
-
-	/**
-	 * Reads the artifact repository from the given stream,
-	 * and returns the contained array of abstract artifact repositories.
-	 * 
-	 * This method performs buffering, and closes the stream when finished.
-	 */
-	public IArtifactRepository read(URL location, InputStream input, IProgressMonitor monitor) throws ProvisionException {
-		BufferedInputStream bufferedInput = null;
-		try {
-			try {
-				bufferedInput = new BufferedInputStream(input);
-				Parser repositoryParser = new Parser(Activator.getContext(), Activator.ID);
-				repositoryParser.parse(input);
-				IStatus result = repositoryParser.getStatus();
-				switch (result.getSeverity()) {
-					case IStatus.CANCEL :
-						throw new OperationCanceledException();
-					case IStatus.ERROR :
-						throw new ProvisionException(result);
-					case IStatus.WARNING :
-					case IStatus.INFO :
-						LogHelper.log(result);
-				}
-				return repositoryParser.getRepository();
-			} finally {
-				if (bufferedInput != null)
-					bufferedInput.close();
-			}
-		} catch (IOException ioe) {
-			String msg = NLS.bind(Messages.io_failedRead, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_READ, msg, ioe));
-		}
-	}
-
-	private interface XMLConstants extends org.eclipse.equinox.internal.p2.persistence.XMLConstants {
-
-		// Constants defining the structure of the XML for a SimpleArtifactRepository
-
-		// A format version number for simple artifact repository XML.
-		public static final Version CURRENT_VERSION = new Version(1, 0, 0);
-		public static final VersionRange XML_TOLERANCE = new VersionRange(CURRENT_VERSION, true, new Version(2, 0, 0), false);
-
-		// Constants for processing instructions
-		public static final String PI_REPOSITORY_TARGET = "artifactRepository"; //$NON-NLS-1$
-		public static XMLWriter.ProcessingInstruction[] PI_DEFAULTS = new XMLWriter.ProcessingInstruction[] {XMLWriter.ProcessingInstruction.makeClassVersionInstruction(PI_REPOSITORY_TARGET, SimpleArtifactRepository.class, CURRENT_VERSION)};
-
-		// Constants for artifact repository elements
-		public static final String REPOSITORY_ELEMENT = "repository"; //$NON-NLS-1$
-		public static final String REPOSITORY_PROPERTIES_ELEMENT = "repositoryProperties"; //$NON-NLS-1$
-		public static final String MAPPING_RULES_ELEMENT = "mappings"; //$NON-NLS-1$
-		public static final String MAPPING_RULE_ELEMENT = "rule"; //$NON-NLS-1$
-		public static final String ARTIFACTS_ELEMENT = "artifacts"; //$NON-NLS-1$
-		public static final String ARTIFACT_ELEMENT = "artifact"; //$NON-NLS-1$
-		public static final String PROCESSING_STEPS_ELEMENT = "processing"; //$NON-NLS-1$
-		public static final String PROCESSING_STEP_ELEMENT = "step"; //$NON-NLS-1$
-
-		// Constants for attributes of artifact repository elements
-		public static final String VERIFY_SIGNATURE_ATTRIBUTE = "verify"; //$NON-NLS-1$
-
-		public static final String MAPPING_RULE_FILTER_ATTRIBUTE = "filter"; //$NON-NLS-1$
-		public static final String MAPPING_RULE_OUTPUT_ATTRIBUTE = "output"; //$NON-NLS-1$
-
-		public static final String ARTIFACT_CLASSIFIER_ATTRIBUTE = CLASSIFIER_ATTRIBUTE;
-
-		public static final String STEP_DATA_ATTRIBUTE = "data"; //$NON-NLS-1$
-		public static final String STEP_REQUIRED_ATTRIBUTE = "required"; //$NON-NLS-1$
-	}
-
-	// XML writer for a SimpleArtifactRepository
-	protected class Writer extends XMLWriter implements XMLConstants {
-
-		public Writer(OutputStream output) throws IOException {
-			super(output, PI_DEFAULTS);
-		}
-
-		/**
-		 * Write the given artifact repository to the output stream.
-		 */
-		public void write(SimpleArtifactRepository repository) {
-			start(REPOSITORY_ELEMENT);
-			attribute(NAME_ATTRIBUTE, repository.getName());
-			attribute(TYPE_ATTRIBUTE, repository.getType());
-			attribute(VERSION_ATTRIBUTE, repository.getVersion());
-			attributeOptional(PROVIDER_ATTRIBUTE, repository.getProvider());
-			attributeOptional(DESCRIPTION_ATTRIBUTE, repository.getDescription()); // TODO: could be cdata?
-			attribute(VERIFY_SIGNATURE_ATTRIBUTE, repository.getSignatureVerification(), false);
-
-			writeProperties(repository.getProperties());
-			writeMappingRules(repository.getRules());
-			writeArtifacts(repository.getDescriptors());
-
-			end(REPOSITORY_ELEMENT);
-			flush();
-		}
-
-		private void writeMappingRules(String[][] rules) {
-			if (rules.length > 0) {
-				start(MAPPING_RULES_ELEMENT);
-				attribute(COLLECTION_SIZE_ATTRIBUTE, rules.length);
-				for (int i = 0; i < rules.length; i++) {
-					start(MAPPING_RULE_ELEMENT);
-					attribute(MAPPING_RULE_FILTER_ATTRIBUTE, rules[i][0]);
-					attribute(MAPPING_RULE_OUTPUT_ATTRIBUTE, rules[i][1]);
-					end(MAPPING_RULE_ELEMENT);
-				}
-				end(MAPPING_RULES_ELEMENT);
-			}
-		}
-
-		private void writeArtifacts(Set artifactDescriptors) {
-			start(ARTIFACTS_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, artifactDescriptors.size());
-			for (Iterator iter = artifactDescriptors.iterator(); iter.hasNext();) {
-				ArtifactDescriptor descriptor = (ArtifactDescriptor) iter.next();
-				IArtifactKey key = descriptor.getArtifactKey();
-				start(ARTIFACT_ELEMENT);
-				attribute(ARTIFACT_CLASSIFIER_ATTRIBUTE, key.getClassifier());
-				attribute(ID_ATTRIBUTE, key.getId());
-				attribute(VERSION_ATTRIBUTE, key.getVersion());
-				writeProcessingSteps(descriptor.getProcessingSteps());
-				writeProperties(descriptor.getProperties());
-				writeProperties(REPOSITORY_PROPERTIES_ELEMENT, descriptor.getRepositoryProperties());
-				end(ARTIFACT_ELEMENT);
-			}
-			end(ARTIFACTS_ELEMENT);
-		}
-
-		private void writeProcessingSteps(ProcessingStepDescriptor[] processingSteps) {
-			if (processingSteps.length > 0) {
-				start(PROCESSING_STEPS_ELEMENT);
-				attribute(COLLECTION_SIZE_ATTRIBUTE, processingSteps.length);
-				for (int i = 0; i < processingSteps.length; i++) {
-					start(PROCESSING_STEP_ELEMENT);
-					attribute(ID_ATTRIBUTE, processingSteps[i].getProcessorId());
-					attribute(STEP_DATA_ATTRIBUTE, processingSteps[i].getData());
-					attribute(STEP_REQUIRED_ATTRIBUTE, processingSteps[i].isRequired());
-					end(PROCESSING_STEP_ELEMENT);
-				}
-				end(PROCESSING_STEPS_ELEMENT);
-			}
-		}
-	}
-
-	/*
-	 * Parser for the contents of a SimpleArtifactRepository,
-	 * as written by the Writer class.
-	 */
-	private class Parser extends XMLParser implements XMLConstants {
-
-		private SimpleArtifactRepository theRepository = null;
-
-		public Parser(BundleContext context, String bundleId) {
-			super(context, bundleId);
-		}
-
-		public void parse(File file) throws IOException {
-			parse(new FileInputStream(file));
-		}
-
-		public synchronized void parse(InputStream stream) throws IOException {
-			this.status = null;
-			try {
-				// TODO: currently not caching the parser since we make no assumptions
-				//		 or restrictions on concurrent parsing
-				getParser();
-				RepositoryHandler repositoryHandler = new RepositoryHandler();
-				xmlReader.setContentHandler(new RepositoryDocHandler(REPOSITORY_ELEMENT, repositoryHandler));
-				xmlReader.parse(new InputSource(stream));
-				if (isValidXML()) {
-					theRepository = repositoryHandler.getRepository();
-				}
-			} catch (SAXException e) {
-				throw new IOException(e.getMessage());
-			} catch (ParserConfigurationException e) {
-				throw new IOException(e.getMessage());
-			} finally {
-				stream.close();
-			}
-		}
-
-		public SimpleArtifactRepository getRepository() {
-			return theRepository;
-		}
-
-		protected Object getRootObject() {
-			return theRepository;
-		}
-
-		private final class RepositoryDocHandler extends DocHandler {
-
-			public RepositoryDocHandler(String rootName, RootHandler rootHandler) {
-				super(rootName, rootHandler);
-			}
-
-			public void processingInstruction(String target, String data) throws SAXException {
-				if (PI_REPOSITORY_TARGET.equals(target)) {
-					// TODO: should the root handler be constructed based on class
-					// 		 via an extension registry mechanism?
-					// String clazz = extractPIClass(data);
-					// TODO: version tolerance by extension
-					Version repositoryVersion = extractPIVersion(target, data);
-					if (!XML_TOLERANCE.isIncluded(repositoryVersion)) {
-						throw new SAXException(NLS.bind(Messages.io_incompatibleVersion, repositoryVersion, XML_TOLERANCE));
-					}
-				}
-			}
-
-		}
-
-		private final class RepositoryHandler extends RootHandler {
-
-			private final String[] required = new String[] {NAME_ATTRIBUTE, TYPE_ATTRIBUTE, VERSION_ATTRIBUTE};
-			private final String[] optional = new String[] {DESCRIPTION_ATTRIBUTE, PROVIDER_ATTRIBUTE, VERIFY_SIGNATURE_ATTRIBUTE};
-
-			private String[] attrValues = new String[required.length + optional.length];
-
-			private MappingRulesHandler mappingRulesHandler = null;
-			private PropertiesHandler propertiesHandler = null;
-			private ArtifactsHandler artifactsHandler = null;
-
-			private SimpleArtifactRepository repository = null;
-
-			public RepositoryHandler() {
-				super();
-			}
-
-			public SimpleArtifactRepository getRepository() {
-				return repository;
-			}
-
-			protected void handleRootAttributes(Attributes attributes) {
-				attrValues = parseAttributes(attributes, required, optional);
-				attrValues[2] = checkVersion(REPOSITORY_ELEMENT, VERSION_ATTRIBUTE, attrValues[2]).toString();
-				attrValues[5] = checkBoolean(REPOSITORY_ELEMENT, VERIFY_SIGNATURE_ATTRIBUTE, attrValues[5], false).toString();
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (MAPPING_RULES_ELEMENT.equals(name)) {
-					if (mappingRulesHandler == null) {
-						mappingRulesHandler = new MappingRulesHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else if (ARTIFACTS_ELEMENT.equals(name)) {
-					if (artifactsHandler == null) {
-						artifactsHandler = new ArtifactsHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else if (PROPERTIES_ELEMENT.equals(name)) {
-					if (propertiesHandler == null) {
-						propertiesHandler = new PropertiesHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-
-			protected void finished() {
-				if (isValidXML()) {
-					String[][] mappingRules = (mappingRulesHandler == null ? new String[0][0] //
-							: mappingRulesHandler.getMappingRules());
-					Map properties = (propertiesHandler == null ? new OrderedProperties(0) //
-							: propertiesHandler.getProperties());
-					Set artifacts = (artifactsHandler == null ? new HashSet(0) //
-							: artifactsHandler.getArtifacts());
-					boolean verifySignature = (attrValues[5] == null ? false //
-							: new Boolean(attrValues[5]).booleanValue());
-					repository = new SimpleArtifactRepository(attrValues[0], attrValues[1], attrValues[2], attrValues[3], //
-							attrValues[4], verifySignature, artifacts, mappingRules, properties);
-				}
-			}
-		}
-
-		protected class MappingRulesHandler extends AbstractHandler {
-
-			private List mappingRules;
-
-			public MappingRulesHandler(AbstractHandler parentHandler, Attributes attributes) {
-				super(parentHandler, MAPPING_RULES_ELEMENT);
-				String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-				mappingRules = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-			}
-
-			public String[][] getMappingRules() {
-				String[][] rules = new String[mappingRules.size()][2];
-				for (int index = 0; index < mappingRules.size(); index++) {
-					String[] ruleAttributes = (String[]) mappingRules.get(index);
-					rules[index] = ruleAttributes;
-				}
-				return rules;
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (name.equals(MAPPING_RULE_ELEMENT)) {
-					new MappingRuleHandler(this, attributes, mappingRules);
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-		}
-
-		protected class MappingRuleHandler extends AbstractHandler {
-
-			private final String[] required = new String[] {MAPPING_RULE_FILTER_ATTRIBUTE, MAPPING_RULE_OUTPUT_ATTRIBUTE};
-
-			public MappingRuleHandler(AbstractHandler parentHandler, Attributes attributes, List mappingRules) {
-				super(parentHandler, MAPPING_RULE_ELEMENT);
-				mappingRules.add(parseRequiredAttributes(attributes, required));
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				invalidElement(name, attributes);
-			}
-		}
-
-		protected class ArtifactsHandler extends AbstractHandler {
-
-			private Set artifacts;
-
-			public ArtifactsHandler(AbstractHandler parentHandler, Attributes attributes) {
-				super(parentHandler, ARTIFACTS_ELEMENT);
-				String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-				artifacts = (size != null ? new LinkedHashSet(new Integer(size).intValue()) : new LinkedHashSet(4));
-			}
-
-			public Set getArtifacts() {
-				return artifacts;
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (name.equals(ARTIFACT_ELEMENT)) {
-					new ArtifactHandler(this, attributes, artifacts);
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-		}
-
-		protected class ArtifactHandler extends AbstractHandler {
-
-			private final String[] required = new String[] {ARTIFACT_CLASSIFIER_ATTRIBUTE, ID_ATTRIBUTE, VERSION_ATTRIBUTE};
-
-			private Set artifacts;
-			ArtifactDescriptor currentArtifact = null;
-
-			private PropertiesHandler propertiesHandler = null;
-			private PropertiesHandler repositoryPropertiesHandler = null;
-			private ProcessingStepsHandler processingStepsHandler = null;
-
-			public ArtifactHandler(AbstractHandler parentHandler, Attributes attributes, Set artifacts) {
-				super(parentHandler, ARTIFACT_ELEMENT);
-				this.artifacts = artifacts;
-				String[] values = parseRequiredAttributes(attributes, required);
-				Version version = checkVersion(ARTIFACT_ELEMENT, VERSION_ATTRIBUTE, values[2]);
-				// TODO: resolve access restriction on ArtifactKey construction
-				currentArtifact = new ArtifactDescriptor(new ArtifactKey(values[0], values[1], version));
-			}
-
-			public ArtifactDescriptor getArtifact() {
-				return currentArtifact;
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (PROCESSING_STEPS_ELEMENT.equals(name)) {
-					if (processingStepsHandler == null) {
-						processingStepsHandler = new ProcessingStepsHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else if (PROPERTIES_ELEMENT.equals(name)) {
-					if (propertiesHandler == null) {
-						propertiesHandler = new PropertiesHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else if (REPOSITORY_PROPERTIES_ELEMENT.equals(name)) {
-					if (repositoryPropertiesHandler == null) {
-						repositoryPropertiesHandler = new PropertiesHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-
-			protected void finished() {
-				if (isValidXML() && currentArtifact != null) {
-					Map properties = (propertiesHandler == null ? new OrderedProperties(0) : propertiesHandler.getProperties());
-					currentArtifact.addProperties(properties);
-
-					properties = (repositoryPropertiesHandler == null ? new OrderedProperties(0) : repositoryPropertiesHandler.getProperties());
-					currentArtifact.addRepositoryProperties(properties);
-
-					ProcessingStepDescriptor[] processingSteps = (processingStepsHandler == null ? new ProcessingStepDescriptor[0] //
-							: processingStepsHandler.getProcessingSteps());
-					currentArtifact.setProcessingSteps(processingSteps);
-					artifacts.add(currentArtifact);
-				}
-			}
-		}
-
-		protected class ProcessingStepsHandler extends AbstractHandler {
-
-			private List processingSteps;
-
-			public ProcessingStepsHandler(AbstractHandler parentHandler, Attributes attributes) {
-				super(parentHandler, PROCESSING_STEPS_ELEMENT);
-				String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-				processingSteps = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-			}
-
-			public ProcessingStepDescriptor[] getProcessingSteps() {
-				return (ProcessingStepDescriptor[]) processingSteps.toArray(new ProcessingStepDescriptor[processingSteps.size()]);
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (name.equals(PROCESSING_STEP_ELEMENT)) {
-					new ProcessingStepHandler(this, attributes, processingSteps);
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-		}
-
-		protected class ProcessingStepHandler extends AbstractHandler {
-
-			private final String[] required = new String[] {ID_ATTRIBUTE, STEP_REQUIRED_ATTRIBUTE};
-			private final String[] optional = new String[] {STEP_DATA_ATTRIBUTE};
-
-			public ProcessingStepHandler(AbstractHandler parentHandler, Attributes attributes, List processingSteps) {
-				super(parentHandler, PROCESSING_STEP_ELEMENT);
-				String[] attributeValues = parseAttributes(attributes, required, optional);
-				processingSteps.add(new ProcessingStepDescriptor(attributeValues[0], attributeValues[1], checkBoolean(PROCESSING_STEP_ELEMENT, STEP_REQUIRED_ATTRIBUTE, attributeValues[2]).booleanValue()));
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				invalidElement(name, attributes);
-			}
-		}
-
-		protected String getErrorMessage() {
-			return Messages.io_parseError;
-		}
-
-		public String toString() {
-			// TODO:
-			return null;
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/UniversalUniqueIdentifier.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/UniversalUniqueIdentifier.java
deleted file mode 100644
index 636893a..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/UniversalUniqueIdentifier.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.artifact.repository.simple;
-
-import java.io.*;
-import java.math.BigInteger;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.security.SecureRandom;
-import java.util.GregorianCalendar;
-import java.util.Random;
-import org.eclipse.core.runtime.Assert;
-
-public class UniversalUniqueIdentifier implements java.io.Serializable {
-
-	/**
-	 * All serializable objects should have a stable serialVersionUID
-	 */
-	private static final long serialVersionUID = 1L;
-
-	/* INSTANCE FIELDS =============================================== */
-
-	private byte[] fBits = new byte[BYTES_SIZE];
-
-	/* NON-FINAL PRIVATE STATIC FIELDS =============================== */
-
-	private static BigInteger fgPreviousClockValue;
-	private static int fgClockAdjustment = 0;
-	private static int fgClockSequence = -1;
-	private static byte[] nodeAddress;
-
-	static {
-		nodeAddress = computeNodeAddress();
-	}
-
-	/* PRIVATE STATIC FINAL FIELDS =================================== */
-
-	private static Random fgRandomNumberGenerator = new Random();
-
-	/* PUBLIC STATIC FINAL FIELDS ==================================== */
-
-	public static final int BYTES_SIZE = 16;
-	public static final byte[] UNDEFINED_UUID_BYTES = new byte[16];
-	public static final int MAX_CLOCK_SEQUENCE = 0x4000;
-	public static final int MAX_CLOCK_ADJUSTMENT = 0x7FFF;
-	public static final int TIME_FIELD_START = 0;
-	public static final int TIME_FIELD_STOP = 6;
-	public static final int TIME_HIGH_AND_VERSION = 7;
-	public static final int CLOCK_SEQUENCE_HIGH_AND_RESERVED = 8;
-	public static final int CLOCK_SEQUENCE_LOW = 9;
-	public static final int NODE_ADDRESS_START = 10;
-	public static final int NODE_ADDRESS_BYTE_SIZE = 6;
-
-	public static final int BYTE_MASK = 0xFF;
-
-	public static final int HIGH_NIBBLE_MASK = 0xF0;
-
-	public static final int LOW_NIBBLE_MASK = 0x0F;
-
-	public static final int SHIFT_NIBBLE = 4;
-
-	public static final int ShiftByte = 8;
-
-	/**
-	 UniversalUniqueIdentifier default constructor returns a
-	 new instance that has been initialized to a unique value.
-	 */
-	public UniversalUniqueIdentifier() {
-		this.setVersion(1);
-		this.setVariant(1);
-		this.setTimeValues();
-		this.setNode(getNodeAddress());
-	}
-
-	/**
-	 Constructor that accepts the bytes to use for the instance.&nbsp;&nbsp; The format
-	 of the byte array is compatible with the <code>toBytes()</code> method.
-
-	 <p>The constructor returns the undefined uuid if the byte array is invalid.
-
-	 @see #toBytes()
-	 @see #BYTES_SIZE
-	 */
-	public UniversalUniqueIdentifier(byte[] byteValue) {
-		fBits = new byte[BYTES_SIZE];
-		if (byteValue.length >= BYTES_SIZE)
-			System.arraycopy(byteValue, 0, fBits, 0, BYTES_SIZE);
-	}
-
-	private void appendByteString(StringBuffer buffer, byte value) {
-		String hexString;
-
-		if (value < 0)
-			hexString = Integer.toHexString(256 + value);
-		else
-			hexString = Integer.toHexString(value);
-		if (hexString.length() == 1)
-			buffer.append("0"); //$NON-NLS-1$
-		buffer.append(hexString);
-	}
-
-	private static BigInteger clockValueNow() {
-		GregorianCalendar now = new GregorianCalendar();
-		BigInteger nowMillis = BigInteger.valueOf(now.getTime().getTime());
-		BigInteger baseMillis = BigInteger.valueOf(now.getGregorianChange().getTime());
-
-		return (nowMillis.subtract(baseMillis).multiply(BigInteger.valueOf(10000L)));
-	}
-
-	/**
-	 Simply increases the visibility of <code>Object</code>'s clone.
-	 Otherwise, no new behaviour.
-	 */
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException e) {
-			Assert.isTrue(false, "Clone not supported");
-			return null;
-		}
-	}
-
-	public static int compareTime(byte[] fBits1, byte[] fBits2) {
-		for (int i = TIME_FIELD_STOP; i >= 0; i--)
-			if (fBits1[i] != fBits2[i])
-				return (0xFF & fBits1[i]) - (0xFF & fBits2[i]);
-		return 0;
-	}
-
-	/**
-	 * Answers the node address attempting to mask the IP
-	 * address of this machine.
-	 * 
-	 * @return byte[] the node address
-	 */
-	private static byte[] computeNodeAddress() {
-
-		byte[] address = new byte[NODE_ADDRESS_BYTE_SIZE];
-
-		// Seed the secure randomizer with some oft-varying inputs
-		int thread = Thread.currentThread().hashCode();
-		long time = System.currentTimeMillis();
-		int objectId = System.identityHashCode(new String());
-		ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
-		DataOutputStream out = new DataOutputStream(byteOut);
-		byte[] ipAddress = getIPAddress();
-
-		try {
-			if (ipAddress != null)
-				out.write(ipAddress);
-			out.write(thread);
-			out.writeLong(time);
-			out.write(objectId);
-			out.close();
-		} catch (IOException exc) {
-			//ignore the failure, we're just trying to come up with a random seed
-		}
-		byte[] rand = byteOut.toByteArray();
-
-		SecureRandom randomizer = new SecureRandom(rand);
-		randomizer.nextBytes(address);
-
-		// set the MSB of the first octet to 1 to distinguish from IEEE node addresses
-		address[0] = (byte) (address[0] | (byte) 0x80);
-
-		return address;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (!(obj instanceof UniversalUniqueIdentifier))
-			return false;
-
-		byte[] other = ((UniversalUniqueIdentifier) obj).fBits;
-		if (fBits == other)
-			return true;
-		if (fBits.length != other.length)
-			return false;
-		for (int i = 0; i < fBits.length; i++) {
-			if (fBits[i] != other[i])
-				return false;
-		}
-		return true;
-	}
-
-	/**
-	 Answers the IP address of the local machine using the
-	 Java API class <code>InetAddress</code>.
-
-	 @return byte[] the network address in network order
-	 @see    java.net.InetAddress#getLocalHost()
-	 @see    java.net.InetAddress#getAddress()
-	 */
-	protected static byte[] getIPAddress() {
-		try {
-			return InetAddress.getLocalHost().getAddress();
-		} catch (UnknownHostException e) {
-			//valid for this to be thrown be a machine with no IP connection
-			//It is VERY important NOT to throw this exception
-			return null;
-		}
-	}
-
-	private static byte[] getNodeAddress() {
-		return nodeAddress;
-	}
-
-	public int hashCode() {
-		return fBits[0] + fBits[3] + fBits[7] + fBits[11] + fBits[15];
-	}
-
-	private static int nextClockSequence() {
-
-		if (fgClockSequence == -1)
-			fgClockSequence = (int) (fgRandomNumberGenerator.nextDouble() * MAX_CLOCK_SEQUENCE);
-
-		fgClockSequence = (fgClockSequence + 1) % MAX_CLOCK_SEQUENCE;
-
-		return fgClockSequence;
-	}
-
-	private static BigInteger nextTimestamp() {
-
-		BigInteger timestamp = clockValueNow();
-		int timestampComparison;
-
-		timestampComparison = timestamp.compareTo(fgPreviousClockValue);
-
-		if (timestampComparison == 0) {
-			if (fgClockAdjustment == MAX_CLOCK_ADJUSTMENT) {
-				while (timestamp.compareTo(fgPreviousClockValue) == 0)
-					timestamp = clockValueNow();
-				timestamp = nextTimestamp();
-			} else
-				fgClockAdjustment++;
-		} else {
-			fgClockAdjustment = 0;
-
-			if (timestampComparison < 0)
-				nextClockSequence();
-		}
-
-		return timestamp;
-	}
-
-	private void setClockSequence(int clockSeq) {
-		int clockSeqHigh = (clockSeq >>> ShiftByte) & LOW_NIBBLE_MASK;
-		int reserved = fBits[CLOCK_SEQUENCE_HIGH_AND_RESERVED] & HIGH_NIBBLE_MASK;
-
-		fBits[CLOCK_SEQUENCE_HIGH_AND_RESERVED] = (byte) (reserved | clockSeqHigh);
-		fBits[CLOCK_SEQUENCE_LOW] = (byte) (clockSeq & BYTE_MASK);
-	}
-
-	protected void setNode(byte[] bytes) {
-
-		for (int index = 0; index < NODE_ADDRESS_BYTE_SIZE; index++)
-			fBits[index + NODE_ADDRESS_START] = bytes[index];
-	}
-
-	private void setTimestamp(BigInteger timestamp) {
-		BigInteger value = timestamp;
-		BigInteger bigByte = BigInteger.valueOf(256L);
-		BigInteger[] results;
-		int version;
-		int timeHigh;
-
-		for (int index = TIME_FIELD_START; index < TIME_FIELD_STOP; index++) {
-			results = value.divideAndRemainder(bigByte);
-			value = results[0];
-			fBits[index] = (byte) results[1].intValue();
-		}
-		version = fBits[TIME_HIGH_AND_VERSION] & HIGH_NIBBLE_MASK;
-		timeHigh = value.intValue() & LOW_NIBBLE_MASK;
-		fBits[TIME_HIGH_AND_VERSION] = (byte) (timeHigh | version);
-	}
-
-	protected synchronized void setTimeValues() {
-		this.setTimestamp(timestamp());
-		this.setClockSequence(fgClockSequence);
-	}
-
-	protected int setVariant(int variantIdentifier) {
-		int clockSeqHigh = fBits[CLOCK_SEQUENCE_HIGH_AND_RESERVED] & LOW_NIBBLE_MASK;
-		int variant = variantIdentifier & LOW_NIBBLE_MASK;
-
-		fBits[CLOCK_SEQUENCE_HIGH_AND_RESERVED] = (byte) ((variant << SHIFT_NIBBLE) | clockSeqHigh);
-		return (variant);
-	}
-
-	protected void setVersion(int versionIdentifier) {
-		int timeHigh = fBits[TIME_HIGH_AND_VERSION] & LOW_NIBBLE_MASK;
-		int version = versionIdentifier & LOW_NIBBLE_MASK;
-
-		fBits[TIME_HIGH_AND_VERSION] = (byte) (timeHigh | (version << SHIFT_NIBBLE));
-	}
-
-	private static BigInteger timestamp() {
-		BigInteger timestamp;
-
-		if (fgPreviousClockValue == null) {
-			fgClockAdjustment = 0;
-			nextClockSequence();
-			timestamp = clockValueNow();
-		} else
-			timestamp = nextTimestamp();
-
-		fgPreviousClockValue = timestamp;
-		return fgClockAdjustment == 0 ? timestamp : timestamp.add(BigInteger.valueOf(fgClockAdjustment));
-	}
-
-	/** 
-	 This representation is compatible with the (byte[]) constructor.
-
-	 @see #UniversalUniqueIdentifier(byte[])
-	 */
-	public byte[] toBytes() {
-		byte[] result = new byte[fBits.length];
-
-		System.arraycopy(fBits, 0, result, 0, fBits.length);
-		return result;
-	}
-
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < fBits.length; i++)
-			appendByteString(buffer, fBits[i]);
-		return buffer.toString();
-	}
-
-	public String toStringAsBytes() {
-		String result = "{"; //$NON-NLS-1$
-
-		for (int i = 0; i < fBits.length; i++) {
-			result += fBits[i];
-			if (i < fBits.length + 1)
-				result += ","; //$NON-NLS-1$
-		}
-		return result + "}"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/ArtifactDescriptor.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/ArtifactDescriptor.java
deleted file mode 100644
index aec77fe..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/ArtifactDescriptor.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository;
-
-import java.util.Arrays;
-import java.util.Map;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * This represents information about a given artifact stored on a particular byte server.
- */
-public class ArtifactDescriptor implements IArtifactDescriptor {
-
-	private static final ProcessingStepDescriptor[] EMPTY_STEPS = new ProcessingStepDescriptor[0];
-
-	protected IArtifactKey key; // The key associated with this artifact
-
-	// The list of post processing steps that must be applied one the artifact once it 
-	// has been downloaded (e.g, unpack, then md5 checksum, then...)
-	protected ProcessingStepDescriptor[] processingSteps = EMPTY_STEPS;
-
-	protected Map properties = new OrderedProperties();
-	protected Map repositoryProperties = new OrderedProperties();
-
-	protected transient IArtifactRepository repository;
-
-	// QUESTION: Do we need any description or user readable name
-
-	public ArtifactDescriptor(IArtifactDescriptor base) {
-		super();
-		key = base.getArtifactKey();
-		processingSteps = base.getProcessingSteps();
-		properties.putAll(base.getProperties());
-		repository = base.getRepository();
-		// TODO this property is hardcoded for the blob store.
-		//		setProperty("artifact.uuid", base.getProperty("artifact.uuid"));
-	}
-
-	public ArtifactDescriptor(ArtifactDescriptor base) {
-		super();
-		key = base.key;
-		processingSteps = base.processingSteps;
-		properties = base.properties;
-		repository = base.repository;
-	}
-
-	public ArtifactDescriptor(IArtifactKey key) {
-		super();
-		this.key = key;
-	}
-
-	public IArtifactKey getArtifactKey() {
-		return key;
-	}
-
-	public String getProperty(String propertyKey) {
-		return (String) properties.get(propertyKey);
-	}
-
-	public void setProperty(String key, String value) {
-		if (value == null)
-			properties.remove(key);
-		else
-			properties.put(key, value);
-	}
-
-	public void addProperties(Map additionalProperties) {
-		properties.putAll(additionalProperties);
-	}
-
-	/**
-	 * Returns a read-only collection of the properties of the artifact descriptor.
-	 * @return the properties of this artifact descriptor.
-	 */
-	public Map getProperties() {
-		return OrderedProperties.unmodifiableProperties(properties);
-	}
-
-	public String getRepositoryProperty(String propertyKey) {
-		return (String) repositoryProperties.get(propertyKey);
-	}
-
-	public void setRepositoryProperty(String key, String value) {
-		if (value == null)
-			repositoryProperties.remove(key);
-		else
-			repositoryProperties.put(key, value);
-	}
-
-	public void addRepositoryProperties(Map additionalProperties) {
-		repositoryProperties.putAll(additionalProperties);
-	}
-
-	/**
-	 * Returns a read-only collection of the repository properties of the artifact descriptor.
-	 * @return the repository properties of this artifact descriptor.
-	 */
-	public Map getRepositoryProperties() {
-		return OrderedProperties.unmodifiableProperties(repositoryProperties);
-	}
-
-	public ProcessingStepDescriptor[] getProcessingSteps() {
-		return processingSteps;
-	}
-
-	public void setProcessingSteps(ProcessingStepDescriptor[] value) {
-		processingSteps = value == null ? EMPTY_STEPS : value;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		ArtifactDescriptor other = (ArtifactDescriptor) obj;
-		if (key == null) {
-			if (other.key != null)
-				return false;
-		} else if (!key.equals(other.key))
-			return false;
-		if (!Arrays.equals(processingSteps, other.processingSteps))
-			return false;
-		if (properties == null) {
-			if (other.properties != null)
-				return false;
-		} else if (!properties.equals(other.properties))
-			return false;
-		return true;
-	}
-
-	private int hashCode(Object[] array) {
-		int prime = 31;
-		if (array == null)
-			return 0;
-		int result = 1;
-		for (int index = 0; index < array.length; index++) {
-			result = prime * result + (array[index] == null ? 0 : array[index].hashCode());
-		}
-		return result;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((key == null) ? 0 : key.hashCode());
-		result = prime * result + hashCode(processingSteps);
-		result = prime * result + ((properties == null) ? 0 : properties.hashCode());
-		return result;
-	}
-
-	public IArtifactRepository getRepository() {
-		return repository;
-	}
-
-	public void setRepository(IArtifactRepository value) {
-		repository = value;
-	}
-
-	public String toString() {
-		String format = getProperty(IArtifactDescriptor.FORMAT);
-		if (format == null)
-			return "canonical: " + key.toString(); //$NON-NLS-1$
-		return format + ": " + key.toString(); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactDescriptor.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactDescriptor.java
deleted file mode 100644
index 7debc65..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactDescriptor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository;
-
-import java.util.Map;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-public interface IArtifactDescriptor {
-
-	public static final String DOWNLOAD_SIZE = "download.size"; //$NON-NLS-1$
-	public static final String ARTIFACT_SIZE = "artifact.size"; //$NON-NLS-1$
-	public static final String DOWNLOAD_MD5 = "download.md5"; //$NON-NLS-1$
-	public static final String ARTIFACT_MD5 = "artifact.md5"; //$NON-NLS-1$
-	public static final String FORMAT = "format"; //$NON-NLS-1$
-
-	/**
-	 * Return the key for the artifact described by this descriptor.
-	 * @return the key associated with this descriptor
-	 */
-	public abstract IArtifactKey getArtifactKey();
-
-	/**
-	 * Return the value of the given property in this descriptor  <code>null</code> 
-	 * is returned if no such property exists
-	 * @param key the property key to look for
-	 * @return the value of the given property or <code>null</code>
-	 */
-	public abstract String getProperty(String key);
-
-	/**
-	 * Returns a read-only collection of the properties of the artifact descriptor.
-	 * @return the properties of this artifact descriptor.
-	 */
-	public Map getProperties();
-
-	/** 
-	 * Return the list of processing steps associated with this descriptor.
-	 * An empty set of steps implies that this descriptor describes a complete
-	 * copy of the artifact in its native form.
-	 * @return the list of processing steps for this descriptor
-	 */
-	public abstract ProcessingStepDescriptor[] getProcessingSteps();
-
-	/**
-	 * Return the artifact repository that holds the artifact described by this descriptor.
-	 * <code>null</code> is returned if this descriptor is not held in a repository.
-	 * 
-	 * @return the repository holding this artifact or <code>null</code> if none.
-	 */
-	public abstract IArtifactRepository getRepository();
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java
deleted file mode 100644
index cbcec40..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepository.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository;
-
-import java.io.OutputStream;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.AbstractArtifactRepository;
-
-/**
- * A repository containing artifacts.
- * <p>
- * This interface is not intended to be implemented by clients.  Artifact repository
- * implementations must subclass {@link AbstractArtifactRepository} rather than 
- * implementing this interface directly.
- * </p>
- */
-public interface IArtifactRepository extends IRepository {
-	/**
-	 * Add the given descriptor to the set of descriptors in this repository.  This is 
-	 * a relatively low-level operation that should be used only when the actual related 
-	 * content is in this repository and the given descriptor accurately describes 
-	 * that content.
-	 * @param descriptor the descriptor to add.
-	 */
-	public void addDescriptor(IArtifactDescriptor descriptor);
-
-	/**
-	 * Add the given artifact descriptors to this repository
-	 * @param descriptors the artifact descriptors to add
-	 */
-	public void addDescriptors(IArtifactDescriptor[] descriptors);
-
-	/** 
-	 * Returns true if this repository contains the given descriptor.
-	 * @param descriptor the descriptor to query
-	 * @return true if the given descriptor is already in this repository
-	 */
-	public boolean contains(IArtifactDescriptor descriptor);
-
-	/** 
-	 * Returns true if this repository contains the given artifact key.
-	 * @param key the key to query
-	 * @return true if the given key is already in this repository
-	 */
-	public boolean contains(IArtifactKey key);
-
-	/**
-	 * Fill the given stream with the described artifact. Sets status accordingly. 
-	 */
-	public IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor);
-
-	/**
-	 * Return the set of artifact descriptors describing the ways that this repository
-	 * can supply the artifact associated with the given artifact key
-	 * @param key the artifact key to lookup
-	 * @return the descriptors associated with the given key
-	 */
-	public IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key);
-
-	/**
-	 * Returns the list of artifact keys managed by this repository
-	 * @return list of artifact keys
-	 */
-	public IArtifactKey[] getArtifactKeys();
-
-	/**
-	 * Executes the given artifact requests on this byte server.
-	 * @param requests The artifact requests
-	 * @param monitor
-	 * @return a status object that is <code>OK</code> if requests were
-	 * processed successfully. Otherwise, a status indicating information,
-	 * warnings, or errors that occurred while executing the artifact requests
-	 */
-	public IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor);
-
-	/**
-	 * Open an output stream to which a client can write the data for the given 
-	 * artifact descriptor.
-	 * @param descriptor the descriptor describing the artifact data to be written to the 
-	 * resultant stream
-	 * @return the stream to which the artifact content can be written. The returned output
-	 *  stream may implement <code>IStateful</code>.
-	 * @throws ProvisionException if the output stream could not be created.  Reasons include:
-	 * <ul>
-	 * <li>An I/O exception occurred (@link {@link ProvisionException#REPOSITORY_FAILED_WRITE}) .</li>
-	 * <li>An artifact already exists at that location ({@link ProvisionException#ARTIFACT_EXISTS}).</li>
-	 * </ul>
-	 */
-	public OutputStream getOutputStream(IArtifactDescriptor descriptor) throws ProvisionException;
-
-	/**
-	 * Remove the all keys, descriptors, and contents from this repository.
-	 */
-	public void removeAll();
-
-	/**
-	 * Remove the given descriptor and its corresponding content in this repository.  
-	 * @param descriptor the descriptor to remove.
-	 */
-	public void removeDescriptor(IArtifactDescriptor descriptor);
-
-	/**
-	 * Remove the given key and all related content and descriptors from this repository.  
-	 * @param key the key to remove.
-	 */
-	public void removeDescriptor(IArtifactKey key);
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepositoryManager.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepositoryManager.java
deleted file mode 100644
index ffb7813..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRepositoryManager.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository;
-
-import java.net.URL;
-import java.util.Properties;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.RepositoryEvent;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * The metadata repository manager is used to create, access, and manipulate
- * {@link IArtifactRepository} instances. The manager keeps track of a 
- * set of known repositories, and provides caching of these known repositories
- * to avoid unnecessary loading of repositories from the disk or network.  The
- * manager fires {@link RepositoryEvent}s when the set of known repositories
- * changes.
- * 
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IArtifactRepositoryManager {
-	public static final IArtifactRequest[] NO_ARTIFACT_REQUEST = new IArtifactRequest[0];
-
-	/**
-	 * Constant used to indicate that all repositories are of interest.
-	 * @see #getKnownRepositories(int)
-	 */
-	public static final int REPOSITORIES_ALL = 0;
-
-	/**
-	 * Constant used to indicate that system repositories are of interest.
-	 * @see IRepository#PROP_SYSTEM
-	 * @see #getKnownRepositories(int)
-	 */
-	public static final int REPOSITORIES_SYSTEM = 1 << 0;
-
-	/**
-	 * Constant used to indicate that non-system repositories are of interest
-	 * @see IRepository#PROP_SYSTEM
-	 * @see #getKnownRepositories(int)
-	 */
-	public static final int REPOSITORIES_NON_SYSTEM = 1 << 1;
-
-	/**
-	 * Constant used to indicate that local repositories are of interest.
-	 * @see #getKnownRepositories(int)
-	 */
-	public static final int REPOSITORIES_LOCAL = 1 << 2;
-
-	/**
-	 * Repository type for a simple repository based on a URL or local file system location.
-	 */
-	public static final String TYPE_SIMPLE_REPOSITORY = "org.eclipse.equinox.p2.artifact.repository.simpleRepository"; //$NON-NLS-1$
-
-	/**
-	 * Adds a repository to the list of artifact repositories tracked by the repository
-	 * manager.
-	 * 
-	 * @param location The location of the artifact repository to add
-	 */
-	public void addRepository(URL location);
-
-	/**
-	 * Return a new request to download the given artifact and store it at the given destination.
-	 * @param key the artifact to download
-	 * @param destination the destination where the artifact will be stored
-	 * @return the newly created request object
-	 */
-	public IArtifactRequest createDownloadRequest(IArtifactKey key, IPath destination);
-
-	/**
-	 * Return a new request to mirror the given artifact into the destination repository.
-	 * @param key the artifact to mirror
-	 * @param destination the destination where the artifact will be mirrored
-	 * @return the newly created request object
-	 */
-	public IArtifactRequest createMirrorRequest(IArtifactKey key, IArtifactRepository destination);
-
-	/**
-	 * Return a new request to mirror the given artifact into the destination repository.
-	 * @param key the artifact to mirror
-	 * @param destination the destination where the artifact will be mirrored
-	 * @param destinationDescriptorProperties additional properties for use in creating the repositor's ArtifactDescriptor
-	 * @param destinationRepositoryProperties additional repository specific properties for use in creating the repositor's ArtifactDescriptor
-	 * @return the newly created request object
-	 */
-	public IArtifactRequest createMirrorRequest(IArtifactKey key, IArtifactRepository destination, Properties destinationDescriptorProperties, Properties destinationRepositoryProperties);
-
-	/**
-	 * Creates and returns a new empty artifact repository of the given type at 
-	 * the given location.
-	 * <p>
-	 * The resulting repository is <b>not</b> added to the list of repositories tracked by
-	 * the repository manager. Clients must make a subsequent call to {@link #addRepository(URL)}
-	 * if they want the repository manager to remember the repository for subsequent
-	 * load attempts.
-	 * </p>
-	 * 
-	 * @param location the location for the new repository
-	 * @param name the name of the new repository
-	 * @param type the kind of repository to create
-	 * @return the newly created repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>The repository type is unknown.</li>
-	 * <li>There was an error writing to the given repository location.</li>
-	 * <li>A repository already exists at that location.</li>
-	 * </ul>
-	 */
-	public IArtifactRepository createRepository(URL location, String name, String type) throws ProvisionException;
-
-	/**
-	 * Returns the artifact repository locations known to the repository manager.
-	 * <p>
-	 * Note that the repository manager does not guarantee that a valid repository
-	 * exists at any of the returned locations at any particular moment in time.
-	 * A subsequent attempt to load a repository at any of the given locations may
-	 * or may not succeed.
-	 * 
-	 * @param flags an integer bit-mask indicating which repositories should be
-	 * returned.  <code>REPOSITORIES_ALL</code> can be used as the mask when
-	 * all repositories should be returned.
-	 * 
-	 * @return the locations of the repositories managed by this repository manager.
-	 * 
-	 * @see #REPOSITORIES_ALL
-	 * @see #REPOSITORIES_SYSTEM
-	 * @see #REPOSITORIES_NON_SYSTEM
-	 * @see #REPOSITORIES_LOCAL
-	 */
-	public URL[] getKnownRepositories(int flags);
-
-	/**
-	 * Returns the property associated with the repository at the given URL, 
-	 * without loading the repository.
-	 * <p>
-	 * Note that some properties for a repository can only be
-	 * determined when that repository is loaded.  This method will return <code>null</code>
-	 * for such properties.  Only values for the properties that are already
-	 * known by a repository manager will be returned. 
-	 * <p>
-	 * If a client wishes to retrieve a property value from a repository 
-	 * regardless of the cost of retrieving it, the client should load the 
-	 * repository and then retrieve the property from the repository itself.
-	 * 
-	 * @param location the URL of the repository in question
-	 * @param key the String key of the property desired
-	 * @return the value of the property, or <code>null</code> if the repository
-	 * does not exist, the value does not exist, or the property value 
-	 * could not be determined without loading the repository.
-	 * 
-	 * @see #loadRepository(URL, IProgressMonitor)
-	 * @see IRepository#getProperties()
-	 * 
-	 */
-	public String getRepositoryProperty(URL location, String key);
-
-	/**
-	 * Loads the repository at the given location.  The location is expected to contain 
-	 * data that describes a valid artifact repository of a known type.  If this manager
-	 * already knows a repository at the given location then that repository is returned.
-	 * <p>
-	 * The resulting repository is added to the list of repositories tracked by
-	 * the repository manager. Clients must make a subsequent call to {@link #removeRepository(URL)}
-	 * if they do not want the repository manager to remember the repository for subsequent
-	 * load attempts.
-	 * </p>
-	 * 
-	 * @param location the location in which to look for a repository description
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return a repository object for the given location
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IArtifactRepository loadRepository(URL location, IProgressMonitor monitor) throws ProvisionException;
-
-	/**
-	 * Refreshes the repository corresponding to the given URL. This method discards
-	 * any cached state held by the repository manager and reloads the repository
-	 * contents. The provided repository location must already be known to the repository
-	 * manager.
-	 * 
-	 * @param location The location of the repository to refresh
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return The refreshed metadata repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>The location is not known to the repository manager.</li>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IArtifactRepository refreshRepository(URL location, IProgressMonitor monitor) throws ProvisionException;
-
-	/**
-	 * Remove the given repository from this manager.  Do nothing if the repository
-	 * is not currently managed.
-	 * 
-	 * @param location the location of the repository to remove
-	 * @return <code>true</code> if a repository was removed, and 
-	 * <code>false</code> otherwise.
-	 */
-	public boolean removeRepository(URL location);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRequest.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRequest.java
deleted file mode 100644
index 6ed1272..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IArtifactRequest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRequest;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * This interface is not intended to be implemented by clients
- */
-public interface IArtifactRequest {
-
-	public IArtifactKey getArtifactKey();
-
-	/**
-	 * Returns the result of the previous call to {@link ArtifactRequest#perform(IProgressMonitor)},
-	 * or <code>null</code> if perform has never been called.
-	 * 
-	 * @return The result of the previous perform call.
-	 */
-	public IStatus getResult();
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IFileArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IFileArtifactRepository.java
deleted file mode 100644
index 6e6e07b..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IFileArtifactRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository;
-
-import java.io.File;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-public interface IFileArtifactRepository extends IArtifactRepository {
-	/**
-	 * Return the location of the full local file corresponding to the given 
-	 * artifact key to the given key, or <code>null</code> if not available.
-	 * 
-	 * @return the location of the requested artifact or<code>null</code> if not available
-	 */
-	public File getArtifactFile(IArtifactKey key);
-
-	/**
-	 * Return the location of the local file corresponding to the given 
-	 * artifact descriptor, or <code>null</code> if not available.
-	 * 
-	 * @return the location of the requested descriptor or<code>null</code> if not available
-	 */
-	public File getArtifactFile(IArtifactDescriptor descriptor);
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IStateful.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IStateful.java
deleted file mode 100644
index 1e2d7f1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/IStateful.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Implementing <code>IStateful</code> adds the ability to store status information.
- */
-public interface IStateful {
-
-	/**
-	 * Set the status.
-	 * 
-	 * @param status if status equals null => getStatus().isOK
-	 */
-	void setStatus(IStatus status);
-
-	/**
-	 * Get status.
-	 * @return status
-	 */
-	public IStatus getStatus();
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java
deleted file mode 100644
index d6126e1..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStep.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*   IBM Corporation - continuing development
-*******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IStateful;
-
-/**
- * ProcessingSteps process the data written to them and pass the resultant data on
- * to a configured destination stream.  Steps may monitor (e.g., count) the data, compute information 
- * about the data (e.g., checksum or hash) or transform the data (e.g., unpack200).
- */
-public abstract class ProcessingStep extends OutputStream implements IStateful {
-
-	private OutputStream destination;
-	private IProgressMonitor monitor;
-	private IStatus status = Status.OK_STATUS;
-
-	protected ProcessingStep() {
-		super();
-	}
-
-	/**
-	 * Initialize this processing step according to the information in the given 
-	 * descriptor and context.  After initialization, this step is ready for linking 
-	 * with other steps or output streams
-	 * @param descriptor description of the step
-	 * @param context the context in which the step is being used
-	 */
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		// nothing to do here!
-	}
-
-	/**
-	 * Link this step with the given output stream and configure the step to use the given
-	 * progress monitor.  After linking the step is ready to have data written to it.
-	 * @param destination the stream into which to write the processed data
-	 * @param monitor the progress monitor to use for reporting activity
-	 */
-	public void link(OutputStream destination, IProgressMonitor monitor) {
-		this.destination = destination;
-		this.monitor = monitor;
-	}
-
-	/**
-	 * Process the given byte and pass the result on to the configured destination stream
-	 * @param b the byte being written
-	 */
-	public void write(int b) throws IOException {
-		// nothing to do here!
-	}
-
-	/** 
-	 * Flush any unwritten data from this stream.
-	 */
-	public void flush() throws IOException {
-		super.flush();
-		if (destination != null)
-			destination.flush();
-	}
-
-	/**
-	 * Close this stream and, if the configured destination is a ProcessingStep, 
-	 * close it as well.  Typically a chain of steps terminates in a conventional 
-	 * output stream.  Implementors of this method should ensure they set the 
-	 * status of the step.
-	 */
-	public void close() throws IOException {
-		super.close();
-		if (destination instanceof ProcessingStep)
-			destination.close();
-		monitor = null;
-	}
-
-	public IStatus getStatus() {
-		return status;
-	}
-
-	public void setStatus(IStatus status) {
-		this.status = status == null ? Status.OK_STATUS : status;
-	}
-
-	/**
-	 * Get the progress monitor. 
-	 * @return the progress monitor; may be null
-	 */
-	protected IProgressMonitor getProgressMonitor() {
-		return monitor;
-	}
-
-	/**
-	 * Get the stream to write the processed data into.
-	 * 
-	 * @return output stream for processed data
-	 */
-	protected OutputStream getDestination() {
-		return destination;
-	}
-
-	/**
-	 * Return the status of this step.  The status will be <code>null</code> if the
-	 * step has not yet executed. If the step has executed the returned status
-	 * indicates the success or failure of the step.
-	 * @param deep whether or not to aggregate the status of any linked steps
-	 * @return the requested status 
-	 */
-	public IStatus getStatus(boolean deep) {
-		if (!deep)
-			return getStatus();
-		ArrayList list = new ArrayList();
-		int severity = collectStatus(list);
-		if (severity == IStatus.OK)
-			return Status.OK_STATUS;
-		IStatus[] result = (IStatus[]) list.toArray(new IStatus[list.size()]);
-		return new MultiStatus(Activator.ID, severity, result, "Result of processing steps", null);
-	}
-
-	private int collectStatus(ArrayList list) {
-		list.add(getStatus());
-		if (!(destination instanceof ProcessingStep))
-			return getStatus().getSeverity();
-		int result = ((ProcessingStep) destination).collectStatus(list);
-		// TODO greater than test here is a little brittle but it is very unlikely that we will add
-		// a new status severity.
-		if (getStatus().getSeverity() > result)
-			return getStatus().getSeverity();
-		return result;
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepDescriptor.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepDescriptor.java
deleted file mode 100644
index 4320fb0..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepDescriptor.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing;
-
-/**
- * The description of a processor step.
- */
-public class ProcessingStepDescriptor {
-
-	private final String processorId; //the operation to be applied (e.g: unpack, md5, signature verification, etc.)
-	private final String data; //data requested for the processing (eg. expected checksum)
-	private final boolean required; //whether the step is optional or not
-
-	/**
-	 * Create a processing step description.
-	 * 
-	 * @param processorId
-	 * @param data
-	 * @param required
-	 */
-	public ProcessingStepDescriptor(String processorId, String data, boolean required) {
-		super();
-		this.processorId = processorId;
-		this.data = data;
-		this.required = required;
-	}
-
-	public String getProcessorId() {
-		return processorId;
-	}
-
-	public String getData() {
-		return data;
-	}
-
-	public boolean isRequired() {
-		return required;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((data == null) ? 0 : data.hashCode());
-		result = prime * result + ((processorId == null) ? 0 : processorId.hashCode());
-		result = prime * result + (required ? 1231 : 1237);
-		return result;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (!(obj instanceof ProcessingStepDescriptor))
-			return false;
-		final ProcessingStepDescriptor other = (ProcessingStepDescriptor) obj;
-		if (data == null) {
-			if (other.data != null)
-				return false;
-		} else if (!data.equals(other.data))
-			return false;
-		if (processorId == null) {
-			if (other.processorId != null)
-				return false;
-		} else if (!processorId.equals(other.processorId))
-			return false;
-		if (required != other.required)
-			return false;
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java
deleted file mode 100644
index c003820..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/p2/artifact/repository/processing/ProcessingStepHandler.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2008 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*  IBM - continuing development
-*******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing;
-
-import java.io.OutputStream;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-
-/**
- * Creates processing step instances from extensions and executes them.
- */
-public class ProcessingStepHandler {
-
-	private static final String PROCESSING_STEPS_EXTENSION_ID = "org.eclipse.equinox.p2.artifact.repository.processingSteps"; //$NON-NLS-1$
-
-	public static IStatus checkStatus(OutputStream output) {
-		if (!(output instanceof ProcessingStep))
-			return Status.OK_STATUS;
-		return ((ProcessingStep) output).getStatus(true);
-	}
-
-	/**
-	 * Check to see that we have processors for all the steps in the given descriptor
-	 * @param descriptor the descriptor to check
-	 * @return whether or not processors for all the descriptor's steps are installed
-	 */
-	public static boolean canProcess(IArtifactDescriptor descriptor) {
-		IExtensionRegistry registry = RegistryFactory.getRegistry();
-		IExtensionPoint point = registry.getExtensionPoint(PROCESSING_STEPS_EXTENSION_ID);
-		if (point == null)
-			return false;
-		ProcessingStepDescriptor[] steps = descriptor.getProcessingSteps();
-		for (int i = 0; i < steps.length; i++) {
-			if (point.getExtension(steps[i].getProcessorId()) == null)
-				return false;
-		}
-		return true;
-	}
-
-	public ProcessingStep[] create(ProcessingStepDescriptor[] descriptors, IArtifactDescriptor context) {
-		ProcessingStep[] result = new ProcessingStep[descriptors.length];
-		for (int i = 0; i < descriptors.length; i++)
-			result[i] = create(descriptors[i], context);
-		return result;
-	}
-
-	public ProcessingStep create(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		IExtensionRegistry registry = RegistryFactory.getRegistry();
-		IExtension extension = registry.getExtension(PROCESSING_STEPS_EXTENSION_ID, descriptor.getProcessorId());
-		Exception error;
-		if (extension != null) {
-			IConfigurationElement[] config = extension.getConfigurationElements();
-			try {
-				Object object = config[0].createExecutableExtension("class"); //$NON-NLS-1$
-				ProcessingStep step = (ProcessingStep) object;
-				step.initialize(descriptor, context);
-				return step;
-			} catch (Exception e) {
-				error = e;
-			}
-		} else
-			error = new ProcessingStepHandlerException("Could not get extension " + PROCESSING_STEPS_EXTENSION_ID + " for desriptor id " + descriptor.getProcessorId());
-
-		int severity = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-		ProcessingStep result = new EmptyProcessingStep();
-		result.setStatus(new Status(severity, Activator.ID, "Could not instantiate step:" + descriptor.getProcessorId(), error));
-		return result;
-	}
-
-	public OutputStream createAndLink(ProcessingStepDescriptor[] descriptors, IArtifactDescriptor context, OutputStream output, IProgressMonitor monitor) {
-		if (descriptors == null)
-			return output;
-		ProcessingStep[] steps = create(descriptors, context);
-		return link(steps, output, monitor);
-	}
-
-	public OutputStream link(ProcessingStep[] steps, OutputStream output, IProgressMonitor monitor) {
-		OutputStream previous = output;
-		for (int i = steps.length - 1; i >= 0; i--) {
-			ProcessingStep step = steps[i];
-			step.link(previous, monitor);
-			previous = step;
-		}
-		return previous;
-	}
-
-	protected static final class EmptyProcessingStep extends ProcessingStep {
-		// Just to hold the status
-	}
-
-	protected static final class ProcessingStepHandlerException extends Exception {
-		private static final long serialVersionUID = 1L;
-
-		public ProcessingStepHandlerException(String message) {
-			super(message);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/AbstractArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/AbstractArtifactRepository.java
deleted file mode 100644
index 4770918..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/AbstractArtifactRepository.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository;
-
-import java.io.OutputStream;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.p2.artifact.repository.Messages;
-import org.eclipse.equinox.internal.p2.core.helpers.URLUtil;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.eclipse.osgi.util.NLS;
-
-public abstract class AbstractArtifactRepository extends AbstractRepository implements IArtifactRepository {
-
-	protected AbstractArtifactRepository(String name, String type, String version, URL location, String description, String provider) {
-		super(name, type, version, location, description, provider);
-	}
-
-	public abstract boolean contains(IArtifactDescriptor descriptor);
-
-	public abstract boolean contains(IArtifactKey key);
-
-	public abstract IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor);
-
-	public abstract IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key);
-
-	public abstract IArtifactKey[] getArtifactKeys();
-
-	public abstract IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor);
-
-	public OutputStream getOutputStream(IArtifactDescriptor descriptor) throws ProvisionException {
-		if (!isModifiable())
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.repoReadOnly, getLocation().toExternalForm())));
-		return null;
-	}
-
-	public void addDescriptor(IArtifactDescriptor descriptor) {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-	}
-
-	public void addDescriptors(IArtifactDescriptor[] descriptors) {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-	}
-
-	public void removeDescriptor(IArtifactDescriptor descriptor) {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-	}
-
-	public void removeDescriptor(IArtifactKey key) {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-	}
-
-	public void removeAll() {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-	}
-
-	public boolean equals(Object o) {
-		if (this == o) {
-			return true;
-		}
-		if (!(o instanceof AbstractArtifactRepository)) {
-			return false;
-		}
-		if (URLUtil.sameURL(getLocation(), ((AbstractArtifactRepository) o).getLocation()))
-			return true;
-		return false;
-	}
-
-	public int hashCode() {
-		return (this.getLocation().toString().hashCode()) * 87;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/IArtifactRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/IArtifactRepositoryFactory.java
deleted file mode 100644
index 21e4f8b..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/IArtifactRepositoryFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-public interface IArtifactRepositoryFactory {
-
-	/**
-	 * Creates and returns a new empty artifact repository of the given type at 
-	 * the given location.
-	 * 
-	 * @param location the location for the new repository
-	 * @param name the name of the new repository
-	 * @param type the kind of repository to create
-	 * @return the newly created repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>The repository type is unknown.</li>
-	 * <li>There was an error writing to the given repository location.</li>
-	 * <li>A repository already exists at that location.</li>
-	 * </ul>
-	 */
-	public IArtifactRepository create(URL location, String name, String type) throws ProvisionException;
-
-	/**
-	 * Loads the repository at the given location.  The location is expected to contain 
-	 * data that describes a valid artifact repository of a known type.  If this manager
-	 * already knows a repository at the given location then that repository is returned.
-	 * 
-	 * @param location the location in which to look for a repository description
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return a repository object for the given location
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IArtifactRepository load(URL location, IProgressMonitor monitor) throws ProvisionException;
-}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/SimpleArtifactRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/SimpleArtifactRepositoryFactory.java
deleted file mode 100644
index b5b2285..0000000
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/artifact/repository/SimpleArtifactRepositoryFactory.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository;
-
-import java.io.*;
-import java.net.URL;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository;
-import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepositoryIO;
-import org.eclipse.equinox.internal.p2.core.helpers.Tracing;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.osgi.util.NLS;
-
-public class SimpleArtifactRepositoryFactory implements IArtifactRepositoryFactory {
-
-	public IArtifactRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		final String PROTOCOL_FILE = "file"; //$NON-NLS-1$
-		long time = 0;
-		final String debugMsg = "Restoring artifact repository "; //$NON-NLS-1$
-		if (Tracing.DEBUG_METADATA_PARSING) {
-			Tracing.debug(debugMsg + location);
-			time = -System.currentTimeMillis();
-		}
-		File localFile = null;
-		boolean local = false;
-		try {
-			SubMonitor sub = SubMonitor.convert(monitor, 300);
-			OutputStream artifacts = null;
-			// try with compressed
-			boolean compress = true;
-			if (PROTOCOL_FILE.equals(location.getProtocol())) {
-				local = true;
-				localFile = new File(SimpleArtifactRepository.getActualLocation(location, true).getPath());
-				if (!localFile.exists()) {
-					localFile = new File(SimpleArtifactRepository.getActualLocation(location, false).getPath());
-					compress = false;
-				}
-			} else {
-				//download to local temp file
-				localFile = File.createTempFile("artifacts", ".xml"); //$NON-NLS-1$ //$NON-NLS-2$
-				try {
-					artifacts = new BufferedOutputStream(new FileOutputStream(localFile));
-					IStatus status = getTransport().download(SimpleArtifactRepository.getActualLocation(location, compress).toExternalForm(), artifacts, sub.newChild(100));
-					if (!status.isOK()) {
-						// retry uncompressed
-						compress = false;
-						status = getTransport().download(SimpleArtifactRepository.getActualLocation(location, compress).toExternalForm(), artifacts, sub.newChild(100));
-						if (!status.isOK())
-							throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, status.getMessage(), null));
-					}
-				} finally {
-					if (artifacts != null)
-						artifacts.close();
-				}
-			}
-			InputStream descriptorStream = null;
-			try {
-				descriptorStream = new BufferedInputStream(new FileInputStream(localFile));
-				if (compress) {
-					URL actualFile = SimpleArtifactRepository.getActualLocation(location, false);
-					JarInputStream jInStream = new JarInputStream(descriptorStream);
-					JarEntry jarEntry = jInStream.getNextJarEntry();
-					String filename = new Path(actualFile.getFile()).lastSegment();
-					while (jarEntry != null && !(filename.equals(jarEntry.getName()))) {
-						jarEntry = jInStream.getNextJarEntry();
-					}
-					if (jarEntry == null) {
-						throw new FileNotFoundException("Repository not found in " + actualFile.getPath()); //$NON-NLS-1$
-					}
-					descriptorStream = jInStream;
-				}
-				SimpleArtifactRepositoryIO io = new SimpleArtifactRepositoryIO();
-				SimpleArtifactRepository result = (SimpleArtifactRepository) io.read(localFile.toURL(), descriptorStream, sub.newChild(100));
-				result.initializeAfterLoad(location);
-				if (Tracing.DEBUG_METADATA_PARSING) {
-					time += System.currentTimeMillis();
-					Tracing.debug(debugMsg + "time (ms): " + time); //$NON-NLS-1$ 
-				}
-				return result;
-			} finally {
-				if (descriptorStream != null)
-					descriptorStream.close();
-			}
-		} catch (FileNotFoundException e) {
-			String msg = NLS.bind(Messages.io_failedRead, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, msg, e));
-		} catch (IOException e) {
-			String msg = NLS.bind(Messages.io_failedRead, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_READ, msg, e));
-		} finally {
-			if (!local && localFile != null && !localFile.delete())
-				localFile.deleteOnExit();
-		}
-	}
-
-	public IArtifactRepository create(URL location, String name, String type) {
-		return new SimpleArtifactRepository(name, location);
-	}
-
-	private Transport getTransport() {
-		return ECFTransport.getInstance();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.console/.classpath b/bundles/org.eclipse.equinox.p2.console/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.console/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.console/.project b/bundles/org.eclipse.equinox.p2.console/.project
deleted file mode 100644
index 55fbe7f..0000000
--- a/bundles/org.eclipse.equinox.p2.console/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.console</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a455b62..0000000
--- a/bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,340 +0,0 @@
-#Thu Sep 13 22:02:41 EDT 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b61b6ad..0000000
--- a/bundles/org.eclipse.equinox.p2.console/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:57:44 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.console/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.console/META-INF/MANIFEST.MF
deleted file mode 100644
index 9203457..0000000
--- a/bundles/org.eclipse.equinox.p2.console/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.console;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.console.Activator
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.equinox.internal.p2.console;x-friends:="org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.tools"
-Import-Package: org.eclipse.core.runtime;common=split,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.provisional.configurator,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.director,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.osgi.framework.console;version="1.0.0";resolution:=optional,
- org.eclipse.osgi.service.environment;version="1.0.0",
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.osgi.framework;version="1.4.0",
- org.osgi.util.tracker;version="1.3.3"
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
diff --git a/bundles/org.eclipse.equinox.p2.console/Provisioning console.launch b/bundles/org.eclipse.equinox.p2.console/Provisioning console.launch
deleted file mode 100644
index c4d8769..0000000
--- a/bundles/org.eclipse.equinox.p2.console/Provisioning console.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="d:\tmp\selfhosting"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.equinox.app*1.0.100.v20080303@default:default,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,javax.servlet*2.4.0.v200711021030@default:default,org.eclipse.core.runtime.compatibility.registry*3.2.200.v20070717@default:false,org.eclipse.core.runtime*3.4.0.v20080303@default:default,org.eclipse.core.jobs*3.3.100.v20080224@default:default,org.eclipse.core.net*1.0.100.I20080226@default:default,org.eclipse.equinox.common*3.4.0.v20080201@default:default,org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.osgi*3.4.0.v20080304@:,org.eclipse.core.runtime.compatibility.auth*3.2.100.v20070502@default:default,org.eclipse.equinox.registry*3.4.0.v20080201@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.p2.metadata.generator*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.sat4j.pb*2.0.0.v20080307@default:default,org.eclipse.equinox.p2.garbagecollector*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default,org.eclipse.ecf.provider.filetransfer*1.6.0.qualifier@default:default,org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.exemplarysetup*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.console*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.touchpoint.eclipse*0.1.0.qualifier@default:default,org.eclipse.ecf*1.4.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.sat4j.core*2.0.0.v20080307@default:default,org.eclipse.equinox.simpleconfigurator.manipulator*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.director*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.equinox.p2.touchpoint.natives*0.1.0.qualifier@default:default,org.eclipse.equinox.simpleconfigurator*0.1.0.qualifier@1:true,org.eclipse.equinox.p2.jarprocessor*0.1.0.qualifier@default:default,org.eclipse.ecf.identity*1.3.0.qualifier@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.console/about.html b/bundles/org.eclipse.equinox.p2.console/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.console/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.console/build.properties b/bundles/org.eclipse.equinox.p2.console/build.properties
deleted file mode 100644
index a6b8330..0000000
--- a/bundles/org.eclipse.equinox.p2.console/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.console/plugin.properties b/bundles/org.eclipse.equinox.p2.console/plugin.properties
deleted file mode 100644
index aebc3df..0000000
--- a/bundles/org.eclipse.equinox.p2.console/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Console
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/Activator.java b/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/Activator.java
deleted file mode 100644
index 78398a0..0000000
--- a/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/Activator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.console;
-
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.osgi.framework.*;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-
-public class Activator implements BundleActivator, ServiceTrackerCustomizer {
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.equinox.p2.console"; //$NON-NLS-1$
-	private static final String PROVIDER_NAME = "org.eclipse.osgi.framework.console.CommandProvider"; //$NON-NLS-1$
-	private static BundleContext context;
-
-	private ServiceTracker profileTracker;
-	private ProvCommandProvider provider;
-	private ServiceRegistration providerRegistration = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public Activator() {
-		super();
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-		boolean registerCommands = true;
-		try {
-			Class.forName(PROVIDER_NAME);
-		} catch (ClassNotFoundException e) {
-			registerCommands = false;
-		}
-
-		if (registerCommands) {
-			profileTracker = new ServiceTracker(context, IProfileRegistry.class.getName(), this);
-			profileTracker.open();
-		}
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		profileTracker.close();
-		if (providerRegistration != null)
-			providerRegistration.unregister();
-		providerRegistration = null;
-		Activator.context = null;
-	}
-
-	public Object addingService(ServiceReference reference) {
-		BundleContext context = Activator.getContext();
-		IProfileRegistry registry = (IProfileRegistry) context.getService(reference);
-		provider = new ProvCommandProvider(context.getProperty("eclipse.p2.profile"), registry);
-		providerRegistration = context.registerService(PROVIDER_NAME, provider, null);
-		return registry;
-	}
-
-	public void modifiedService(ServiceReference reference, Object service) {
-		// TODO Auto-generated method stub
-	}
-
-	public void removedService(ServiceReference reference, Object service) {
-		if (providerRegistration != null)
-			providerRegistration.unregister();
-		providerRegistration = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java b/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java
deleted file mode 100644
index abcb2c4..0000000
--- a/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- * 	Band XI - add more commands
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.console;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.IUPropertyQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.*;
-import org.eclipse.osgi.framework.console.CommandInterpreter;
-import org.eclipse.osgi.framework.console.CommandProvider;
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-/**
- * An OSGi console command provider that adds various commands for interacting
- * with the provisioning system.
- */
-public class ProvCommandProvider implements CommandProvider {
-	private static final String WILDCARD_ANY = "*"; //$NON-NLS-1$
-	public static final String NEW_LINE = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	//	private Profile profile;
-
-	public ProvCommandProvider(String profileId, IProfileRegistry registry) {
-		// look up the profile we are currently running and use it as the
-		// default.
-		// TODO define a way to spec the default profile to manage
-		//		if (profileId != null) {
-		//			profile = registry.getProfile(profileId);
-		//			if (profile != null)
-		//				return;
-		//		}
-		//		// A default was not defined so manage the first profile we can find
-		//		Profile[] profiles = registry.getProfiles();
-		//		if (profiles.length > 0)
-		//			profile = profiles[0];
-	}
-
-	/**
-	 * Adds a metadata repository.
-	 */
-	public void _provaddrepo(CommandInterpreter interpreter) {
-		String urlString = interpreter.nextArgument();
-		if (urlString == null) {
-			interpreter.print("Repository location must be provided");
-			interpreter.println();
-			return;
-		}
-		URL repoURL = toURL(interpreter, urlString);
-		if (repoURL == null)
-			return;
-		if (ProvisioningHelper.addMetadataRepository(repoURL) == null)
-			interpreter.println("Unable to add repository: " + repoURL);
-	}
-
-	public void _provdelrepo(CommandInterpreter interpreter) {
-		String urlString = interpreter.nextArgument();
-		if (urlString == null) {
-			interpreter.print("Repository location must be provided");
-			interpreter.println();
-			return;
-		}
-		URL repoURL = toURL(interpreter, urlString);
-		if (repoURL == null)
-			return;
-		ProvisioningHelper.removeMetadataRepository(repoURL);
-	}
-
-	public void _provaddartifactrepo(CommandInterpreter interpreter) {
-		String urlString = interpreter.nextArgument();
-		if (urlString == null) {
-			interpreter.print("Repository location must be provided");
-			interpreter.println();
-			return;
-		}
-		URL repoURL = toURL(interpreter, urlString);
-		if (repoURL == null)
-			return;
-		if (ProvisioningHelper.addArtifactRepository(repoURL) == null)
-			interpreter.println("Unable to add repository: " + repoURL);
-	}
-
-	public void _provdelartifactrepo(CommandInterpreter interpreter) {
-		String urlString = interpreter.nextArgument();
-		if (urlString == null) {
-			interpreter.print("Repository location must be provided");
-			interpreter.println();
-			return;
-		}
-		URL repoURL = toURL(interpreter, urlString);
-		if (repoURL == null)
-			return;
-		ProvisioningHelper.removeArtifactRepository(repoURL);
-	}
-
-	/**
-	 * Install a given IU to a given profile location.
-	 */
-	public void _provinstall(CommandInterpreter interpreter) {
-		String iu = interpreter.nextArgument();
-		String version = interpreter.nextArgument();
-		String profileId = interpreter.nextArgument();
-		if (profileId == null || profileId.equals("this"))
-			profileId = IProfileRegistry.SELF;
-		if (iu == null || version == null || profileId == null) {
-			interpreter.println("Installable unit id, version, and profile Id must be provided");
-			return;
-		}
-		IStatus s = null;
-		try {
-			s = ProvisioningHelper.install(iu, version, ProvisioningHelper.getProfile(profileId), new NullProgressMonitor());
-		} catch (ProvisionException e) {
-			interpreter.println("installation failed ");
-			e.printStackTrace();
-			return;
-		}
-		if (s.isOK())
-			interpreter.println("installation complete");
-		else
-			interpreter.println("installation failed " + s.getMessage());
-	}
-
-	/**
-	 * Creates a profile given an id, location, and flavor
-	 */
-	public void _provaddprofile(CommandInterpreter interpreter) {
-		String profileId = interpreter.nextArgument();
-		String location = interpreter.nextArgument();
-		String flavor = interpreter.nextArgument();
-		if (profileId == null || location == null || flavor == null) {
-			interpreter.println("Id, location, and flavor must be provided");
-			return;
-		}
-		String environments = interpreter.nextArgument();
-		Properties props = new Properties();
-		props.setProperty(IProfile.PROP_INSTALL_FOLDER, location);
-		props.setProperty(IProfile.PROP_FLAVOR, flavor);
-		if (environments != null)
-			props.setProperty(IProfile.PROP_ENVIRONMENTS, environments);
-
-		ProvisioningHelper.addProfile(profileId, props);
-	}
-
-	/**
-	 * Deletes a profile given an id, location, and flavor
-	 */
-	public void _provdelprofile(CommandInterpreter interpreter) {
-		String profileId = interpreter.nextArgument();
-		if (profileId == null) {
-			interpreter.println("Id must be provided");
-			return;
-		}
-		ProvisioningHelper.removeProfile(profileId);
-	}
-
-	/**
-	 * Lists the installable units that match the given URL, id, and/or version.
-	 * 
-	 * @param interpreter
-	 */
-	public void _provliu(CommandInterpreter interpreter) {
-		String urlString = processArgument(interpreter.nextArgument());
-		String id = processArgument(interpreter.nextArgument());
-		String version = processArgument(interpreter.nextArgument());
-		URL repoURL = null;
-		if (urlString != null && !urlString.equals(WILDCARD_ANY))
-			repoURL = toURL(interpreter, urlString);
-		IInstallableUnit[] units = sort(ProvisioningHelper.getInstallableUnits(repoURL, new InstallableUnitQuery(id, new VersionRange(version)), null));
-		for (int i = 0; i < units.length; i++)
-			println(interpreter, units[i]);
-	}
-
-	/**
-	 * Lists the known metadata repositories, or the contents of a given
-	 * metadata repository.
-	 * 
-	 * @param interpreter
-	 */
-	public void _provlr(CommandInterpreter interpreter) {
-		String urlString = processArgument(interpreter.nextArgument());
-		String id = processArgument(interpreter.nextArgument());
-		String version = processArgument(interpreter.nextArgument());
-		if (urlString == null) {
-			URL[] repositories = ProvisioningHelper.getMetadataRepositories();
-			if (repositories != null)
-				for (int i = 0; i < repositories.length; i++)
-					interpreter.println(repositories[i]);
-			return;
-		}
-		URL repoURL = toURL(interpreter, urlString);
-		if (repoURL == null)
-			return;
-		IInstallableUnit[] units = sort(ProvisioningHelper.getInstallableUnits(repoURL, new InstallableUnitQuery(id, new VersionRange(version)), null));
-		for (int i = 0; i < units.length; i++)
-			println(interpreter, units[i]);
-	}
-
-	/**
-	 * Lists the group IUs in all known metadata repositories, or in the given
-	 * metadata repository.
-	 * 
-	 * @param interpreter
-	 */
-	public void _provlg(CommandInterpreter interpreter) {
-		String urlString = processArgument(interpreter.nextArgument());
-		IQueryable queryable = null;
-		if (urlString == null) {
-			queryable = (IQueryable) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-			if (queryable == null)
-				return;
-		} else {
-			URL repoURL = toURL(interpreter, urlString);
-			if (repoURL == null)
-				return;
-			queryable = ProvisioningHelper.getMetadataRepository(repoURL);
-			if (queryable == null)
-				return;
-		}
-		Query query = new IUPropertyQuery(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString());
-		IInstallableUnit[] units = sort(queryable.query(query, new Collector(), null));
-		for (int i = 0; i < units.length; i++)
-			println(interpreter, units[i]);
-	}
-
-	/**
-	 * Lists the known artifact repositories, or the contents of a given
-	 * artifact repository.
-	 * 
-	 * @param interpreter
-	 */
-	public void _provlar(CommandInterpreter interpreter) {
-		String urlString = processArgument(interpreter.nextArgument());
-		if (urlString == null) {
-			URL[] repositories = ProvisioningHelper.getArtifactRepositories();
-			if (repositories == null)
-				return;
-			for (int i = 0; i < repositories.length; i++)
-				interpreter.println(repositories[i]);
-			return;
-		}
-		URL repoURL = toURL(interpreter, urlString);
-		if (repoURL == null)
-			return;
-		IArtifactRepository repo = ProvisioningHelper.getArtifactRepository(repoURL);
-		IArtifactKey[] keys = null;
-		try {
-			keys = (repo != null) ? repo.getArtifactKeys() : null;
-		} catch (UnsupportedOperationException e) {
-			interpreter.println("Repository does not support list commands.");
-			return;
-		}
-		if (keys == null || keys.length == 0) {
-			interpreter.println("Repository has no artifacts");
-			return;
-		}
-		IFileArtifactRepository fileRepo = (IFileArtifactRepository) repo.getAdapter(IFileArtifactRepository.class);
-		for (int i = 0; i < keys.length; i++) {
-			IArtifactDescriptor[] descriptors = repo.getArtifactDescriptors(keys[i]);
-			for (int j = 0; j < descriptors.length; j++) {
-				IArtifactDescriptor descriptor = descriptors[j];
-				File location = null;
-				if (fileRepo != null)
-					location = fileRepo.getArtifactFile(descriptor);
-				println(interpreter, keys[i], location);
-			}
-
-		}
-	}
-
-	/**
-	 * Returns the given string as an URL, or <code>null</code> if the string
-	 * could not be interpreted as an URL.
-	 */
-	private URL toURL(CommandInterpreter interpreter, String urlString) {
-		try {
-			return new URL(urlString);
-		} catch (MalformedURLException e) {
-			interpreter.print(e.getMessage());
-			interpreter.println();
-			return null;
-		}
-	}
-
-	private String processArgument(String arg) {
-		if (arg == null || arg.equals(WILDCARD_ANY))
-			return null;
-		return arg;
-	}
-
-	/**
-	 * Lists the known profiles, or the contents of a given profile.
-	 * 
-	 * @param interpreter
-	 */
-	public void _provlp(CommandInterpreter interpreter) {
-		String profileId = processArgument(interpreter.nextArgument());
-		String id = processArgument(interpreter.nextArgument());
-		String range = processArgument(interpreter.nextArgument());
-		if (profileId == null) {
-			IProfile[] profiles = ProvisioningHelper.getProfiles();
-			for (int i = 0; i < profiles.length; i++)
-				interpreter.println(profiles[i].getProfileId());
-			return;
-		}
-		// determine which profile is to be listed
-		IProfile target = null;
-		if (profileId.equals("this"))
-			profileId = IProfileRegistry.SELF;
-		target = ProvisioningHelper.getProfile(profileId);
-		if (target == null)
-			return;
-
-		// list the profile contents
-		IInstallableUnit[] result = sort(target.query(new InstallableUnitQuery(id, new VersionRange(range)), new Collector(), null));
-		for (int i = 0; i < result.length; i++)
-			interpreter.println(result[i]);
-	}
-
-	private IInstallableUnit[] sort(Collector collector) {
-		IInstallableUnit[] units = (IInstallableUnit[]) collector.toArray(IInstallableUnit.class);
-		Arrays.sort(units, new Comparator() {
-			public int compare(Object arg0, Object arg1) {
-				return arg0.toString().compareTo(arg1.toString());
-			}
-		});
-		return units;
-	}
-
-	public String getHelp() {
-		StringBuffer help = new StringBuffer();
-		help.append(NEW_LINE);
-		help.append("---"); //$NON-NLS-1$
-		help.append("Provisioning Commands");
-		help.append("---"); //$NON-NLS-1$
-		help.append(NEW_LINE);
-		help.append("\tprovlr [<repository URL> <iu id | *> <version range | *>]   - Lists all metadata repositories, or the contents of a given metadata repository");
-		help.append(NEW_LINE);
-		help.append("\tprovlar [<repository URL>] - Lists all artifact repositories, or the contents of a given artifact repository");
-		help.append(NEW_LINE);
-		help.append("\tprovliu [<repository URL | *> <iu id | *> <version range | *>] - Lists the IUs that match the pattern in the given repo.  * matches all");
-		help.append(NEW_LINE);
-		help.append("\tprovlp [<profile id | *> - Lists all profiles, or the contents of the profile at the given profile");
-		help.append(NEW_LINE);
-		help.append("\tprovlg [<repository URL> <iu id | *> <version range | *>] - Lists all IUs with group capabilities in the given repo or in all repos if the URL is omitted");
-		help.append(NEW_LINE);
-		help.append("\tprovinstall <InstallableUnit> <version> <profileId> - Provisions an IU to the profile with the give id");
-		help.append(NEW_LINE);
-		help.append("\tprovaddrepo <repository URL> - Adds a metadata repository");
-		help.append(NEW_LINE);
-		help.append("\tprovaddartifactrepo <repository URL> - Adds an artifact repository");
-		help.append(NEW_LINE);
-		help.append("\tprovaddprofile <profileId> <location> <flavor> - Adds a profile with the given id, location and flavor");
-		help.append(NEW_LINE);
-		return help.toString();
-	}
-
-	/**
-	 * Prints a string representation of an {@link IInstallableUnit} to the
-	 * iterpreter's output stream.
-	 */
-	public void print(CommandInterpreter interpreter, IInstallableUnit unit) {
-		interpreter.print(unit.getId() + ' ' + unit.getVersion());
-	}
-
-	/**
-	 * Prints a string representation of an {@link IInstallableUnit} to the
-	 * iterpreter's output stream, following by a line terminator
-	 */
-	public void println(CommandInterpreter interpreter, IInstallableUnit unit) {
-		print(interpreter, unit);
-		interpreter.println();
-	}
-
-	private void println(CommandInterpreter interpreter, IArtifactKey artifactKey, File location) {
-		interpreter.print(artifactKey.toString() + ' ' + location);
-		interpreter.println();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvisioningHelper.java b/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvisioningHelper.java
deleted file mode 100644
index 1e7eeae..0000000
--- a/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvisioningHelper.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.console;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.configurator.Configurator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.*;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.osgi.framework.Version;
-
-public class ProvisioningHelper {
-
-	public static IMetadataRepository addMetadataRepository(URL location) {
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		if (manager == null)
-			throw new IllegalStateException("No metadata repository manager found"); //$NON-NLS-1$
-		try {
-			return manager.loadRepository(location, null);
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-
-		// for convenience create and add a repository here
-		String repositoryName = location + " - metadata"; //$NON-NLS-1$
-		try {
-			IMetadataRepository repository = manager.createRepository(location, repositoryName, IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-			manager.addRepository(repository.getLocation());
-			return repository;
-		} catch (ProvisionException e) {
-			return null;
-		}
-	}
-
-	public static IMetadataRepository getMetadataRepository(URL location) {
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		if (manager == null)
-			throw new IllegalStateException("No metadata repository manager found");
-		try {
-			return manager.loadRepository(location, null);
-		} catch (ProvisionException e) {
-			return null;
-		}
-	}
-
-	public static void removeMetadataRepository(URL location) {
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		if (manager == null)
-			throw new IllegalStateException("No metadata repository manager found");
-		manager.removeRepository(location);
-	}
-
-	public static IArtifactRepository addArtifactRepository(URL location) {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		try {
-			return manager.loadRepository(location, null);
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		// could not load a repo at that location so create one as a convenience
-		String repositoryName = location + " - artifacts"; //$NON-NLS-1$
-		try {
-			IArtifactRepository repository = manager.createRepository(location, repositoryName, IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-			manager.addRepository(repository.getLocation());
-			return repository;
-		} catch (ProvisionException e) {
-			return null;
-		}
-	}
-
-	public static void removeArtifactRepository(URL location) {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return;
-		manager.removeRepository(location);
-	}
-
-	public static IProfile addProfile(String profileId, Properties properties) {
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(Activator.getContext(), IProfileRegistry.class.getName());
-		if (profileRegistry == null)
-			return null;
-		IProfile profile = profileRegistry.getProfile(profileId);
-		if (profile != null)
-			return profile;
-
-		Map profileProperties = new HashMap();
-
-		for (Iterator it = properties.keySet().iterator(); it.hasNext();) {
-			String key = (String) it.next();
-			profileProperties.put(key, properties.getProperty(key));
-		}
-
-		if (profileProperties.get(IProfile.PROP_ENVIRONMENTS) == null) {
-			EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(Activator.getContext(), EnvironmentInfo.class.getName());
-			if (info != null)
-				profileProperties.put(IProfile.PROP_ENVIRONMENTS, "osgi.os=" + info.getOS() + ",osgi.ws=" + info.getWS() + ",osgi.arch=" + info.getOSArch());
-			else
-				profileProperties.put(IProfile.PROP_ENVIRONMENTS, "");
-		}
-
-		return profileRegistry.addProfile(profileId, profileProperties);
-	}
-
-	public static void removeProfile(String profileId) {
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(Activator.getContext(), IProfileRegistry.class.getName());
-		if (profileRegistry == null)
-			return;
-		profileRegistry.removeProfile(profileId);
-	}
-
-	public static IProfile[] getProfiles() {
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(Activator.getContext(), IProfileRegistry.class.getName());
-		if (profileRegistry == null)
-			return new IProfile[0];
-		return profileRegistry.getProfiles();
-	}
-
-	public static IProfile getProfile(String id) {
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(Activator.getContext(), IProfileRegistry.class.getName());
-		if (profileRegistry == null)
-			return null;
-		return profileRegistry.getProfile(id);
-	}
-
-	/**
-	 * Returns the installable units that match the given query
-	 * in the given metadata repository.
-	 * 
-	 * @param location The location of the metadata repo to search.  <code>null</code> indicates
-	 *        search all known repos.
-	 * @param query The query to perform
-	 * @param monitor A progress monitor, or <code>null</code>
-	 * @return The IUs that match the query
-	 */
-	public static Collector getInstallableUnits(URL location, Query query, IProgressMonitor monitor) {
-		IQueryable queryable = null;
-		if (location == null) {
-			queryable = (IQueryable) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		} else {
-			queryable = getMetadataRepository(location);
-		}
-		return queryable.query(query, new Collector(), null);
-	}
-
-	public static URL[] getMetadataRepositories() {
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		URL[] repos = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL);
-		if (repos.length > 0)
-			return repos;
-		return null;
-	}
-
-	/**
-	 * Install the described IU
-	 */
-	public static IStatus install(String unitId, String version, IProfile profile, IProgressMonitor progress) throws ProvisionException {
-		if (profile == null)
-			return null;
-		Collector units = getInstallableUnits(null, new InstallableUnitQuery(unitId, new Version(version)), progress);
-		if (units.isEmpty()) {
-			StringBuffer error = new StringBuffer();
-			error.append("Installable unit not found: " + unitId + ' ' + version + '\n');
-			error.append("Repositories searched:\n");
-			URL[] repos = getMetadataRepositories();
-			if (repos != null) {
-				for (int i = 0; i < repos.length; i++)
-					error.append(repos[i] + "\n");
-			}
-			throw new ProvisionException(error.toString());
-		}
-
-		IPlanner planner = (IPlanner) ServiceHelper.getService(Activator.getContext(), IPlanner.class.getName());
-		if (planner == null)
-			throw new ProvisionException("No planner service found.");
-
-		IEngine engine = (IEngine) ServiceHelper.getService(Activator.getContext(), IEngine.SERVICE_NAME);
-		if (engine == null)
-			throw new ProvisionException("No director service found.");
-		IInstallableUnit[] toInstall = (IInstallableUnit[]) units.toArray(IInstallableUnit.class);
-		ProvisioningContext context = new ProvisioningContext();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(toInstall);
-		ProvisioningPlan result = planner.getProvisioningPlan(request, context, progress);
-		if (!result.getStatus().isOK())
-			return result.getStatus();
-
-		return engine.perform(profile, new DefaultPhaseSet(), result.getOperands(), context, progress);
-	}
-
-	/**
-	 * Uninstall the described IU
-	 */
-	public static IStatus uninstall(String unitId, String version, IProfile profile, IProgressMonitor progress) throws ProvisionException {
-		IDirector director = (IDirector) ServiceHelper.getService(Activator.getContext(), IDirector.class.getName());
-		if (director == null)
-			throw new ProvisionException("No director service found.");
-
-		// return director.uninstall(new InstallableUnit[] {toInstall}, profile,
-		// null);
-		return null;
-	}
-
-	public static void kick(String profileId) {
-		Configurator configurator = (Configurator) ServiceHelper.getService(Activator.getContext(), Configurator.class.getName());
-		if (configurator == null)
-			return;
-		if (profileId == null)
-			try {
-				configurator.applyConfiguration();
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		else {
-			// TODO do some work here to figure out how to kick some random profile			
-			//					configurator.applyConfiguration(configURL);
-		}
-	}
-
-	public static URL[] getArtifactRepositories() {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		if (manager == null)
-			// TODO log here
-			return null;
-		URL[] repos = manager.getKnownRepositories(IArtifactRepositoryManager.REPOSITORIES_ALL);
-		if (repos.length > 0)
-			return repos;
-		return null;
-	}
-
-	public static IArtifactRepository getArtifactRepository(URL repoURL) {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-		try {
-			if (manager != null)
-				return manager.loadRepository(repoURL, null);
-		} catch (ProvisionException e) {
-			//for console, just ignore repositories that can't be read
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/.classpath b/bundles/org.eclipse.equinox.p2.core/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.equinox.p2.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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.core/.options b/bundles/org.eclipse.equinox.p2.core/.options
deleted file mode 100644
index 6af42a3..0000000
--- a/bundles/org.eclipse.equinox.p2.core/.options
+++ /dev/null
@@ -1,17 +0,0 @@
-#Turn on debugging for p2
-org.eclipse.equinox.p2.core/debug=false
-
-#Detailed debugging information while parsing p2 data files
-org.eclipse.equinox.p2.core/core/parseproblems=false
-
-#Detailed debugging information while parsing site.xml and feature.xml files in the generator
-org.eclipse.equinox.p2.core/generator/parsing=false
-
-#Detailed debugging information while saving/restoring the engine's install registry
-org.eclipse.equinox.p2.core/engine/installregistry=false
-
-#Detailed debugging information while saving/restoring metadata repositories
-org.eclipse.equinox.p2.core/metadata/parsing=false
-
-#Detailed debugging information about mirror selection
-org.eclipse.equinox.p2.core/artifacts/mirrors=false
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.core/.project b/bundles/org.eclipse.equinox.p2.core/.project
deleted file mode 100644
index b7cc168..0000000
--- a/bundles/org.eclipse.equinox.p2.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 744f8b4..0000000
--- a/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,331 +0,0 @@
-#Thu Sep 13 16:23:45 EDT 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index c454095..0000000
--- a/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:57:48 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.core/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF
deleted file mode 100644
index d7933ae..0000000
--- a/bundles/org.eclipse.equinox.p2.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,57 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.core;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: org.eclipse.core.runtime.adaptor,
- org.eclipse.osgi.framework.eventmgr;version="1.0.0",
- org.eclipse.osgi.framework.log;version="1.0.0",
- org.eclipse.osgi.internal.resolver,
- org.eclipse.osgi.service.datalocation;version="1.0.0",
- org.eclipse.osgi.service.debug;version="1.0.0",
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.eclipse.osgi.util;version="1.0.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.util.tracker;version="1.3.3",
- org.xml.sax
-Export-Package: org.eclipse.equinox.internal.p2.core;x-friends:="org.eclipse.equinox.p2.metadata.generator",
- org.eclipse.equinox.internal.p2.core.helpers;
-  x-friends:="org.eclipse.equinox.p2.director,
-   org.eclipse.equinox.p2.artifact.processors,
-   org.eclipse.equinox.p2.artifact.optimizers,
-   org.eclipse.equinox.p2.artifact.repository,
-   org.eclipse.equinox.p2.director.app,
-   org.eclipse.equinox.p2.directorywatcher,
-   org.eclipse.equinox.p2.download,
-   org.eclipse.equinox.p2.engine,
-   org.eclipse.equinox.p2.installer,
-   org.eclipse.equinox.p2.metadata,
-   org.eclipse.equinox.p2.metadata.generator,
-   org.eclipse.equinox.frameworkadmin.test,
-   org.eclipse.equinox.p2.metadata.repository,
-   org.eclipse.equinox.p2.repositoryoptimizer,
-   org.eclipse.equinox.p2.touchpoint.eclipse,
-   org.eclipse.equinox.p2.touchpoint.natives,
-   org.eclipse.equinox.p2.ui,
-   org.eclipse.equinox.p2.ui.sdk,
-   org.eclipse.equinox.p2.updatechecker,
-   org.eclipse.equinox.p2.updatechecker.app,
-   org.eclipse.equinox.p2.garbagecollector,
-   org.eclipse.equinox.p2.console,
-   org.eclipse.equinox.p2.updatesite,
-   org.eclipse.equinox.p2.reconciler.dropins",
- org.eclipse.equinox.internal.p2.persistence;x-friends:="org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.metadata.repository",
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.eventbus,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.core.repository
-Eclipse-LazyStart: true
-Bundle-ClassPath: .
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Bundle-Activator: org.eclipse.equinox.internal.p2.core.Activator
-Require-Bundle: org.eclipse.equinox.common
diff --git a/bundles/org.eclipse.equinox.p2.core/about.html b/bundles/org.eclipse.equinox.p2.core/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.core/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.core/build.properties b/bundles/org.eclipse.equinox.p2.core/build.properties
deleted file mode 100644
index a6b8330..0000000
--- a/bundles/org.eclipse.equinox.p2.core/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.core/plugin.properties b/bundles/org.eclipse.equinox.p2.core/plugin.properties
deleted file mode 100644
index 2728372..0000000
--- a/bundles/org.eclipse.equinox.p2.core/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Core
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Activator.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Activator.java
deleted file mode 100644
index a2e903d..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Activator.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.osgi.framework.log.FrameworkLog;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.osgi.framework.*;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class Activator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.core"; //$NON-NLS-1$
-
-	public static AgentLocation agentDataLocation = null;
-	public static BundleContext context;
-	private static final String DEFAULT_AGENT_LOCATION = "../p2"; //$NON-NLS-1$
-
-	public static Location downloadLocation = null;
-	private static Activator instance;
-	// Data mode constants for user, configuration and data locations.
-	private static final String NO_DEFAULT = "@noDefault"; //$NON-NLS-1$
-	private static final String NONE = "@none"; //$NON-NLS-1$
-
-	private static final String PROP_AGENT_DATA_AREA = "eclipse.p2.data.area"; //$NON-NLS-1$
-	private static final String PROP_CONFIG_DIR = "osgi.configuration.area"; //$NON-NLS-1$
-	private static final String PROP_USER_DIR = "user.dir"; //$NON-NLS-1$
-	private static final String PROP_USER_HOME = "user.home"; //$NON-NLS-1$
-
-	public static final String READ_ONLY_AREA_SUFFIX = ".readOnly"; //$NON-NLS-1$
-
-	private static final String VAR_CONFIG_DIR = "@config.dir"; //$NON-NLS-1$
-	private static final String VAR_USER_DIR = "@user.dir"; //$NON-NLS-1$
-	private static final String VAR_USER_HOME = "@user.home"; //$NON-NLS-1$
-
-	private ServiceRegistration agentLocationRegistration = null;
-	ServiceTracker logTracker;
-
-	/**
-	 * NOTE: This method is copied from LocationHelper in org.eclipse.osgi
-	 * due to access restrictions.
-	 */
-	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);
-	}
-
-	/**
-	 * Builds a URL with the given specification
-	 * NOTE: This method is copied from LocationHelper in org.eclipse.osgi
-	 * due to access restrictions.
-	 * 
-	 * @param spec the URL specification
-	 * @param trailingSlash flag to indicate a trailing slash on the spec
-	 * @return a URL
-	 */
-	private static URL buildURL(String spec, boolean trailingSlash) {
-		if (spec == null)
-			return null;
-		boolean isFile = spec.startsWith("file:"); //$NON-NLS-1$
-		try {
-			if (isFile)
-				return adjustTrailingSlash(new File(spec.substring(5)).toURL(), trailingSlash);
-			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 {
-				return adjustTrailingSlash(new File(spec).toURL(), trailingSlash);
-			} catch (MalformedURLException e1) {
-				return null;
-			}
-		}
-	}
-
-	/**
-	 * Returns the framework log, or null if not available
-	 */
-	public static FrameworkLog getFrameworkLog() {
-		//protect against concurrent shutdown
-		Activator a = instance;
-		if (a == null)
-			return null;
-		ServiceTracker tracker = a.getLogTracker();
-		if (tracker == null)
-			return null;
-		return (FrameworkLog) tracker.getService();
-	}
-
-	private static String substituteVar(String source, String var, String prop) {
-		String value = Activator.context.getProperty(prop);
-		if (value == null)
-			value = ""; //$NON-NLS-1$
-		return value + source.substring(var.length());
-	}
-
-	private AgentLocation buildLocation(String property, URL defaultLocation, boolean readOnlyDefault, boolean addTrailingSlash) {
-		String location = Activator.context.getProperty(property);
-		// the user/product may specify a non-default readOnly setting   
-		String userReadOnlySetting = Activator.context.getProperty(property + READ_ONLY_AREA_SUFFIX);
-		boolean readOnly = (userReadOnlySetting == null ? readOnlyDefault : Boolean.valueOf(userReadOnlySetting).booleanValue());
-		// if the instance location is not set, predict where the workspace will be and 
-		// put the instance area inside the workspace meta area.
-		if (location == null)
-			return new BasicLocation(property, defaultLocation, readOnly);
-		if (location.equalsIgnoreCase(NONE))
-			return null;
-		if (location.equalsIgnoreCase(NO_DEFAULT))
-			return new BasicLocation(property, null, readOnly);
-		if (location.startsWith(VAR_USER_HOME)) {
-			String base = substituteVar(location, VAR_USER_HOME, PROP_USER_HOME);
-			location = new Path(base).toFile().getAbsolutePath();
-		} else if (location.startsWith(VAR_USER_DIR)) {
-			String base = substituteVar(location, VAR_USER_DIR, PROP_USER_DIR);
-			location = new Path(base).toFile().getAbsolutePath();
-		} else if (location.startsWith(VAR_CONFIG_DIR)) {
-			//note the config dir system property is already a URL
-			location = substituteVar(location, VAR_CONFIG_DIR, PROP_CONFIG_DIR);
-		}
-		URL url = buildURL(location, addTrailingSlash);
-		BasicLocation result = null;
-		if (url != null) {
-			result = new BasicLocation(property, null, readOnly);
-			result.set(url, false);
-		}
-		return result;
-	}
-
-	private ServiceTracker getLogTracker() {
-		if (logTracker != null)
-			return logTracker;
-		//lazy init if the bundle has been started
-		if (context == null)
-			return null;
-		logTracker = new ServiceTracker(context, FrameworkLog.class.getName(), null);
-		logTracker.open();
-		return logTracker;
-	}
-
-	public void start(BundleContext aContext) throws Exception {
-		instance = this;
-		Activator.context = aContext;
-		URL defaultLocation = new URL(aContext.getProperty(PROP_CONFIG_DIR) + DEFAULT_AGENT_LOCATION + '/');
-		agentDataLocation = buildLocation(PROP_AGENT_DATA_AREA, defaultLocation, false, true);
-		Dictionary locationProperties = new Hashtable();
-		if (defaultLocation != null) {
-			locationProperties.put("type", PROP_AGENT_DATA_AREA); //$NON-NLS-1$
-			agentLocationRegistration = aContext.registerService(AgentLocation.SERVICE_NAME, agentDataLocation, locationProperties);
-		}
-	}
-
-	public void stop(BundleContext aContext) throws Exception {
-		instance = null;
-		if (agentLocationRegistration != null)
-			agentLocationRegistration.unregister();
-		if (logTracker != null) {
-			logTracker.close();
-			logTracker = null;
-		}
-		Activator.context = null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/BasicLocation.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/BasicLocation.java
deleted file mode 100644
index f95a338..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/BasicLocation.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.osgi.service.datalocation.Location;
-
-/**
- * Internal class.
- */
-public class BasicLocation implements AgentLocation {
-	private static class MockLocker implements Locker {
-		public boolean lock() {
-			// locking always successful
-			return true;
-		}
-
-		public void release() {
-			// nothing to release
-		}
-	}
-
-	private boolean isReadOnly;
-	private URL location = null;
-	private Location parent;
-	private URL defaultValue;
-
-	// locking related fields
-	private File lockFile;
-	private Locker locker;
-	public static final String PROP_OSGI_LOCKING = "osgi.locking"; //$NON-NLS-1$
-	public static boolean DEBUG;
-
-	private static boolean isRunningWithNio() {
-		try {
-			Class.forName("java.nio.channels.FileLock"); //$NON-NLS-1$
-		} catch (ClassNotFoundException e) {
-			return false;
-		}
-		return true;
-	}
-
-	public static Locker createLocker(File lock, String lockMode) {
-		if (lockMode == null)
-			lockMode = Activator.context.getProperty(PROP_OSGI_LOCKING);
-
-		if ("none".equals(lockMode)) //$NON-NLS-1$
-			return new MockLocker();
-
-		if ("java.io".equals(lockMode)) //$NON-NLS-1$
-			return new Locker_JavaIo(lock);
-
-		if ("java.nio".equals(lockMode)) { //$NON-NLS-1$
-			if (isRunningWithNio())
-				return new Locker_JavaNio(lock);
-			else
-				// TODO should we return null here.  NIO was requested but we could not do it...
-				return new Locker_JavaIo(lock);
-		}
-
-		//	Backup case if an invalid value has been specified
-		if (isRunningWithNio())
-			return new Locker_JavaNio(lock);
-		else
-			return new Locker_JavaIo(lock);
-	}
-
-	public BasicLocation(String property, URL defaultValue, boolean isReadOnly) {
-		super();
-		this.defaultValue = defaultValue;
-		this.isReadOnly = isReadOnly;
-	}
-
-	public boolean allowsDefault() {
-		return defaultValue != null;
-	}
-
-	public URL getDefault() {
-		return defaultValue;
-	}
-
-	public synchronized Location getParentLocation() {
-		return parent;
-	}
-
-	public synchronized URL getURL() {
-		if (location == null && defaultValue != null)
-			setURL(defaultValue, false);
-		return location;
-	}
-
-	public synchronized boolean isSet() {
-		return location != null;
-	}
-
-	public boolean isReadOnly() {
-		return isReadOnly;
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public synchronized boolean setURL(URL value, boolean lock) {
-		//		if (location != null)
-		//			throw new IllegalStateException(Messages.ECLIPSE_CANNOT_CHANGE_LOCATION);
-		////		File file = null;
-		////		if (value.getProtocol().equalsIgnoreCase("file")) { //$NON-NLS-1$
-		////			try {
-		////				String basePath = new File(value.getFile()).getCanonicalPath();
-		////				value = new URL("file:" + basePath); //$NON-NLS-1$
-		////			} catch (IOException e) {
-		////				// do nothing just use the original value
-		////			}
-		////			file = new File(value.getFile(), LOCK_FILENAME);
-		////		}
-		//		lock = lock && !isReadOnly;
-		//		if (lock) {
-		//			try {
-		//				if (!lock(file))
-		//					return false;
-		//			} catch (IOException e) {
-		//				return false;
-		//			}
-		//		}
-		//		lockFile = file;
-		location = value;
-		//		LocationManager.buildURL(value.toExternalForm(), true);
-		//		if (property != null)
-		//			System.setProperty(property, location.toExternalForm());
-		return lock;
-	}
-
-	public boolean set(URL value, boolean lock) {
-		location = value;
-		return lock;
-	}
-
-	public synchronized void setParent(Location value) {
-		parent = value;
-	}
-
-	public synchronized boolean lock() throws IOException {
-		if (!isSet())
-			return false;
-		return lock(lockFile);
-	}
-
-	private boolean lock(File lock) throws IOException {
-		if (lock == null || isReadOnly)
-			return false;
-
-		File parentFile = new File(lock.getParent());
-		if (!parentFile.exists())
-			if (!parentFile.mkdirs())
-				return false;
-
-		setLocker(lock);
-		if (locker == null)
-			return true;
-		boolean locked = false;
-		try {
-			locked = locker.lock();
-			return locked;
-		} finally {
-			if (!locked)
-				locker = null;
-		}
-	}
-
-	private void setLocker(File lock) {
-		if (locker != null)
-			return;
-		String lockMode = Activator.context.getProperty(PROP_OSGI_LOCKING);
-		locker = createLocker(lock, lockMode);
-	}
-
-	public synchronized void release() {
-		if (locker != null)
-			locker.release();
-	}
-
-	public URL getArtifactRepositoryURL() {
-		//the cache is a co-located repository
-		return getMetadataRepositoryURL();
-	}
-
-	public URL getMetadataRepositoryURL() {
-		try {
-			return new URL(getDataArea(Activator.ID), "cache/"); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			// TODO Auto-generated catch block
-			return null;
-		}
-	}
-
-	public URL getDataArea(String touchpointId) {
-		try {
-			return new URL(getURL(), touchpointId + '/');
-		} catch (MalformedURLException e) {
-			// TODO Auto-generated catch block
-			return null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker.java
deleted file mode 100644
index 8976166..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-import java.io.IOException;
-
-/**
- * Internal class.
- */
-public interface Locker {
-	public boolean lock() throws IOException;
-
-	public void release();
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaIo.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaIo.java
deleted file mode 100644
index 0f32523..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaIo.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-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/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaNio.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaNio.java
deleted file mode 100644
index ff4e3e8..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Locker_JavaNio.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-import java.io.*;
-import java.nio.channels.FileLock;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Internal class.
- */
-public class Locker_JavaNio implements Locker {
-	private File lockFile;
-	private FileLock fileLock;
-	private RandomAccessFile raFile;
-
-	public Locker_JavaNio(File lockFile) {
-		this.lockFile = lockFile;
-	}
-
-	public synchronized boolean lock() throws IOException {
-		raFile = new RandomAccessFile(lockFile, "rw"); //$NON-NLS-1$
-		try {
-			// Fix for bug http://bugs.sun.com/view_bug.do?bug_id=6628575 and
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=44735
-			fileLock = raFile.getChannel().tryLock(0, 1, false);
-		} catch (IOException ioe) {
-			// print exception if debugging
-			if (BasicLocation.DEBUG)
-				System.out.println(NLS.bind(Messages.location_cannotLock, lockFile));
-			// produce a more specific message for clients
-			String specificMessage = NLS.bind(Messages.location_cannotLockNIO, new Object[] {lockFile, ioe.getMessage(), "\"-D" + BasicLocation.PROP_OSGI_LOCKING + "=none\""}); //$NON-NLS-1$ //$NON-NLS-2$
-			throw new IOException(specificMessage);
-		}
-		if (fileLock != null)
-			return true;
-		raFile.close();
-		raFile = null;
-		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;
-		}
-		if (raFile != null) {
-			try {
-				raFile.close();
-			} catch (IOException e) {
-				//don't complain, we're making a best effort to clean up
-			}
-			raFile = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Messages.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Messages.java
deleted file mode 100644
index ba110d0..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Messages.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.core.messages"; //$NON-NLS-1$
-	public static final String ECLIPSE_CANNOT_CHANGE_LOCATION = null;
-
-	static {
-		// initialize resource bundles
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-
-	public static String location_cannotLock;
-	public static String location_cannotLockNIO;
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/ProvisioningEventBus.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/ProvisioningEventBus.java
deleted file mode 100644
index 08ff80e..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/ProvisioningEventBus.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-import java.util.EventObject;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.*;
-import org.eclipse.osgi.framework.eventmgr.*;
-
-/**
- * Default implementation of the {@link IProvisioningEventBus} service.
- */
-public class ProvisioningEventBus implements EventDispatcher, IProvisioningEventBus {
-	private EventListeners syncListeners = new EventListeners();
-	private EventListeners asyncListeners = new EventListeners();
-	private EventManager eventManager = new EventManager("Provisioning Event Dispatcher"); //$NON-NLS-1$
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus#addListener(org.eclipse.equinox.internal.provisional.p2.core.eventbus.ProvisioningListener)
-	 */
-	public void addListener(ProvisioningListener toAdd) {
-		if (toAdd instanceof SynchronousProvisioningListener) {
-			synchronized (syncListeners) {
-				syncListeners.addListener(toAdd, toAdd);
-			}
-		} else {
-			synchronized (asyncListeners) {
-				asyncListeners.addListener(toAdd, toAdd);
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus#removeListener(org.eclipse.equinox.internal.provisional.p2.core.eventbus.ProvisioningListener)
-	 */
-	public void removeListener(ProvisioningListener toRemove) {
-		if (toRemove instanceof SynchronousProvisioningListener) {
-			synchronized (syncListeners) {
-				if (syncListeners != null) {
-					syncListeners.removeListener(toRemove);
-				}
-			}
-		} else {
-			synchronized (asyncListeners) {
-				if (asyncListeners != null) {
-					asyncListeners.removeListener(toRemove);
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus#publishEvent(java.util.EventObject)
-	 */
-	public void publishEvent(EventObject event) {
-		/* queue to hold set of listeners */
-		ListenerQueue listeners = new ListenerQueue(eventManager);
-
-		/* synchronize while building the listener list */
-		synchronized (syncListeners) {
-			/* add set of BundleContexts w/ listeners to queue */
-			listeners.queueListeners(syncListeners, this);
-			/* synchronously dispatch to populate listeners queue */
-			listeners.dispatchEventSynchronous(0, event);
-		}
-
-		listeners = new ListenerQueue(eventManager);
-		synchronized (asyncListeners) {
-			listeners.queueListeners(asyncListeners, this);
-			listeners.dispatchEventAsynchronous(0, event);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus#dispatchEvent(java.lang.Object, java.lang.Object, int, java.lang.Object)
-	 */
-	public void dispatchEvent(Object eventListener, Object listenerObject, int eventAction, Object eventObject) {
-		try {
-			((ProvisioningListener) eventListener).notify((EventObject) eventObject);
-		} catch (Exception e) {
-			e.printStackTrace();
-			//TODO Need to do the appropriate logging
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus#close()
-	 */
-	public void close() {
-		eventManager.close();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/StringPool.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/StringPool.java
deleted file mode 100644
index 21e2b36..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/StringPool.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core;
-
-import java.util.HashMap;
-
-/**
- * A string pool is used for sharing strings in a way that eliminates duplicate
- * equal strings.  A string pool instance can be maintained over a long period
- * of time, or used as a temporary structure during a string sharing pass over
- * a data structure.
- * <p>
- * This class is not intended to be subclassed by clients.
- * </p>
- */
-public final class StringPool {
-	private int savings;
-	private final HashMap map = new HashMap();
-
-	/**
-	 * Creates a new string pool.
-	 */
-	public StringPool() {
-		super();
-	}
-
-	/**
-	 * Adds a <code>String</code> to the pool.  Returns a <code>String</code>
-	 * that is equal to the argument but that is unique within this pool.
-	 * @param string The string to add to the pool
-	 * @return A string that is equal to the argument.
-	 */
-	public String add(String string) {
-		if (string == null)
-			return string;
-		Object result = map.get(string);
-		if (result != null) {
-			if (result != string)
-				savings += 44 + 2 * string.length();
-			return (String) result;
-		}
-		map.put(string, string);
-		return string;
-	}
-
-	/**
-	 * Returns an estimate of the size in bytes that was saved by sharing strings in 
-	 * the pool.  In particular, this returns the size of all strings that were added to the
-	 * pool after an equal string had already been added.  This value can be used
-	 * to estimate the effectiveness of a string sharing operation, in order to 
-	 * determine if or when it should be performed again.
-	 * 
-	 * In some cases this does not precisely represent the number of bytes that 
-	 * were saved.  For example, say the pool already contains string S1.  Now 
-	 * string S2, which is equal to S1 but not identical, is added to the pool five 
-	 * times. This method will return the size of string S2 multiplied by the 
-	 * number of times it was added, even though the actual savings in this case
-	 * is only the size of a single copy of S2.
-	 */
-	public int getSavedStringCount() {
-		return savings;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java
deleted file mode 100644
index e293037..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-import java.io.*;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.zip.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.util.NLS;
-
-public class FileUtils {
-
-	/**
-	 * Unzip from a File to an output directory.
-	 */
-	public static File[] unzipFile(File zipFile, File outputDir) throws IOException {
-		InputStream in = new FileInputStream(zipFile);
-		try {
-			return unzipStream(in, zipFile.length(), outputDir, null, null);
-		} catch (IOException e) {
-			// add the file name to the message
-			throw new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
-		} finally {
-			in.close();
-		}
-	}
-
-	/**
-	 * Unzip from a File to an output directory, with progress indication.
-	 * monitor may be null.
-	 */
-	public static File[] unzipFile(File zipFile, File outputDir, String taskName, IProgressMonitor monitor) throws IOException {
-		InputStream in = new FileInputStream(zipFile);
-		try {
-			return unzipStream(in, zipFile.length(), outputDir, taskName, monitor);
-		} catch (IOException e) {
-			// add the file name to the message
-			throw new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
-		} finally {
-			in.close();
-		}
-	}
-
-	/**
-	 * Unzip from a URL to an output directory, with progress indication.
-	 * monitor may be null.
-	 */
-	public static File[] unzipURL(URL zipURL, File outputDir, String taskName, IProgressMonitor monitor) throws IOException {
-		int size = zipURL.openConnection().getContentLength();
-		InputStream in = zipURL.openStream();
-		try {
-			return unzipStream(in, size, outputDir, taskName, monitor);
-		} catch (IOException e) {
-			// add the URL to the message
-			throw new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipURL, e.getMessage()));
-		} finally {
-			in.close();
-		}
-	}
-
-	/**
-	 * Unzip from an InputStream to an output directory.
-	 */
-	public static File[] unzipStream(InputStream stream, long size, File outputDir, String taskName, IProgressMonitor monitor) throws IOException {
-		InputStream is = monitor == null ? stream : stream; // new ProgressMonitorInputStream(stream, size, size, taskName, monitor); TODO Commented code
-		ZipInputStream in = new ZipInputStream(new BufferedInputStream(is));
-		ZipEntry ze = in.getNextEntry();
-		if (ze == null) {
-			// There must be at least one entry in a zip file.
-			// When there isn't getNextEntry returns null.
-			in.close();
-			throw new IOException(Messages.Util_Invalid_Zip_File_Format);
-		}
-		ArrayList unzippedFiles = new ArrayList();
-		do {
-			File outFile = new File(outputDir, ze.getName());
-			unzippedFiles.add(outFile);
-			if (ze.isDirectory()) {
-				outFile.mkdirs();
-			} else {
-				if (outFile.exists()) {
-					outFile.delete();
-				} else {
-					outFile.getParentFile().mkdirs();
-				}
-				try {
-					copyStream(in, false, new FileOutputStream(outFile), true);
-				} catch (FileNotFoundException e) {
-					// TEMP: ignore this for now in case we're trying to replace
-					// a running eclipse.exe
-				}
-				outFile.setLastModified(ze.getTime());
-			}
-			in.closeEntry();
-		} while ((ze = in.getNextEntry()) != null);
-		in.close();
-
-		return (File[]) unzippedFiles.toArray(new File[unzippedFiles.size()]);
-	}
-
-	// Delete empty directories under dir, including dir itself.
-	public static void deleteEmptyDirs(File dir) throws IOException {
-		File[] files = dir.listFiles();
-		if (files != null) {
-			for (int i = 0; i < files.length; i += 1) {
-				deleteEmptyDirs(files[i]);
-			}
-			dir.getCanonicalFile().delete();
-		}
-	}
-
-	// Delete the given file whether it is a file or a directory
-	public static void deleteAll(File file) {
-		if (!file.exists())
-			return;
-		if (file.isDirectory()) {
-			File[] files = file.listFiles();
-			if (files != null)
-				for (int i = 0; i < files.length; i++)
-					deleteAll(files[i]);
-		}
-		file.delete();
-	}
-
-	/**
-	 * Copy an input stream to an output stream.
-	 * Optionally close the streams when done.
-	 * Return the number of bytes written.
-	 */
-	public static int copyStream(InputStream in, boolean closeIn, OutputStream out, boolean closeOut) throws IOException {
-		try {
-			int written = 0;
-			byte[] buffer = new byte[16 * 1024];
-			int len;
-			while ((len = in.read(buffer)) != -1) {
-				out.write(buffer, 0, len);
-				written += len;
-			}
-			return written;
-		} finally {
-			try {
-				if (closeIn) {
-					in.close();
-				}
-			} finally {
-				if (closeOut) {
-					out.close();
-				}
-			}
-		}
-	}
-
-	public static void zip(File[] sourceFiles, File destinationArchive) throws IOException {
-		zip(sourceFiles, destinationArchive, true);
-	}
-
-	public static void zip(File[] sourceFiles, File destinationArchive, boolean includeRoot) throws IOException {
-		ZipOutputStream output = new ZipOutputStream(new FileOutputStream(destinationArchive));
-		try {
-			for (int i = 0; i < sourceFiles.length; i++)
-				if (sourceFiles[i].isDirectory())
-					zipDir(output, sourceFiles[i], includeRoot ? new Path(sourceFiles[i].getName()) : new Path("")); //$NON-NLS-1$
-				else
-					zipFile(output, sourceFiles[i], new Path(""));//$NON-NLS-1$
-		} finally {
-			try {
-				// Note! This call will fail miserably if no entries were added to the zip!
-				// The file is left open after an exception is thrown.
-				output.close();
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-	}
-
-	/*
-	 * Zip the contents of the given directory into the zip file represented by
-	 * the given zip stream. Prepend the given prefix to the file paths.
-	 */
-	private static void zipDir(ZipOutputStream output, File source, IPath prefix) {
-		File[] files = source.listFiles();
-		for (int i = 0; i < files.length; i++) {
-			try {
-				if (files[i].isFile())
-					zipFile(output, files[i], prefix);
-				else
-					zipDir(output, files[i], prefix.append(files[i].getName()));
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	/*
-	 * Add the given file to the zip file represented by the specified stream.
-	 * Prepend the given prefix to the path of the file.
-	 */
-	private static void zipFile(ZipOutputStream output, File sourceFile, IPath prefix) throws IOException {
-		InputStream input = new FileInputStream(sourceFile);
-		try {
-			ZipEntry zipEntry = new ZipEntry(prefix.append(sourceFile.getName()).toString());
-			zipEntry.setTime(sourceFile.lastModified());
-			output.putNextEntry(zipEntry);
-			copyStream(input, true, output, false);
-		} finally {
-			try {
-				input.close();
-			} catch (IOException e) {
-				// ignore
-			}
-			try {
-				output.closeEntry();
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Headers.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Headers.java
deleted file mode 100644
index a2b2fea..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Headers.java
+++ /dev/null
@@ -1,300 +0,0 @@
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.BundleException;
-
-/**
- * Headers classes. This class implements a Dictionary that has
- * the following behaviour:
- * <ul>
- * <li>put and remove clear throw UnsupportedOperationException.
- * The Dictionary is thus read-only to others.
- * <li>The String keys in the Dictionary are case-preserved,
- * but the get operation is case-insensitive.
- * </ul>
- * TODO: This class is copied from org.eclipse.osgi due to access restrictions. We
- * can't make this API so we need to find a place for it.
- * @since 3.1
- */
-public class Headers extends Dictionary implements Map {
-	private boolean readOnly = false;
-	private Object[] headers;
-	private Object[] values;
-	private int size = 0;
-
-	/**
-	 * Create an empty Headers dictionary.
-	 *
-	 * @param initialCapacity The initial capacity of this Headers object.
-	 */
-	public Headers(int initialCapacity) {
-		super();
-		headers = new Object[initialCapacity];
-		values = new Object[initialCapacity];
-	}
-
-	/**
-	 * Create a Headers dictionary from a Dictionary.
-	 *
-	 * @param values The initial dictionary for this Headers object.
-	 * @exception IllegalArgumentException If a case-variant of the key is
-	 * in the dictionary parameter.
-	 */
-	public Headers(Dictionary values) {
-		this(values.size());
-		/* initialize the headers and values */
-		Enumeration keys = values.keys();
-		while (keys.hasMoreElements()) {
-			Object key = keys.nextElement();
-			set(key, values.get(key));
-		}
-	}
-
-	/**
-	 * Case-preserved keys.
-	 */
-	public synchronized Enumeration keys() {
-		return new ArrayEnumeration(headers, size);
-	}
-
-	/**
-	 * Values.
-	 */
-	public synchronized Enumeration elements() {
-		return new ArrayEnumeration(values, size);
-	}
-
-	private int getIndex(Object key) {
-		boolean stringKey = key instanceof String;
-		for (int i = 0; i < size; i++) {
-			if (stringKey && (headers[i] instanceof String)) {
-				if (((String) headers[i]).equalsIgnoreCase((String) key))
-					return i;
-			} else {
-				if (headers[i].equals(key))
-					return i;
-			}
-		}
-		return -1;
-	}
-
-	private Object remove(int remove) {
-		Object removed = values[remove];
-		for (int i = remove; i < size; i++) {
-			if (i == headers.length - 1) {
-				headers[i] = null;
-				values[i] = null;
-			} else {
-				headers[i] = headers[i + 1];
-				values[i] = values[i + 1];
-			}
-		}
-		if (remove < size)
-			size--;
-		return removed;
-	}
-
-	private void add(Object header, Object value) {
-		if (size == headers.length) {
-			// grow the arrays
-			Object[] newHeaders = new Object[headers.length + 10];
-			Object[] newValues = new Object[values.length + 10];
-			System.arraycopy(headers, 0, newHeaders, 0, headers.length);
-			System.arraycopy(values, 0, newValues, 0, values.length);
-			headers = newHeaders;
-			values = newValues;
-		}
-		headers[size] = header;
-		values[size] = value;
-		size++;
-	}
-
-	/**
-	 * Support case-insensitivity for keys.
-	 *
-	 * @param key name.
-	 */
-	public synchronized Object get(Object key) {
-		int i = -1;
-		if ((i = getIndex(key)) != -1)
-			return values[i];
-		return null;
-	}
-
-	/**
-	 * Set a header value or optionally replace it if it already exists.
-	 *
-	 * @param key Key name.
-	 * @param value Value of the key or null to remove key.
-	 * @param replace A value of true will allow a previous
-	 * value of the key to be replaced.  A value of false 
-	 * will cause an IllegalArgumentException to be thrown 
-	 * if a previous value of the key exists.
-	 * @return the previous value to which the key was mapped,
-	 * or null if the key did not have a previous mapping.
-	 *
-	 * @exception IllegalArgumentException If a case-variant of the key is
-	 * already present.
-	 * @since 3.2
-	 */
-	public synchronized Object set(Object key, Object value, boolean replace) {
-		if (readOnly)
-			throw new UnsupportedOperationException();
-		if (key instanceof String)
-			key = ((String) key).intern();
-		int i = getIndex(key);
-		if (value == null) { /* remove */
-			if (i != -1)
-				return remove(i);
-		} else { /* put */
-			if (i != -1) { /* duplicate key */
-				if (!replace)
-					throw new IllegalArgumentException("HEADER_DUPLICATE_KEY_EXCEPTION: " + key); //$NON-NLS-1$
-				Object oldVal = values[i];
-				values[i] = value;
-				return oldVal;
-			}
-			add(key, value);
-		}
-		return null;
-	}
-
-	/**
-	 * Set a header value.
-	 *
-	 * @param key Key name.
-	 * @param value Value of the key or null to remove key.
-	 * @return the previous value to which the key was mapped,
-	 * or null if the key did not have a previous mapping.
-	 *
-	 * @exception IllegalArgumentException If a case-variant of the key is
-	 * already present.
-	 */
-	public synchronized Object set(Object key, Object value) {
-		return set(key, value, false);
-	}
-
-	public synchronized void setReadOnly() {
-		readOnly = true;
-	}
-
-	/**
-	 * Returns the number of entries (distinct keys) in this dictionary.
-	 *
-	 * @return  the number of keys in this dictionary.
-	 */
-	public synchronized int size() {
-		return size;
-	}
-
-	/**
-	 * Tests if this dictionary maps no keys to value. The general contract
-	 * for the <tt>isEmpty</tt> method is that the result is true if and only
-	 * if this dictionary contains no entries.
-	 *
-	 * @return  <code>true</code> if this dictionary maps no keys to values;
-	 *          <code>false</code> otherwise.
-	 */
-	public synchronized boolean isEmpty() {
-		return size == 0;
-	}
-
-	/**
-	 * Always throws UnsupportedOperationException.
-	 *
-	 * @param key header name.
-	 * @param value header value.
-	 * @throws UnsupportedOperationException
-	 */
-	public synchronized Object put(Object key, Object value) {
-		if (readOnly)
-			throw new UnsupportedOperationException();
-		return set(key, value, true);
-	}
-
-	/**
-	 * Always throws UnsupportedOperationException.
-	 *
-	 * @param key header name.
-	 * @throws UnsupportedOperationException
-	 */
-	public Object remove(Object key) {
-		throw new UnsupportedOperationException();
-	}
-
-	public String toString() {
-		return (values.toString());
-	}
-
-	public static Headers parseManifest(InputStream in) throws BundleException {
-		Headers headers = new Headers(10);
-		try {
-			ManifestElement.parseBundleManifest(in, headers);
-		} catch (IOException e) {
-			throw new BundleException("Error reading bundle manifest", e);
-		}
-		headers.setReadOnly();
-		return headers;
-	}
-
-	class ArrayEnumeration implements Enumeration {
-		private Object[] array;
-		int cur = 0;
-
-		public ArrayEnumeration(Object[] array, int size) {
-			this.array = new Object[size];
-			System.arraycopy(array, 0, this.array, 0, this.array.length);
-		}
-
-		public boolean hasMoreElements() {
-			return cur < array.length;
-		}
-
-		public Object nextElement() {
-			return array[cur++];
-		}
-	}
-
-	public synchronized void clear() {
-		if (readOnly)
-			throw new UnsupportedOperationException();
-	}
-
-	public synchronized boolean containsKey(Object key) {
-		return getIndex(key) >= 0;
-	}
-
-	public boolean containsValue(Object var0) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Set entrySet() {
-		throw new UnsupportedOperationException();
-	}
-
-	public Set keySet() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void putAll(Map var0) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Collection values() {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/LogHelper.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/LogHelper.java
deleted file mode 100644
index cb3fd61..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/LogHelper.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-import java.util.ArrayList;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.Activator;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.osgi.framework.log.FrameworkLog;
-import org.eclipse.osgi.framework.log.FrameworkLogEntry;
-
-public class LogHelper {
-
-	public static void log(IStatus status) {
-		FrameworkLog log = Activator.getFrameworkLog();
-		if (log != null) {
-			log.log(getLog(status));
-		} else {
-			System.out.println(status.getMessage());
-			if (status.getException() != null)
-				status.getException().printStackTrace();
-		}
-	}
-
-	public static void log(ProvisionException exception) {
-		log(new Status(exception.getStatus().getSeverity(), Activator.ID, "Provisioning exception", exception)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Copied from PlatformLogWriter in core runtime.
-	 */
-	private static FrameworkLogEntry getLog(IStatus status) {
-		Throwable t = status.getException();
-		ArrayList childlist = new ArrayList();
-
-		int stackCode = t instanceof CoreException ? 1 : 0;
-		// ensure a substatus inside a CoreException is properly logged 
-		if (stackCode == 1) {
-			IStatus coreStatus = ((CoreException) t).getStatus();
-			if (coreStatus != null) {
-				childlist.add(getLog(coreStatus));
-			}
-		}
-
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				childlist.add(getLog(children[i]));
-			}
-		}
-
-		FrameworkLogEntry[] children = (FrameworkLogEntry[]) (childlist.size() == 0 ? null : childlist.toArray(new FrameworkLogEntry[childlist.size()]));
-
-		return new FrameworkLogEntry(status.getPlugin(), status.getSeverity(), status.getCode(), status.getMessage(), stackCode, t, children);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Messages.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Messages.java
deleted file mode 100644
index 7b00a7f..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Messages.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.core.helpers.messages"; //$NON-NLS-1$
-
-	static {
-		// load message values from bundle file and assign to fields below
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String Util_Invalid_Zip_File_Format;
-	public static String Util_Error_Unzipping;
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/OrderedProperties.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/OrderedProperties.java
deleted file mode 100644
index 3c2c852..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/OrderedProperties.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-import java.util.*;
-
-/**
- * A Properties collection that maintains the order of insertion.
- * <p>
- * This class is used to store properties similar to {@link java.util.Properties}.
- * In particular both keys and values are strings and must be not null.
- * However this class is somewhat simplified and does not implement Cloneable, 
- * Serializable and Hashtable.
- * <p>
- * In contrast to java.util.Properties this class maintains the order by which 
- * properties are added. This is implemented using a {@link LinkedHashMap}.
- * <p>
- * The class does not support default properties as they can be expressed by 
- * creating java.util.Properties hierarchies.
- */
-public class OrderedProperties extends Dictionary implements Map {
-
-	LinkedHashMap propertyMap = null;
-
-	public static OrderedProperties unmodifiableProperties(Map properties) {
-		return new UnmodifiableProperties(properties);
-	}
-
-	public OrderedProperties() {
-		super();
-	}
-
-	public OrderedProperties(int size) {
-		super();
-		propertyMap = new LinkedHashMap(size);
-	}
-
-	public OrderedProperties(OrderedProperties properties) {
-		super();
-		propertyMap = new LinkedHashMap(properties.size());
-		putAll(properties);
-	}
-
-	/**
-	 * Set the property value.
-	 * <p>
-	 * If a property with the key already exists, the previous
-	 * value is replaced. Otherwise a new property is added at
-	 * the end collection.
-	 * 
-	 * @param key   must not be null
-	 * @param value must not be null
-	 * @return previous value associated with specified key, or <tt>null</tt>
-	 *	       if there was no mapping for key.
-	 */
-	public Object setProperty(String key, String value) {
-		init();
-		return propertyMap.put(key, value);
-	}
-
-	public String getProperty(String key) {
-		return (String) (propertyMap == null ? null : propertyMap.get(key));
-	}
-
-	public void putAll(OrderedProperties properties) {
-		putAll((Map) properties);
-	}
-
-	/**
-	 *	Initialize the map.
-	 */
-	private void init() {
-		if (propertyMap == null) {
-			propertyMap = new LinkedHashMap();
-		}
-	}
-
-	public int size() {
-		return propertyMap == null ? 0 : propertyMap.size();
-	}
-
-	public boolean isEmpty() {
-		return propertyMap == null ? true : propertyMap.isEmpty();
-	}
-
-	public synchronized void clear() {
-		propertyMap = null;
-	}
-
-	public Object put(Object arg0, Object arg1) {
-		init();
-		return propertyMap.put(arg0, arg1);
-	}
-
-	public boolean containsKey(Object key) {
-		return propertyMap != null ? propertyMap.containsKey(key) : false;
-	}
-
-	public boolean containsValue(Object value) {
-		return propertyMap != null ? propertyMap.containsValue(value) : false;
-	}
-
-	public Set entrySet() {
-		return propertyMap != null ? propertyMap.entrySet() : Collections.EMPTY_SET;
-	}
-
-	public Object get(Object key) {
-		return propertyMap != null ? propertyMap.get(key) : null;
-	}
-
-	public Set keySet() {
-		return propertyMap != null ? propertyMap.keySet() : Collections.EMPTY_SET;
-	}
-
-	public void putAll(Map arg0) {
-		init();
-		propertyMap.putAll(arg0);
-	}
-
-	public Object remove(Object key) {
-		return propertyMap != null ? propertyMap.remove(key) : null;
-	}
-
-	public Collection values() {
-		return propertyMap != null ? propertyMap.values() : Collections.EMPTY_LIST;
-	}
-
-	public boolean equals(Object o) {
-		if (o == this)
-			return true;
-		if (o instanceof OrderedProperties) {
-			OrderedProperties rhs = (OrderedProperties) o;
-			if (rhs.propertyMap == this.propertyMap)
-				return true;
-			if (rhs.propertyMap == null || this.propertyMap == null)
-				return false;
-			return rhs.propertyMap.equals(this.propertyMap);
-		}
-		return propertyMap.equals(o);
-	}
-
-	public int hashCode() {
-		return propertyMap != null ? propertyMap.hashCode() : 0;
-	}
-
-	public String toString() {
-		StringBuffer sb = new StringBuffer();
-		sb.append(propertyMap);
-		return sb.toString();
-	}
-
-	private class ElementsEnum implements Enumeration {
-
-		Iterator iterator = null;
-
-		public ElementsEnum(OrderedProperties properties) {
-			iterator = properties.propertyMap.values().iterator();
-		}
-
-		public boolean hasMoreElements() {
-			return iterator.hasNext();
-		}
-
-		public Object nextElement() {
-			return iterator.next();
-		}
-	}
-
-	public Enumeration elements() {
-		return new ElementsEnum(this);
-	}
-
-	private class KeysEnum implements Enumeration {
-
-		Iterator iterator = null;
-
-		public KeysEnum(OrderedProperties properties) {
-			iterator = properties.propertyMap.keySet().iterator();
-		}
-
-		public boolean hasMoreElements() {
-			return iterator.hasNext();
-		}
-
-		public Object nextElement() {
-			return iterator.next();
-		}
-	}
-
-	public Enumeration keys() {
-		return new KeysEnum(this);
-	}
-
-	private static class UnmodifiableProperties extends OrderedProperties {
-
-		UnmodifiableProperties(Map properties) {
-			super();
-			for (Iterator iter = properties.entrySet().iterator(); iter.hasNext();) {
-				Map.Entry entry = (Map.Entry) iter.next();
-				super.put(entry.getKey(), entry.getValue());
-			}
-		}
-
-		public synchronized Object setProperty(String key, String value) {
-			throw new UnsupportedOperationException();
-		}
-
-		public synchronized Object put(Object key, Object value) {
-			throw new UnsupportedOperationException();
-		}
-
-		public synchronized Object remove(Object key) {
-			throw new UnsupportedOperationException();
-		}
-
-		public synchronized void putAll(Map t) {
-			throw new UnsupportedOperationException();
-		}
-
-		public synchronized void clear() {
-			throw new UnsupportedOperationException();
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/ServiceHelper.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/ServiceHelper.java
deleted file mode 100644
index e09fb66..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/ServiceHelper.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-import org.osgi.framework.*;
-
-public class ServiceHelper {
-	/**
-	 * Returns the service described by the given arguments.  Note that this is a helper class
-	 * that <b>immediately</b> ungets the service reference.  This results in a window where the
-	 * system thinks the service is not in use but indeed the caller is about to use the returned 
-	 * service object.  
-	 * @param context
-	 * @param name
-	 * @return The requested service
-	 */
-	public static Object getService(BundleContext context, String name) {
-		if (context == null)
-			return null;
-		ServiceReference reference = context.getServiceReference(name);
-		if (reference == null)
-			return null;
-		Object result = context.getService(reference);
-		context.ungetService(reference);
-		return result;
-	}
-
-	public static Object getService(BundleContext context, String name, String filter) {
-		ServiceReference[] references;
-		try {
-			references = context.getServiceReferences(name, filter);
-		} catch (InvalidSyntaxException e) {
-			// TODO Auto-generated catch block
-			return null;
-		}
-		if (references == null || references.length == 0)
-			return null;
-		Object result = context.getService(references[0]);
-		context.ungetService(references[0]);
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Tracing.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Tracing.java
deleted file mode 100644
index 6f81df5..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/Tracing.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-import java.util.Date;
-import org.eclipse.equinox.internal.p2.core.Activator;
-import org.eclipse.osgi.service.debug.DebugOptions;
-
-/**
- * Manages debug tracing options and provides convenience methods for printing
- * debug statements.
- */
-public class Tracing {
-	//master p2 debug flag
-	public static boolean DEBUG = false;
-
-	//debug constants
-	public static boolean DEBUG_PARSE_PROBLEMS = false;
-	public static boolean DEBUG_GENERATOR_PARSING = false;
-	public static boolean DEBUG_INSTALL_REGISTRY = false;
-	public static boolean DEBUG_METADATA_PARSING = false;
-	public static boolean DEBUG_MIRRORS = false;
-
-	static {
-		DebugOptions options = (DebugOptions) ServiceHelper.getService(Activator.context, DebugOptions.class.getName());
-		if (options != null) {
-			DEBUG = options.getBooleanOption(Activator.ID + "/debug", false); //$NON-NLS-1$
-			if (DEBUG) {
-				DEBUG_PARSE_PROBLEMS = options.getBooleanOption(Activator.ID + "/core/parseproblems", false); //$NON-NLS-1$
-				DEBUG_GENERATOR_PARSING = options.getBooleanOption(Activator.ID + "/generator/parsing", false); //$NON-NLS-1$
-				DEBUG_INSTALL_REGISTRY = options.getBooleanOption(Activator.ID + "/engine/installregistry", false); //$NON-NLS-1$
-				DEBUG_METADATA_PARSING = options.getBooleanOption(Activator.ID + "/metadata/parsing", false); //$NON-NLS-1$
-				DEBUG_MIRRORS = options.getBooleanOption(Activator.ID + "/artifacts/mirrors", false); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Prints a debug message on stdout. Callers should first ensure their specific 
-	 * debug option is enabled.
-	 */
-	public static void debug(String message) {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("[p2] "); //$NON-NLS-1$
-		buffer.append(new Date(System.currentTimeMillis()));
-		buffer.append(" - ["); //$NON-NLS-1$
-		buffer.append(Thread.currentThread().getName());
-		buffer.append("] "); //$NON-NLS-1$
-		buffer.append(message);
-		System.out.println(buffer.toString());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java
deleted file mode 100644
index 5c7adb7..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.core.helpers;
-
-import java.io.File;
-import java.net.URL;
-
-/**
- * A utility class for manipulating URLs.
- */
-public class URLUtil {
-	/*
-	 * Compares two URL for equality.
-	 * Return false if one of them is null
-	 */
-	public static boolean sameURL(URL url1, URL url2) {
-		if (url1 == url2)
-			return true;
-		if (url1 == null || url2 == null)
-			return false;
-		if (url1.equals(url2))
-			return true;
-
-		// check if we have two local file references that are case variants
-		File file1 = toFile(url1);
-		return file1 == null ? false : file1.equals(toFile(url2));
-	}
-
-	/**
-	 * Returns the URL as a local file, or <code>null</code> if the given
-	 * URL does not represent a local file.
-	 * @param url The url to return the file file
-	 * @return The local file corresponding to the given url, or <code>null</code>
-	 */
-	public static File toFile(URL url) {
-		return "file".equalsIgnoreCase(url.getProtocol()) ? new File(url.getFile()) : null; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/messages.properties b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/messages.properties
deleted file mode 100644
index b6485bf..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/messages.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-Util_Invalid_Zip_File_Format=Invalid zip file format
-Util_Error_Unzipping=Error unzipping {0}: {1}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/messages.properties b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/messages.properties
deleted file mode 100644
index f6ae633..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/messages.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/Messages.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/Messages.java
deleted file mode 100644
index 853e03b..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/Messages.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.persistence;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.persistence.messages"; //$NON-NLS-1$
-
-	static {
-		// load message values from bundle file and assign to fields below
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String XMLParser_No_SAX_Parser;
-	public static String XMLParser_Error_At_Line;
-	public static String XMLParser_Error_At_Line_Column;
-	public static String XMLParser_Error_At_Name_Line;
-	public static String XMLParser_Error_At_Name_Line_Column;
-	public static String XMLParser_Missing_Required_Attribute;
-	public static String XMLParser_Unexpected_Attribute;
-	public static String XMLParser_Illegal_Value_For_Attribute;
-	public static String XMLParser_Unexpected_Element;
-	public static String XMLParser_Duplicate_Element;
-	public static String XMLParser_Unexpected_Character_Data;
-	public static String XMLParser_Element_Not_Allowed;
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLConstants.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLConstants.java
deleted file mode 100644
index 607b846..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLConstants.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Genuitec, LLC - added license support
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.persistence;
-
-public interface XMLConstants {
-
-	// Constants used in defining a default processing instruction
-	// including a class name and a version of the associated XML
-	// for some category of objects.
-	//	e.g. <?category class='a.b.c.SomeClass' version='1.2.3'?>
-	//
-	public static final String PI_CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
-	public static final String PI_VERSION_ATTRIBUTE = "version"; //$NON-NLS-1$
-
-	// Element and attribute names for a standard property collection.
-	//	e.g. <properties size='1'>
-	//			<property name='some_name' value='some_value'/>
-	//		 </properties>
-	public static final String PROPERTIES_ELEMENT = "properties"; //$NON-NLS-1$
-	public static final String PROPERTY_ELEMENT = "property"; //$NON-NLS-1$
-	public static final String PROPERTY_NAME_ATTRIBUTE = "name"; //$NON-NLS-1$
-	public static final String PROPERTY_VALUE_ATTRIBUTE = "value"; //$NON-NLS-1$
-
-	// Constants for the names of common general attributes
-	public static final String ID_ATTRIBUTE = "id"; //$NON-NLS-1$
-	public static final String PARENT_ID_ATTRIBUTE = "parentId"; //$NON-NLS-1$
-	public static final String TYPE_ATTRIBUTE = "type"; //$NON-NLS-1$
-	public static final String NAME_ATTRIBUTE = "name"; //$NON-NLS-1$
-	public static final String VERSION_ATTRIBUTE = "version"; //$NON-NLS-1$
-	public static final String VERSION_RANGE_ATTRIBUTE = "range"; //$NON-NLS-1$
-	public static final String NAMESPACE_ATTRIBUTE = "namespace"; //$NON-NLS-1$
-	public static final String CLASSIFIER_ATTRIBUTE = "classifier"; //$NON-NLS-1$
-	public static final String DESCRIPTION_ATTRIBUTE = "description"; //$NON-NLS-1$
-	public static final String PROVIDER_ATTRIBUTE = "provider"; //$NON-NLS-1$
-	public static final String URL_ATTRIBUTE = "url"; //$NON-NLS-1$
-
-	// Constants for the license and copyright elements
-	public static final String LICENSES_ELEMENT = "licenses"; //$NON-NLS-1$
-	public static final String LICENSE_ELEMENT = "license"; //$NON-NLS-1$
-	public static final String COPYRIGHT_ELEMENT = "copyright"; //$NON-NLS-1$
-
-	// A constant for the name of an attribute of a collection or array element
-	// specifying the size or length
-	public static final String COLLECTION_SIZE_ATTRIBUTE = "size"; //$NON-NLS-1$
-
-	// A constant for an empty array of attribute names
-	public static String[] noAttributes = new String[0];
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLParser.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLParser.java
deleted file mode 100644
index bb0d8c0..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLParser.java
+++ /dev/null
@@ -1,714 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.persistence;
-
-import java.util.List;
-import java.util.StringTokenizer;
-import javax.xml.parsers.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.Activator;
-import org.eclipse.equinox.internal.p2.core.StringPool;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.p2.core.helpers.Tracing;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-import org.osgi.util.tracker.ServiceTracker;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-public abstract class XMLParser extends DefaultHandler implements XMLConstants {
-
-	// Get the root object that is being parsed.
-	protected abstract Object getRootObject();
-
-	// Get a generic parser error message for inclusion in an error status
-	protected abstract String getErrorMessage();
-
-	protected BundleContext context; // parser class bundle context
-	protected String bundleId; // parser class bundle id
-
-	protected XMLReader xmlReader; // the XML reader for the parser
-
-	protected MultiStatus status = null; // accumulation of non-fatal errors
-	protected Locator locator = null; // document locator, if supported by the parser
-
-	protected StringPool stringPool = new StringPool();//used to eliminate string duplication
-	private IProgressMonitor monitor;
-
-	private static ServiceTracker xmlTracker = null;
-
-	public XMLParser(BundleContext context, String pluginId) {
-		super();
-		this.context = context;
-		this.bundleId = pluginId;
-	}
-
-	/**
-	 *  Non-fatal errors accumulated during parsing.
-	 */
-	public IStatus getStatus() {
-		return (status != null ? status : Status.OK_STATUS);
-	}
-
-	/**
-	 * Returns the canonical form of a string. Used to eliminate duplicate equal 
-	 * strings.
-	 */
-	protected String canonicalize(String string) {
-		return stringPool == null ? string : stringPool.add(string);
-	}
-
-	public boolean isValidXML() {
-		return (status == null || !status.matches(IStatus.ERROR | IStatus.CANCEL));
-	}
-
-	private static SAXParserFactory acquireXMLParsing(BundleContext context) {
-		if (xmlTracker == null) {
-			xmlTracker = new ServiceTracker(context, SAXParserFactory.class.getName(), null);
-			xmlTracker.open();
-		}
-		return (SAXParserFactory) xmlTracker.getService();
-	}
-
-	protected static void releaseXMLParsing() {
-		if (xmlTracker != null) {
-			xmlTracker.close();
-		}
-	}
-
-	protected SAXParser getParser() throws ParserConfigurationException, SAXException {
-		SAXParserFactory factory = acquireXMLParsing(this.context);
-		if (factory == null) {
-			throw new SAXException(Messages.XMLParser_No_SAX_Parser);
-		}
-		factory.setNamespaceAware(true);
-		factory.setValidating(false);
-		try {
-			factory.setFeature("http://xml.org/sax/features/string-interning", true); //$NON-NLS-1$
-		} catch (SAXException se) {
-			// some parsers may not support string interning
-		}
-		SAXParser theParser = factory.newSAXParser();
-		if (theParser == null) {
-			throw new SAXException(Messages.XMLParser_No_SAX_Parser);
-		}
-		xmlReader = theParser.getXMLReader();
-		return theParser;
-	}
-
-	public static String makeSimpleName(String localName, String qualifiedName) {
-		if (localName != null && localName.length() > 0) {
-			return localName;
-		}
-		int nameSpaceIndex = qualifiedName.indexOf(":"); //$NON-NLS-1$
-		return (nameSpaceIndex == -1 ? qualifiedName : qualifiedName.substring(nameSpaceIndex + 1));
-	}
-
-	/**
-	 * Set the document locator for the parser
-	 * 
-	 * @see org.xml.sax.ContentHandler#setDocumentLocator
-	 */
-	public void setDocumentLocator(Locator docLocator) {
-		locator = docLocator;
-	}
-
-	/**
-	 * Sets the progress monitor for the parser
-	 */
-	protected void setProgressMonitor(IProgressMonitor monitor) {
-		this.monitor = monitor;
-	}
-
-	/**
-	 * Abstract base class for content handlers
-	 */
-	protected abstract class AbstractHandler extends DefaultHandler {
-
-		protected ContentHandler parentHandler = null;
-		protected String elementHandled = null;
-
-		protected StringBuffer characters = null; // character data inside an element
-
-		public AbstractHandler() {
-			// Empty constructor for a root handler
-		}
-
-		public AbstractHandler(ContentHandler parentHandler) {
-			this.parentHandler = parentHandler;
-			xmlReader.setContentHandler(this);
-		}
-
-		public AbstractHandler(ContentHandler parentHandler, String elementHandled) {
-			this.parentHandler = parentHandler;
-			xmlReader.setContentHandler(this);
-			this.elementHandled = elementHandled;
-		}
-
-		/**
-		 * Set the document locator for the parser
-		 * 
-		 * @see org.xml.sax.ContentHandler#setDocumentLocator
-		 */
-		public void setDocumentLocator(Locator docLocator) {
-			locator = docLocator;
-		}
-
-		public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-			finishCharacters();
-			String name = makeSimpleName(localName, qName);
-			trace(name, attributes);
-			startElement(name, attributes);
-		}
-
-		public abstract void startElement(String name, Attributes attributes) throws SAXException;
-
-		public void invalidElement(String name, Attributes attributes) {
-			unexpectedElement(this, name, attributes);
-			new IgnoringHandler(this);
-		}
-
-		public void endElement(String namespaceURI, String localName, String qName) {
-			// TODO: throw a bad state error if makeSimpleName(localName, qName) != elementHandled
-			finishCharacters();
-			finished();
-			// Restore the parent content handler
-			xmlReader.setContentHandler(parentHandler);
-		}
-
-		/**
-		 * 	An implementation for startElement when there are no sub-elements
-		 */
-		protected void noSubElements(String name, Attributes attributes) {
-			unexpectedElement(this, name, attributes);
-			// Create a new handler to ignore subsequent nested elements			
-			new IgnoringHandler(this);
-		}
-
-		/*
-		 * Save up character data until endElement or nested startElement
-		 * 
-		 * @see org.xml.sax.ContentHandler#characters
-		 */
-		public void characters(char[] chars, int start, int length) {
-			if (this.characters == null) {
-				this.characters = new StringBuffer();
-			}
-			this.characters.append(chars, start, length);
-		}
-
-		// Consume the characters accumulated in this.characters.
-		// Called before startElement or endElement
-		private String finishCharacters() {
-			// common case -- no characters or only whitespace
-			if (this.characters == null || this.characters.length() == 0) {
-				return null;
-			}
-			if (allWhiteSpace(this.characters)) {
-				this.characters.setLength(0);
-				return null;
-			}
-
-			// process the characters
-			try {
-				String trimmedChars = this.characters.toString().trim();
-				if (trimmedChars.length() == 0) {
-					// this shouldn't happen due to the test for allWhiteSpace above
-					System.err.println("Unexpected non-whitespace characters: " //$NON-NLS-1$
-							+ trimmedChars);
-					return null;
-				}
-				processCharacters(trimmedChars);
-				return trimmedChars;
-			} finally {
-				this.characters.setLength(0);
-			}
-		}
-
-		// Method to override in the handler of an element with CDATA. 
-		protected void processCharacters(String data) {
-			if (data.length() > 0) {
-				unexpectedCharacterData(this, data);
-			}
-		}
-
-		private boolean allWhiteSpace(StringBuffer sb) {
-			int length = sb.length();
-			for (int i = 0; i < length; i += 1) {
-				if (!Character.isWhitespace(sb.charAt(i))) {
-					return false;
-				}
-			}
-			return true;
-		}
-
-		/**
-		 * 	Called when this element and all elements nested into it have been
-		 * 	handled.
-		 */
-		protected void finished() {
-			// Do nothing by default
-		}
-
-		/*
-		 * 	A name used to identify the handler.
-		 */
-		public String getName() {
-			return (elementHandled != null ? elementHandled : "NoName"); //$NON-NLS-1$
-		}
-
-		/**
-		 * Parse the attributes of an element with two required attributes.
-		 */
-		protected String[] parseRequiredAttributes(Attributes attributes, String name1, String name2) {
-			return parseRequiredAttributes(attributes, new String[] {name1, name2});
-		}
-
-		/**
-		 * Parse the attributes of an element with only required attributes.
-		 */
-		protected String[] parseRequiredAttributes(Attributes attributes, String[] required) {
-			return parseAttributes(attributes, required, noAttributes);
-		}
-
-		/**
-		 * Parse the attributes of an element with a single optional attribute.
-		 */
-		protected String parseOptionalAttribute(Attributes attributes, String name) {
-			return parseAttributes(attributes, noAttributes, new String[] {name})[0];
-		}
-
-		/**
-		 * Parse the attributes of an element, given the list of required and optional ones.
-		 * Return values in same order, null for those not present.
-		 * Log warnings for extra attributes or missing required attributes.
-		 */
-		protected String[] parseAttributes(Attributes attributes, String[] required, String[] optional) {
-			String[] result = new String[required.length + optional.length];
-			for (int i = 0; i < attributes.getLength(); i += 1) {
-				String name = attributes.getLocalName(i);
-				String value = canonicalize(attributes.getValue(i).trim());
-				int j;
-				if ((j = indexOf(required, name)) >= 0) {
-					result[j] = value;
-				} else if ((j = indexOf(optional, name)) >= 0) {
-					result[required.length + j] = value;
-				} else {
-					unexpectedAttribute(elementHandled, name, value);
-				}
-			}
-			for (int i = 0; i < required.length; i += 1) {
-				checkRequiredAttribute(elementHandled, required[i], result[i]);
-			}
-			return result;
-		}
-
-	}
-
-	/**
-	 *	Handler for an XML document.
-	 *
-	 *	Using the inelegant name 'DocHandler' to clearly distinguish
-	 *	this class from the deprecated org.xml.sax.DocumentHandler.
-	 */
-	protected class DocHandler extends AbstractHandler {
-
-		RootHandler rootHandler;
-
-		public DocHandler(String rootName, RootHandler rootHandler) {
-			super(null, rootName);
-			this.rootHandler = rootHandler;
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(elementHandled)) {
-				rootHandler.initialize(this, name, attributes);
-				xmlReader.setContentHandler(rootHandler);
-			} else {
-				this.noSubElements(name, attributes);
-			}
-		}
-
-	}
-
-	/**
-	 * 	Abstract handler for the root element.
-	 */
-	protected abstract class RootHandler extends AbstractHandler {
-
-		public RootHandler() {
-			super();
-		}
-
-		public void initialize(DocHandler document, String rootName, Attributes attributes) {
-			this.parentHandler = document;
-			this.elementHandled = rootName;
-			handleRootAttributes(attributes);
-		}
-
-		protected abstract void handleRootAttributes(Attributes attributes);
-
-	}
-
-	/**
-	 * 	Handler for an ordered properties collection.
-	 */
-	protected class PropertiesHandler extends AbstractHandler {
-
-		private OrderedProperties properties;
-
-		public PropertiesHandler(ContentHandler parentHandler, Attributes attributes) {
-			super(parentHandler, PROPERTIES_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			properties = (size != null ? new OrderedProperties(new Integer(size).intValue()) : new OrderedProperties());
-		}
-
-		public OrderedProperties getProperties() {
-			return properties;
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(PROPERTY_ELEMENT)) {
-				new PropertyHandler(this, attributes, properties);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-
-	}
-
-	/**
-	 * 	Handler for a property in an ordered properties collection.
-	 */
-	protected class PropertyHandler extends AbstractHandler {
-
-		public PropertyHandler(ContentHandler parentHandler, Attributes attributes, OrderedProperties properties) {
-			super(parentHandler, PROPERTY_ELEMENT);
-			String[] property = parseProperty(attributes);
-			if (isValidProperty(property)) {
-				properties.setProperty(property[0], property[1]);
-			}
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			invalidElement(name, attributes);
-		}
-
-		private String[] parseProperty(Attributes attributes) {
-			return parseRequiredAttributes(attributes, PROPERTY_NAME_ATTRIBUTE, PROPERTY_VALUE_ATTRIBUTE);
-		}
-
-		private boolean isValidProperty(String[] property) {
-			return (property.length == 2 && property[0] != null && property[1] != null);
-		}
-	}
-
-	/**
-	 * 	Handler for an element with only cdata and no sub-elements.
-	 */
-	protected class TextHandler extends AbstractHandler {
-
-		private String text = null;
-
-		private List texts = null;
-
-		// Constructor for a subclass that processes the attributes
-		public TextHandler(AbstractHandler parent, String elementName) {
-			super(parent, elementName);
-		}
-
-		// Constructor for a subclass with no attributes
-		public TextHandler(AbstractHandler parent, String elementName, Attributes attributes) {
-			super(parent, elementName);
-			parseAttributes(attributes, noAttributes, noAttributes);
-		}
-
-		public TextHandler(AbstractHandler parent, String elementName, Attributes attributes, List texts) {
-			super(parent, elementName);
-			parseAttributes(attributes, noAttributes, noAttributes);
-			this.texts = texts;
-		}
-
-		public String getText() {
-			return (text != null ? text : ""); //$NON-NLS-1$
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			invalidElement(name, attributes);
-		}
-
-		protected void processCharacters(String data) {
-			this.text = data;
-			if (texts != null) {
-				texts.add(getText());
-			}
-		}
-
-	}
-
-	/**
-	 * 	Handler for ignoring content.
-	 */
-	protected class IgnoringHandler extends AbstractHandler {
-
-		public IgnoringHandler(AbstractHandler parent) {
-			super(parent);
-			this.elementHandled = "IgnoringAll"; //$NON-NLS-1$
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			noSubElements(name, attributes);
-		}
-
-	}
-
-	// Helpers for processing instructions that include a Class and/or a Version.
-
-	public String extractPIClass(String data) {
-		return extractPIAttribute(data, PI_CLASS_ATTRIBUTE);
-	}
-
-	public Version extractPIVersion(String target, String data) {
-		return checkVersion(target, PI_VERSION_ATTRIBUTE, extractPIAttribute(data, PI_VERSION_ATTRIBUTE));
-	}
-
-	private String extractPIAttribute(String data, String key) {
-		StringTokenizer piTokenizer = new StringTokenizer(data, " \'\""); //$NON-NLS-1$
-		String[] tokens = new String[piTokenizer.countTokens()];
-		int index = 0;
-		int valueIndex = -1;
-		while (piTokenizer.hasMoreTokens() && index < tokens.length) {
-			tokens[index] = piTokenizer.nextToken();
-			if (tokens[index].equals(key + '=') && index < tokens.length) {
-				valueIndex = index + 1;
-			}
-			index++;
-		}
-		return (valueIndex >= 0 ? tokens[valueIndex] : ""); //$NON-NLS-1$
-	}
-
-	public void error(SAXParseException ex) {
-		addError(IStatus.WARNING, ex.getMessage(), ex);
-	}
-
-	public void fatalError(SAXParseException ex) {
-		addError(IStatus.ERROR, ex.getMessage(), ex);
-	}
-
-	protected String getErrorPrefix() {
-		return null;
-	}
-
-	protected String getErrorSuffix() {
-		return null;
-	}
-
-	/**
-	 * Collects an error or warning that occurred during parsing.
-	 */
-	public final void addError(int severity, String msg, Throwable exception) {
-		int line = 0;
-		int column = 0;
-		String key = msg;
-		Object[] args = new Object[] {};
-		String root = (getRootObject() == null ? "" //$NON-NLS-1$
-				: " (" + getRootObject() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (this.locator != null) {
-			String name = this.locator.getSystemId();
-			line = this.locator.getLineNumber();
-			column = this.locator.getColumnNumber();
-			if (line > 0) {
-				args = new Object[] {msg, root, name, new Integer(line), new Integer(column)};
-				if (column > 0) {
-					key = (name != null ? Messages.XMLParser_Error_At_Name_Line_Column //
-							: Messages.XMLParser_Error_At_Line_Column);
-				} else {
-					key = (name != null ? Messages.XMLParser_Error_At_Name_Line //
-							: Messages.XMLParser_Error_At_Line);
-				}
-			}
-		}
-		String errMsg = NLS.bind(key, args);
-		String prefix = getErrorPrefix();
-		String suffix = getErrorSuffix();
-		if (prefix != null) {
-			errMsg = prefix + errMsg;
-		}
-		if (suffix != null) {
-			errMsg = errMsg + suffix;
-		}
-		IStatus currStatus = new Status(severity, Activator.ID, errMsg, exception);
-		if (this.status == null) {
-			this.status = new MultiStatus(bundleId, IStatus.OK, new IStatus[] {currStatus}, getErrorMessage(), null);
-		} else {
-			this.status.add(currStatus);
-		}
-	}
-
-	public void trace(String element, Attributes attributes) {
-		// TODO: support logging
-		//		if (!getLogger().isDebugLoggable()) {
-		//			return;
-		//		}
-		//		int indentSize = (this.stateStack != null ? this.stateStack.size() - 1 : 1);
-		//		if (attributes == null) {
-		//			indentSize -= 1;
-		//		}
-		//		char[] indent = new char[2 * indentSize];
-		//		Arrays.fill(indent, ' ');
-		//		StringBuffer sb = new StringBuffer();
-		//		sb.append(indent);
-		//		sb.append('<');
-		//		if (attributes != null) {
-		//			sb.append(element);
-		//			toString(sb, attributes);
-		//		} else {
-		//			sb.append('/').append(element);
-		//		}
-		//		sb.append('>');
-		//		getLogger().debug(sb.toString());
-	}
-
-	private static String toString(Attributes attributes) {
-		StringBuffer result = new StringBuffer();
-		toString(result, attributes);
-		return result.toString();
-	}
-
-	private static void toString(StringBuffer sb, Attributes attributes) {
-		for (int i = 0; i < attributes.getLength(); i += 1) {
-			String name = attributes.getLocalName(i);
-			String value = attributes.getValue(i).trim();
-			sb.append(' ').append(name);
-			sb.append('=').append('"');
-			sb.append(value);
-			sb.append('"');
-		}
-	}
-
-	public void checkRequiredAttribute(String element, String name, Object value) {
-		if (value == null) {
-			addError(IStatus.WARNING, NLS.bind(Messages.XMLParser_Missing_Required_Attribute, element, name), null);
-		}
-	}
-
-	// Check the format of a required boolean attribute
-	public Boolean checkBoolean(String element, String attribute, String value) {
-		try {
-			return Boolean.valueOf(value);
-		} catch (IllegalArgumentException iae) {
-			invalidAttributeValue(element, attribute, value);
-		} catch (NullPointerException npe) {
-			invalidAttributeValue(element, attribute, null);
-		}
-		return Boolean.FALSE;
-	}
-
-	// Check the format of an optional boolean attribute
-	public Boolean checkBoolean(String element, String attribute, String value, boolean defaultValue) {
-		Boolean result = (defaultValue ? Boolean.TRUE : Boolean.FALSE);
-		if (value != null) {
-			try {
-				return Boolean.valueOf(value);
-			} catch (IllegalArgumentException iae) {
-				invalidAttributeValue(element, attribute, value);
-			}
-		}
-		return result;
-	}
-
-	public void checkCancel() {
-		if (monitor != null && monitor.isCanceled())
-			throw new OperationCanceledException();
-	}
-
-	/**
-	 * Converts a version string to a Version object. Returns the version object,
-	 * or {@link Version#emptyVersion} if the value was not a valid version.
-	 */
-	public Version checkVersion(String element, String attribute, String value) {
-		try {
-			if (value != null)
-				return new Version(value);
-		} catch (IllegalArgumentException iae) {
-			invalidAttributeValue(element, attribute, value);
-		} catch (NullPointerException npe) {
-			invalidAttributeValue(element, attribute, null);
-		}
-		return Version.emptyVersion;
-	}
-
-	public VersionRange checkVersionRange(String element, String attribute, String value) {
-		try {
-			return new VersionRange(value);
-		} catch (IllegalArgumentException iae) {
-			invalidAttributeValue(element, attribute, value);
-		} catch (NullPointerException npe) {
-			invalidAttributeValue(element, attribute, null);
-		}
-		return VersionRange.emptyRange;
-	}
-
-	public void unexpectedAttribute(String element, String attribute, String value) {
-		if (Tracing.DEBUG_PARSE_PROBLEMS)
-			Tracing.debug("Unexpected attribute for element " + element + ": " + attribute + '=' + value); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void invalidAttributeValue(String element, String attribute, String value) {
-		addError(IStatus.WARNING, NLS.bind(Messages.XMLParser_Illegal_Value_For_Attribute, new Object[] {attribute, element, value}), null);
-	}
-
-	public void unexpectedElement(AbstractHandler handler, String element, Attributes attributes) {
-		if (Tracing.DEBUG_PARSE_PROBLEMS)
-			Tracing.debug("Unexpected element in element " + handler.getName() + ": <" + element + toString(attributes) + '>'); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void duplicateElement(AbstractHandler handler, String element, Attributes attributes) {
-		addError(IStatus.WARNING, NLS.bind(Messages.XMLParser_Duplicate_Element, new Object[] {handler.getName(), element, toString(attributes)}), null);
-	}
-
-	public void unexpectedCharacterData(AbstractHandler handler, String cdata) {
-		if (Tracing.DEBUG_PARSE_PROBLEMS)
-			Tracing.debug("Unexpected character data in element " + handler.getName() + ": " + cdata.trim()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Find the index of the first occurrence of object in array, or -1.
-	 * Use Arrays.binarySearch if array is big and sorted.
-	 */
-	protected static int indexOf(String[] array, String value) {
-		for (int i = 0; i < array.length; i += 1) {
-			if (value == null ? array[i] == null : value.equals(array[i])) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	//	public class BadStateError extends AssertionError {
-	//		private static final long serialVersionUID = 1L; // not serialized
-	//
-	//		public BadStateError() {
-	//			super("unexpected state" + //$NON-NLS-1$
-	//					(XMLParser.this.stateStack != null ? ": " + XMLParser.this.stateStack //$NON-NLS-1$
-	//					: "")); //$NON-NLS-1$
-	//		}
-	//
-	//		public BadStateError(String element) {
-	//			super("unexpected state for " + element + //$NON-NLS-1$
-	//					(XMLParser.this.stateStack != null ? ": " + XMLParser.this.stateStack //$NON-NLS-1$
-	//					: "")); //$NON-NLS-1$
-	//		}
-	//	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLWriter.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLWriter.java
deleted file mode 100644
index 557c213..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/XMLWriter.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.persistence;
-
-import java.io.*;
-import java.util.*;
-import org.osgi.framework.Version;
-
-public class XMLWriter implements XMLConstants {
-
-	public static class ProcessingInstruction {
-
-		private String target;
-		private String[] data;
-
-		// The standard UTF-8 processing instruction
-		public static final String XML_UTF8 = "<?xml version='1.0' encoding='UTF-8'?>"; //$NON-NLS-1$
-
-		public ProcessingInstruction(String target, String[] attrs, String[] values) {
-			// Lengths of attributes and values must be the same
-			this.target = target;
-			this.data = new String[attrs.length];
-			for (int i = 0; i < attrs.length; i++) {
-				data[i] = attributeImage(attrs[i], values[i]);
-			}
-		}
-
-		public static ProcessingInstruction makeClassVersionInstruction(String target, Class clazz, Version version) {
-			return new ProcessingInstruction(target, new String[] {PI_CLASS_ATTRIBUTE, PI_VERSION_ATTRIBUTE}, new String[] {clazz.getName(), version.toString()});
-		}
-
-		public String toString() {
-			StringBuffer sb = new StringBuffer("<?"); //$NON-NLS-1$
-			sb.append(this.target).append(' ');
-			for (int i = 0; i < data.length; i++) {
-				sb.append(this.data[i]);
-				if (i < data.length - 1) {
-					sb.append(' ');
-				}
-			}
-			sb.append("?>"); //$NON-NLS-1$
-			return sb.toString();
-		}
-	}
-
-	private Stack elements; // XML elements that have not yet been closed
-	private boolean open; // Can attributes be added to the current element?
-	private String indent; // used for each level of indentation
-
-	private PrintWriter pw;
-
-	public XMLWriter(OutputStream output, ProcessingInstruction[] piElements) throws UnsupportedEncodingException {
-		this.pw = new PrintWriter(new OutputStreamWriter(output, "UTF8"), true); //$NON-NLS-1$
-		println(ProcessingInstruction.XML_UTF8);
-		this.elements = new Stack();
-		this.open = false;
-		this.indent = "  "; //$NON-NLS-1$
-		if (piElements != null) {
-			for (int i = 0; i < piElements.length; i++) {
-				println(piElements[i].toString());
-			}
-		}
-	}
-
-	// start a new element
-	public void start(String name) {
-		if (this.open) {
-			println('>');
-		}
-		indent();
-		print('<');
-		print(name);
-		this.elements.push(name);
-		this.open = true;
-	}
-
-	// end the most recent element with this name
-	public void end(String name) {
-		if (this.elements.empty()) {
-			throw new EndWithoutStartError();
-		}
-		int index = this.elements.search(name);
-		if (index == -1) {
-			throw new EndWithoutStartError(name);
-		}
-		for (int i = 0; i < index; i += 1) {
-			end();
-		}
-	}
-
-	// end the current element
-	public void end() {
-		if (this.elements.empty()) {
-			throw new EndWithoutStartError();
-		}
-		String name = (String) this.elements.pop();
-		if (this.open) {
-			println("/>"); //$NON-NLS-1$
-		} else {
-			printlnIndented("</" + name + '>', false); //$NON-NLS-1$
-		}
-		this.open = false;
-	}
-
-	public static String escape(String txt) {
-		StringBuffer buffer = null;
-		for (int i = 0; i < txt.length(); ++i) {
-			String replace;
-			char c = txt.charAt(i);
-			switch (c) {
-				case '<' :
-					replace = "&lt;"; //$NON-NLS-1$
-					break;
-				case '>' :
-					replace = "&gt;"; //$NON-NLS-1$
-					break;
-				case '"' :
-					replace = "&quot;"; //$NON-NLS-1$
-					break;
-				case '\'' :
-					replace = "&apos;"; //$NON-NLS-1$
-					break;
-				case '&' :
-					replace = "&amp;"; //$NON-NLS-1$
-					break;
-				default :
-					if (buffer != null)
-						buffer.append(c);
-					continue;
-			}
-			if (buffer == null) {
-				buffer = new StringBuffer(txt.length() + 16);
-				buffer.append(txt.substring(0, i));
-			}
-			buffer.append(replace);
-		}
-
-		if (buffer == null)
-			return txt;
-
-		return buffer.toString();
-	}
-
-	// write a boolean attribute if it doesn't have the default value
-	public void attribute(String name, boolean value, boolean defaultValue) {
-		if (value != defaultValue) {
-			attribute(name, value);
-		}
-	}
-
-	public void attribute(String name, boolean value) {
-		attribute(name, Boolean.toString(value));
-	}
-
-	public void attribute(String name, int value) {
-		attribute(name, Integer.toString(value));
-	}
-
-	public void attributeOptional(String name, String value) {
-		if (value != null && value.length() > 0) {
-			attribute(name, value);
-		}
-	}
-
-	public void attribute(String name, Object value) {
-		if (!this.open) {
-			throw new AttributeAfterNestedContentError();
-		}
-		if (value == null) {
-			return; // optional attribute with no value
-		}
-		print(' ');
-		print(name);
-		print("='"); //$NON-NLS-1$
-		print(escape(value.toString()));
-		print('\'');
-	}
-
-	public void cdata(String data) {
-		cdata(data, true);
-	}
-
-	public void cdata(String data, boolean escape) {
-		if (this.open) {
-			println('>');
-			this.open = false;
-		}
-		if (data != null) {
-			printlnIndented(data, escape);
-		}
-	}
-
-	public void flush() {
-		while (!this.elements.empty()) {
-			try {
-				end();
-			} catch (EndWithoutStartError e) {
-				// can't happen
-			}
-		}
-		this.pw.flush();
-	}
-
-	public void writeProperties(Map properties) {
-		writeProperties(PROPERTIES_ELEMENT, properties);
-	}
-
-	public void writeProperties(String propertiesElement, Map properties) {
-		if (properties != null && properties.size() > 0) {
-			start(propertiesElement);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, properties.size());
-			for (Iterator iter = properties.keySet().iterator(); iter.hasNext();) {
-				String name = (String) iter.next();
-				writeProperty(name, (String) properties.get(name));
-			}
-			end(propertiesElement);
-		}
-	}
-
-	public void writeProperty(String name, String value) {
-		start(PROPERTY_ELEMENT);
-		attribute(PROPERTY_NAME_ATTRIBUTE, name);
-		attribute(PROPERTY_VALUE_ATTRIBUTE, value);
-		end();
-	}
-
-	protected static String attributeImage(String name, String value) {
-		if (value == null) {
-			return ""; // optional attribute with no value
-		}
-		return name + "='" + escape(value) + '\''; //$NON-NLS-1$
-	}
-
-	private void println(char c) {
-		this.pw.println(c);
-	}
-
-	private void println(String s) {
-		this.pw.println(s);
-	}
-
-	private void println() {
-		this.pw.println();
-	}
-
-	private void print(char c) {
-		this.pw.print(c);
-	}
-
-	private void print(String s) {
-		this.pw.print(s);
-	}
-
-	private void printlnIndented(String s, boolean escape) {
-		if (s.length() == 0) {
-			println();
-		} else {
-			indent();
-			println(escape ? escape(s) : s);
-		}
-	}
-
-	private void indent() {
-		for (int i = this.elements.size(); i > 0; i -= 1) {
-			print(this.indent);
-		}
-	}
-
-	public static class AttributeAfterNestedContentError extends Error {
-		private static final long serialVersionUID = 1L; // not serialized
-	}
-
-	public static class EndWithoutStartError extends Error {
-		private static final long serialVersionUID = 1L; // not serialized
-		private String name;
-
-		public EndWithoutStartError() {
-			super();
-		}
-
-		public EndWithoutStartError(String name) {
-			super();
-			this.name = name;
-		}
-
-		public String getName() {
-			return this.name;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/messages.properties b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/messages.properties
deleted file mode 100644
index 4928c08..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/persistence/messages.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# All these errors are bound to 5 args: 0-msg, 1-root, 2-name, 3-line, 4-column
-XMLParser_Error_At_Line=Error at line {3}{1}: {0}
-XMLParser_Error_At_Line_Column=Error at line {3}, column {4}{1}: {0}
-XMLParser_Error_At_Name_Line=Error in {2} at line {3}: {0}
-XMLParser_Error_At_Name_Line_Column=Error in {2} at line {3}, column {4}: {0}
-
-XMLParser_No_SAX_Parser=Unable to acquire a SAX parser service.
-XMLParser_Missing_Required_Attribute=Missing required attribute in "{0}": {1}
-XMLParser_Unexpected_Attribute=Unexpected attribute for element "{0}": {1}="{2}"
-XMLParser_Illegal_Value_For_Attribute=Illegal value for attribute "{0}" of element "{1}": {2}
-XMLParser_Unexpected_Element=Unexpected element in element "{0}": <{1}{2}>
-XMLParser_Duplicate_Element=Duplicate singleton element in element "{0}": <{1}{2}>
-XMLParser_Unexpected_Character_Data=Unexpected character data in element "{0}": {1}
-XMLParser_Element_Not_Allowed=Element "{0}" is not allowed within element "{1}"
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/ProvisionException.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/ProvisionException.java
deleted file mode 100644
index 9eb14b0..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/ProvisionException.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.Activator;
-
-/**
- * A checked exception indicating a recoverable error occurred while provisioning.
- * The status provides a further description of the problem.
- * <p>
- * This exception class is not intended to be subclassed by clients.
- * </p>
- */
-public class ProvisionException extends CoreException {
-	private static final long serialVersionUID = 1L;
-
-	//General and core status codes [0-1000]
-	/**
-	 * Status code constant (value 1) for an uncategorized error.
-	 */
-	public static final int INTERNAL_ERROR = 1;
-
-	//Repository status codes [1000-1999]
-	//General repository codes [1000-1099]
-	/** 
-	 * Status code constant (value 1000) indicating a repository
-	 * unexpectedly does not exist.
-	 */
-	public static final int REPOSITORY_NOT_FOUND = 1000;
-
-	/** 
-	 * Status code constant (value 1001) indicating a repository
-	 * unexpectedly exists.
-	 */
-	public static final int REPOSITORY_EXISTS = 1001;
-
-	/** 
-	 * Status code constant (value 1002) indicating a repository
-	 * could not be read
-	 */
-	public static final int REPOSITORY_FAILED_READ = 1002;
-
-	/** 
-	 * Status code constant (value 1003) indicating a failure occurred
-	 * while writing to a repository.
-	 */
-	public static final int REPOSITORY_FAILED_WRITE = 1003;
-
-	/** 
-	 * Status code constant (value 1004) indicating a repository
-	 * could not be written because it is a read-only repository.
-	 */
-	public static final int REPOSITORY_READ_ONLY = 1004;
-
-	/** 
-	 * Status code constant (value 1005) indicating an attempt was
-	 * made to create or access a repository of unknown type.
-	 */
-	public static final int REPOSITORY_UNKNOWN_TYPE = 1005;
-	/** 
-	 * Status code constant (value 1006) indicating that a specified
-	 * repository location is not valid.
-	 */
-	public static final int REPOSITORY_INVALID_LOCATION = 1006;
-
-	//Metadata repository codes [1100-1199]
-
-	//Artifact repository codes [1200-1299]
-
-	/** 
-	 * Status code constant (value 1200) indicating an artifact unexpectedly
-	 * does not exist.
-	 */
-	public static final int ARTIFACT_NOT_FOUND = 1200;
-
-	/** 
-	 * Status code constant (value 1201) indicating an artifact unexpectedly
-	 * already exists.
-	 */
-	public static final int ARTIFACT_EXISTS = 1201;
-
-	/**
-	 * Creates a new exception with the given status object.  The message
-	 * of the given status is used as the exception message.
-	 *
-	 * @param status the status object to be associated with this exception
-	 */
-	public ProvisionException(IStatus status) {
-		super(status);
-	}
-
-	/**
-	 * Creates a new exception with the given message and a severity of 
-	 * {@link IStatus#ERROR}.
-	 *
-	 * @param message The human-readable problem message
-	 */
-	public ProvisionException(String message) {
-		super(new Status(IStatus.ERROR, Activator.ID, message));
-	}
-
-	/**
-	 * Creates a new exception with the given message and cause, and
-	 * a severity of {@link IStatus#ERROR}.
-	 *
-	 * @param message The human-readable problem message
-	 * @param cause The underlying cause of the exception
-	 */
-	public ProvisionException(String message, Throwable cause) {
-		super(new Status(IStatus.ERROR, Activator.ID, message, cause));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/IProvisioningEventBus.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/IProvisioningEventBus.java
deleted file mode 100644
index 2ff6ce3..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/IProvisioningEventBus.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core.eventbus;
-
-import java.util.EventObject;
-import org.eclipse.osgi.framework.eventmgr.EventDispatcher;
-
-/**
- * The bus for events related to provisioning. This service can be used to register
- * a listener to receive provisioning events, or to broadcast events.
- */
-public interface IProvisioningEventBus extends EventDispatcher {
-	/**
-	 * The name used for obtaining a reference to the event bus service.
-	 */
-	public static final String SERVICE_NAME = IProvisioningEventBus.class.getName();
-
-	public abstract void addListener(ProvisioningListener toAdd);
-
-	public abstract void removeListener(ProvisioningListener toRemove);
-
-	public abstract void publishEvent(EventObject event);
-
-	public abstract void close();
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/ProvisioningListener.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/ProvisioningListener.java
deleted file mode 100644
index de76415..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/ProvisioningListener.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core.eventbus;
-
-import java.util.EventListener;
-import java.util.EventObject;
-import org.eclipse.equinox.internal.p2.core.ProvisioningEventBus;
-
-/**
- * A listener that is notified about events related to provisioning.
- * @see ProvisioningEventBus
- */
-public interface ProvisioningListener extends EventListener {
-	//TODO: rename this interface to match eclipse conventions (IProvisioningListener)
-
-	/**
-	 * Notifies the listener about a provisioning event.
-	 */
-	public void notify(EventObject o);
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/SynchronousProvisioningListener.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/SynchronousProvisioningListener.java
deleted file mode 100644
index 0df2c89..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/eventbus/SynchronousProvisioningListener.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core.eventbus;
-
-public interface SynchronousProvisioningListener extends ProvisioningListener {
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/location/AgentLocation.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/location/AgentLocation.java
deleted file mode 100644
index 7a0df74..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/location/AgentLocation.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core.location;
-
-import java.net.URL;
-
-public interface AgentLocation {
-	public static final String SERVICE_NAME = AgentLocation.class.getName();
-
-	public URL getArtifactRepositoryURL();
-
-	public URL getMetadataRepositoryURL();
-
-	/**
-	 * Returns the location where the bundle with the given namespace
-	 * may write its agent-related data.
-	 * @param namespace The namespace of the bundle storing the data
-	 * @return The data location
-	 */
-	public URL getDataArea(String namespace);
-
-	/**
-	 * Returns the actual {@link URL} of this location.  If the location's value has been set, 
-	 * that value is returned.  If the value is not set and the location allows defaults, 
-	 * the value is set to the default and returned.  In all other cases <code>null</code>
-	 * is returned.
-	 * 
-	 * @return the URL for this location or <code>null</code> if none
-	 */
-	public URL getURL();
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/IRepository.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/IRepository.java
deleted file mode 100644
index e9d247d..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/IRepository.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core.repository;
-
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Base interface that defines common properties that may be provided by 
- * various kinds of repositories.
- * 
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IRepository extends IAdaptable {
-	/** 
-	 * The key for a boolean property indicating that the repository
-	 * is a system repository.  System repositories are implementation details
-	 * that are not subject to general access, hidden from the typical user, etc.
-	 */
-	public static final String PROP_SYSTEM = "p2.system"; //$NON-NLS-1$
-
-	/**
-	 * The key for a boolean property indicating that repository metadata is
-	 * stored in compressed form.  A compressed repository will have lower
-	 * bandwidth cost to read when remote, but higher processing cost to
-	 * uncompress when reading.
-	 */
-	public static final String PROP_COMPRESSED = "p2.compressed"; //$NON-NLS-1$
-
-	/**
-	 * The key for a string property providing a human-readable name for the repository.
-	 */
-	public static final String PROP_NAME = "name"; //$NON-NLS-1$
-
-	/**
-	 * The key for a string property providing a human-readable description for the repository.
-	 */
-	public static final String PROP_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	/**
-	 * The key for a string property providing a URL that can return mirrors of this
-	 * repository.
-	 */
-	public static final String PROP_MIRRORS_URL = "p2.mirrorsURL"; //$NON-NLS-1$
-
-	/**
-	 * The key for a string property containing the time when the repository was last modified.
-	 */
-	public static final String PROP_TIMESTAMP = "p2.timestamp"; //$NON-NLS-1$
-
-	/**
-	 * A repository type constant (value 0) representing a metadata repository.
-	 */
-	public static final int TYPE_METADATA = 0;
-
-	/**
-	 * A repository type constant (value 1) representing an artifact repository.
-	 */
-	public static final int TYPE_ARTIFACT = 1;
-
-	/**
-	 * Returns the URL of the repository.
-	 * TODO: Should we use URL or URI? URL requires a protocol handler
-	 * to be installed in Java.  Can the URL have any protocol?
-	 * @return the URL of the repository.
-	 */
-	public URL getLocation();
-
-	/**
-	 * Returns the name of the repository.
-	 * @return the name of the repository.
-	 */
-	public String getName();
-
-	/**
-	 * Returns a string representing the type of the repository.
-	 * @return the type of the repository.
-	 */
-	public String getType();
-
-	/**
-	 * Returns a string representing the version for the repository type.
-	 * @return the version of the type of the repository.
-	 */
-	public String getVersion();
-
-	/**
-	 * Returns a brief description of the repository.
-	 * @return the description of the repository.
-	 */
-	public String getDescription();
-
-	/**
-	 * Returns the name of the provider of the repository.
-	 * @return the provider of this repository.
-	 */
-	public String getProvider();
-
-	/**
-	 * Returns a read-only collection of the properties of the repository.
-	 * @return the properties of this repository.
-	 */
-	public Map getProperties();
-
-	/**
-	 * Returns <code>true</code> if this repository can be modified.
-	 * @return whether or not this repository can be modified
-	 */
-	public boolean isModifiable();
-
-	/**
-	 * Set the name of the repository.
-	 */
-	public void setName(String name);
-
-	/**
-	 * Sets the description of the repository.
-	 */
-	public void setDescription(String description);
-
-	/**
-	 * Sets the value of the property with the given key. Returns the old property
-	 * associated with that key, if any.  Setting a value of <code>null</code> will
-	 * remove the corresponding key from the properties of this repository.
-	 * 
-	 * @param key The property key
-	 * @param value The new property value, or <code>null</code> to remove the key
-	 * @return The old property value, or <code>null</code> if there was no old value
-	 */
-	public String setProperty(String key, String value);
-
-	/**
-	 * Sets the name of the provider of the repository.
-	 */
-	public void setProvider(String provider);
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryCreationException.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryCreationException.java
deleted file mode 100644
index 31b5a6b..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryCreationException.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core.repository;
-
-public class RepositoryCreationException extends Exception {
-
-	private static final long serialVersionUID = -5648382121963317100L;
-
-	public RepositoryCreationException(Throwable e) {
-		super(e);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryEvent.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryEvent.java
deleted file mode 100644
index 0a6964b..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/core/repository/RepositoryEvent.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.core.repository;
-
-import java.net.URL;
-import java.util.EventObject;
-
-/**
- * An event indicating a repository was added, removed, changed,
- * or discovered.
- * 
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class RepositoryEvent extends EventObject {
-	private static final long serialVersionUID = 3082402920617281765L;
-
-	/**
-	 * A change kind constant (value 0), indicating a repository was added to the 
-	 * list of repositories known to a repository manager.
-	 */
-	public static final int ADDED = 0;
-
-	/**
-	 * A change kind constant (value 1), indicating a repository was removed from 
-	 * the list of repositories known to a repository manager.
-	 */
-	public static final int REMOVED = 1;
-
-	/**
-	 * A change kind constant (value 2), indicating a repository known to a 
-	 * repository manager was modified.
-	 */
-	public static final int CHANGED = 2;
-
-	/**
-	 * A change kind constant (value 4), indicating a new repository was discovered.
-	 * This event is a way to notify repository managers in a generic way about
-	 * a newly discovered repository. The repository manager will typically receive
-	 * this event, add the repository to its list of known repositories, and issue
-	 * a subsequent {@link #ADDED} event. Other clients should not typically
-	 * listen for this kind of event.
-	 */
-	public static final int DISCOVERED = 4;
-
-	private final int kind, type;
-
-	/**
-	 * Creates a new repository event.
-	 * 
-	 * @param location the location of the repository that changed.
-	 * @param repositoryType the type of repository that was changed
-	 * @param kind the kind of change that occurred.
-	 */
-	public RepositoryEvent(URL location, int repositoryType, int kind) {
-		super(location);
-		this.kind = kind;
-		this.type = repositoryType;
-
-	}
-
-	/**
-	 * Returns the kind of change that occurred.
-	 *
-	 * @return the kind of change that occurred.
-	 * @see #ADDED
-	 * @see #REMOVED
-	 * @see #CHANGED
-	 * @see #DISCOVERED
-	 */
-	public int getKind() {
-		return kind;
-	}
-
-	/**
-	 * Returns the location of the repository associated with this event.
-	 * 
-	 * @return the location of the repository associated with this event.
-	 */
-	public URL getRepositoryLocation() {
-		return (URL) getSource();
-	}
-
-	/**
-	 * Returns the type of repository associated with this event. Clients
-	 * should not assume that the set of possible repository types is closed;
-	 * clients should ignore events from repository types they don't know about.
-	 * 
-	 * @return the type of repository associated with this event.
-	 *  ({@link IRepository#TYPE_METADATA} or {@link IRepository#TYPE_ARTIFACT}).
-	 */
-	public int getRepositoryType() {
-		return type;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Collector.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Collector.java
deleted file mode 100644
index 397afc9..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Collector.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.query;
-
-import java.lang.reflect.Array;
-import java.util.*;
-
-/**
- * A collector is a generic visitor that collects objects passed to it,
- * and can then express the result of the visit in various forms. The collector
- * can also short-circuit a traversal by returning <code>false</code> from
- * its {@link #accept(Object)} method.
- * <p>
- * This default collector just accepts all objects passed to it.  Clients may subclass
- * to perform different processing on the objects passed to it.
- */
-public class Collector {
-	private ArrayList collected = null;
-
-	/**
-	 * Creates a new collector.
-	 */
-	public Collector() {
-		super();
-	}
-
-	/**
-	 * Accepts an object.
-	 * <p>
-	 * This default implementation adds the objects to a list. Clients may
-	 * override this method to perform additional filtering, add different objects 
-	 * to the list, short-circuit the traversal, or process the objects directly without 
-	 * collecting them.
-	 * 
-	 * @param object the object to collect or visit
-	 * @return <code>true</code> if the traversal should continue,
-	 * or <code>false</code> to indicate the traversal should stop.
-	 */
-	public boolean accept(Object object) {
-		getList().add(object);
-		return true;
-	}
-
-	/**
-	 * Returns the list that is being used to collect results.
-	 * @return the list being used to collect results.
-	 */
-	protected List getList() {
-		if (collected == null)
-			collected = new ArrayList();
-		return collected;
-	}
-
-	/**
-	 * Returns whether this collector is empty.
-	 * @return <code>true</code> if this collector has accepted any results,
-	 * and <code>false</code> otherwise.
-	 */
-	public boolean isEmpty() {
-		return collected == null || collected.isEmpty();
-	}
-
-	/**
-	 * Returns an iterator on the collected objects.
-	 * 
-	 * @return an iterator of the collected objects.
-	 */
-	public Iterator iterator() {
-		return collected == null ? Collections.EMPTY_LIST.iterator() : collected.iterator();
-	}
-
-	/**
-	 * Returns the number of collected objects.
-	 */
-	public int size() {
-		return collected == null ? 0 : collected.size();
-	}
-
-	/**
-	 * Returns the collected objects as an array
-	 * 
-	 * @param clazz The type of array to return
-	 * @return The array of results
-	 * @throws ArrayStoreException the runtime type of the specified array is
-	 *         not a supertype of the runtime type of every collected object
-	 */
-	public Object[] toArray(Class clazz) {
-		int size = collected == null ? 0 : collected.size();
-		Object[] result = (Object[]) Array.newInstance(clazz, size);
-		if (size != 0)
-			collected.toArray(result);
-		return result;
-	}
-
-	public Collection toCollection() {
-		return collected == null ? Collections.EMPTY_LIST : Collections.unmodifiableList(collected);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/CompoundQuery.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/CompoundQuery.java
deleted file mode 100644
index 0b3770a..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/CompoundQuery.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.query;
-
-/**
- * A query that combines a group of other queries.
- */
-public class CompoundQuery extends Query {
-	private boolean and;
-	private Query[] queries;
-
-	/**
-	 * Creates a compound query that combines the given queries. The queries
-	 * will be performed by the compound query in the given order. This method
-	 * might not perform all queries if it can determine the result of the compound
-	 * expression without doing so.
-	 * 
-	 * @param queries The queries to perform
-	 * @param and <code>true</code> if this query represents a logical 'and', and
-	 * <code>false</code> if this query represents a logical 'or'.
-	 */
-	public CompoundQuery(Query[] queries, boolean and) {
-		this.queries = queries;
-		this.and = and;
-	}
-
-	public Query[] getQueries() {
-		return queries;
-	}
-
-	/**
-	 * Returns whether this compound query combines its queries with a logical
-	 * 'and' or 'or'.
-	 * @return <code>true</code> if this query represents a logical 'and', and
-	 * <code>false</code> if this query represents a logical 'or'.
-	 */
-	public boolean isAnd() {
-		return and;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.p2.query2.Query#isMatch(java.lang.Object)
-	 */
-	public boolean isMatch(Object candidate) {
-		for (int i = 0; i < queries.length; i++) {
-			boolean valid = queries[i].isMatch(candidate);
-			// if we are OR'ing then the first time we find a requirement that is met, return success
-			if (valid && !and)
-				return true;
-			// if we are AND'ing then the first time we find a requirement that is NOT met, return failure
-			if (!valid && and)
-				return false;
-		}
-		// if we get past the requirements check and we are AND'ing then return true 
-		// since all requirements must have been met.  If we are OR'ing then return false 
-		// since none of the requirements were met.
-		return and;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/IQueryable.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/IQueryable.java
deleted file mode 100644
index 4cb76d8..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/IQueryable.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.query;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * An IQueryable contains objects, and is able to perform queries on those objects.
- * <p>
- * This interface may be implemented by clients.
- */
-public interface IQueryable {
-	/**
-	 * Performs a query, passing any objects that satisfy the
-	 * query to the provided collector.
-	 * <p>
-	 * This method is long-running; progress and cancellation are provided
-	 * by the given progress monitor. 
-	 * </p>
-	 * 
-	 * @param query The query to perform
-	 * @param collector Collects the results of the query
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return The collector argument
-	 */
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Query.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Query.java
deleted file mode 100644
index 1506649..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/p2/query/Query.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.query;
-
-import java.util.Iterator;
-
-/**
- * The superclass of all queries that can be performed on an {@link IQueryable}.
- * <p>
- * This class may be subclassed by clients. Subclasses should specify the type
- * of object they support querying on. Subclasses are also encouraged to clearly
- * specify their match algorithm, and expose the parameters involved in the match
- * computation, to allow {@link IQueryable} implementations to optimize their
- * execution of the query.
- */
-public abstract class Query {
-	/**
-	 * Creates a new query.
-	 */
-	public Query() {
-		super();
-	}
-
-	/**
-	 * Returns whether the given object satisfies the parameters of this query.
-	 * 
-	 * @param candidate The object to perform the query against
-	 * @return <code>true</code> if the unit satisfies the parameters
-	 * of this query, and <code>false</code> otherwise
-	 */
-	public abstract boolean isMatch(Object candidate);
-
-	/**
-	 * Performs this query on the given iterator, passing all objects in the iterator 
-	 * that match the criteria of this query to the given result.
-	 */
-	public Collector perform(Iterator iterator, Collector result) {
-		while (iterator.hasNext()) {
-			Object candidate = iterator.next();
-			if (isMatch(candidate))
-				result.accept(candidate);
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/spi/p2/core/repository/AbstractRepository.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/spi/p2/core/repository/AbstractRepository.java
deleted file mode 100644
index db2f639..0000000
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/provisional/spi/p2/core/repository/AbstractRepository.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.spi.p2.core.repository;
-
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-
-/**
-* AbstractRepository defines common properties that may be provided by various kinds
-* of repositories.
-* <p>
-* Clients may extend this class.
-* </p>
-*/
-public abstract class AbstractRepository extends PlatformObject implements IRepository {
-	protected String description;
-	protected transient URL location;
-	protected String name;
-	protected Map properties = new OrderedProperties();
-	protected String provider;
-	protected String type;
-	protected String version;
-
-	protected AbstractRepository(String name, String type, String version, URL location, String description, String provider) {
-		this.name = name;
-		this.type = type;
-		this.version = version;
-		this.location = location;
-		this.description = description == null ? "" : description; //$NON-NLS-1$
-		this.provider = provider == null ? "" : provider; //$NON-NLS-1$
-	}
-
-	/**
-	 * Asserts that this repository is modifiable, throwing a runtime exception if
-	 * it is not. This is suitable for use by subclasses when an attempt is made
-	 * to write to a repository.
-	 */
-	protected void assertModifiable() {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns a brief description of the repository.
-	 * @return the description of the repository.
-	 */
-	public synchronized String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Returns the location of this repository.
-	 * TODO: Should we use URL or URI? URL requires a protocol handler
-	 * to be installed in Java.  Can the URL have any protocol?
-	 * @return the URL of the repository.
-	 */
-	public URL getLocation() {
-		return location;
-	}
-
-	/**
-	 * Returns the name of the repository.
-	 * @return the name of the repository.
-	 */
-	public synchronized String getName() {
-		return name;
-	}
-
-	/**
-	 * Returns a read-only collection of the properties of the repository.
-	 * @return the properties of this repository.
-	 */
-	public Map getProperties() {
-		return OrderedProperties.unmodifiableProperties(properties);
-	}
-
-	/**
-	 * Returns the name of the provider of the repository.
-	 * @return the provider of this repository.
-	 */
-	public synchronized String getProvider() {
-		return provider;
-	}
-
-	/**
-	 * Returns a string representing the type of the repository.
-	 * @return the type of the repository.
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Returns a string representing the version for the repository type.
-	 * @return the version of the type of the repository.
-	 */
-	public String getVersion() {
-		return version;
-	}
-
-	public boolean isModifiable() {
-		return false;
-	}
-
-	public synchronized void setDescription(String description) {
-		this.description = description;
-	}
-
-	public synchronized void setName(String value) {
-		this.name = value;
-	}
-
-	public String setProperty(String key, String value) {
-		assertModifiable();
-		return (String) (value == null ? properties.remove(key) : properties.put(key, value));
-	}
-
-	public synchronized void setProvider(String provider) {
-		this.provider = provider;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director.app/.classpath b/bundles/org.eclipse.equinox.p2.director.app/.classpath
deleted file mode 100644
index 47ddcce..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src_ant"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.director.app/.cvsignore b/bundles/org.eclipse.equinox.p2.director.app/.cvsignore
deleted file mode 100644
index 905d1d6..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-ant_tasks
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.director.app/.externalToolBuilders/Build Director Ant Tasks.launch b/bundles/org.eclipse.equinox.p2.director.app/.externalToolBuilders/Build Director Ant Tasks.launch
deleted file mode 100644
index 4fe9972..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/.externalToolBuilders/Build Director Ant Tasks.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.director.app/scripts/buildExtraJAR.xml"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.director.app"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.director.app/scripts/buildExtraJAR.xml}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.director.app/.project b/bundles/org.eclipse.equinox.p2.director.app/.project
deleted file mode 100644
index e163d3d..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.director.app</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>
-			<triggers>full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/Build Director Ant Tasks.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 78523cd..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,331 +0,0 @@
-#Thu Aug 16 11:00:59 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 6eb3238..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,60 +0,0 @@
-#Thu Nov 08 11:15:08 EST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=true
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF
deleted file mode 100644
index 6689959..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.director.app;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: org.eclipse.equinox.app,
- org.eclipse.equinox.internal.p2.console,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.director,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.engine.phases,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.osgi.service.environment,
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.osgi.framework
-Bundle-Activator: org.eclipse.equinox.internal.p2.director.app.Activator
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.4
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.osgi;bundle-version="3.4.0"
-Export-Package: org.eclipse.equinox.internal.p2.director.app;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.director.app/about.html b/bundles/org.eclipse.equinox.p2.director.app/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.director.app/build.properties b/bundles/org.eclipse.equinox.p2.director.app/build.properties
deleted file mode 100644
index fd5507d..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-source.ant_tasks/director-ant.jar=src_ant/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               ant_tasks/director-ant.jar,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
-jars.compile.order=.,ant_tasks/director-ant.jar
-extra.ant_tasks/director-ant.jar = platform:/plugin/org.apache.ant
-jars.extra.classpath = platform:/plugin/org.apache.ant/lib/ant.jar
diff --git a/bundles/org.eclipse.equinox.p2.director.app/config.ini b/bundles/org.eclipse.equinox.p2.director.app/config.ini
deleted file mode 100644
index e9af549..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/config.ini
+++ /dev/null
@@ -1,87 +0,0 @@
-# Eclipse runtime configuration file
-# This file contains a number of key/value pairs that are merged into the 
-# System properties on system startup.  The values control the way the 
-# runtime is structured and runs.
-
-# Note:  Only platform:/base/ and file: URLs are supported.  In general the 
-# URLs given may include a version number (e.g., .../location_1.2.3).  
-# If a version is not specified, the system binds
-# to the location which matches exactly or to the versioned location with the
-# latest version number.  If a version number is given then only exact matches
-# are considered.
-
-# The URL for the runtime entry point.  The default value is
-# platform:/base/plugins/org.eclipse.osgi 
-#osgi.framework=platform:/base/plugins/org.eclipse.osgi
-
-# The classpath for the framework found at the osgi.framework location.  This 
-# comma-separated list contains either URLs or simple element names.  Simple
-# names are assumed to be relative to the framework's install directory.  
-# Typically this value need not be set as it is initialized by the framework itself.
-# Version match searching is not done for URLs listed here.
-#osgi.frameworkClassPath =
-
-# The comma-separated list of locations to search for the splash screen file (splash.bmp).
-# For each list element a subdirectory structure based on the pattern nl/<locale> is searched.
-# The system binds to the first matching file.  There is no default value.
-#osgi.splashPath=
-
-# The location of the splash screen file.  If this value is set at system startup it is used 
-# in favour of the osgi.splashPath searching outlined above.  If the value is not set 
-# the searching is done and this key is bound to the result of the search.
-#osgi.splashLocation =
-
-# The comma-separated list of bundles which are automatically installed and optionally started
-# once the system is up and running.  Each entry if of the form
-#     <URL | simple bundle location>[@ [<startlevel>] [":start"]]
-# If the startlevel is omitted then the framework will use the default start level for the bundle.
-# If the "start" tag is added then the bundle will be marked as started after being installed.
-# Simple bundle locations are interepreted as relative to the framework's parent directory.
-# The startlevel indicates the OSGi start level at which the bundle should run.
-osgi.bundles=\
-	org.eclipse.core.jobs,\
-	org.eclipse.ecf,\
-	org.eclipse.ecf.filetransfer,\
-	org.eclipse.ecf.identity,\
-	org.eclipse.ecf.provider.filetransfer,\
-	org.eclipse.equinox.app@start,\
-	org.eclipse.equinox.common,\
-	org.eclipse.equinox.frameworkadmin,\
-	org.eclipse.equinox.frameworkadmin.equinox@start,\
-	org.eclipse.equinox.p2.artifact.repository,\
-	org.eclipse.equinox.p2.console,\
-	org.eclipse.equinox.p2.core,\
-	org.eclipse.equinox.p2.director,\
-	org.eclipse.equinox.p2.director.app,\
-	org.eclipse.equinox.p2.download,\
-	org.eclipse.equinox.p2.engine,\
-	org.eclipse.equinox.p2.exemplarysetup@start,\
-	org.eclipse.equinox.p2.metadata,\
-	org.eclipse.equinox.p2.metadata.repository,\
-	org.eclipse.equinox.p2.operations,\
-	org.eclipse.equinox.p2.touchpoint.eclipse,\
-	org.eclipse.equinox.p2.touchpoint.natives,\
-	org.eclipse.equinox.registry,\
-	org.eclipse.equinox.simpleconfigurator,\
-	org.eclipse.equinox.simpleconfigurator.manipulator@start,\
-	org.eclipse.osgi.services,\
-	org.sat4j.core,\
-	org.sat4j.pb
-
-org.eclipse.update.reconcile=false
-
-# The product to run.  A given Eclipse configuration may contain many products.
-# The product identified will supply the branding (window icons, title bar text) etc 
-# as well as define the default application to run.  
-#eclipse.product=
-
-# The application to run.  The value specified here is the id of the application extension
-# the runtime will find, instantiate and execute once the system is up.  Note that typically 
-# the identified eclipse.product defines the default application to run.
-#eclipse.application=
-
-# The build identifier
-eclipse.buildId=@build@
-
-# End of file marker - must be here
-eof=eof
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.director.app/director app.launch b/bundles/org.eclipse.equinox.p2.director.app/director app.launch
deleted file mode 100644
index 463586e..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/director app.launch
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/director app"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.director.app.application&#13;&#10;-metadataRepository file:C:/equinox.p2/servers/&#13;&#10;-artifactRepository file:C:/equinox.p2/servers/&#13;&#10;-installIU sdk&#13;&#10;-destination c:/equinox.p2/eclipseApp&#13;&#10;-flavor tooling&#13;&#10;-profile foo"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.data.area=c:/equinox.p2/agentData"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.equinox.app*1.0.100.v20080303@default:true,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,org.eclipse.core.runtime.compatibility.registry*3.2.200.v20070717@default:false,org.eclipse.core.runtime*3.4.0.v20080303@default:default,org.eclipse.core.jobs*3.3.100.v20080224@default:default,org.eclipse.core.net*1.0.100.I20080226@default:default,org.eclipse.equinox.common*3.4.0.v20080201@default:default,org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.osgi*3.4.0.v20080304@:,org.eclipse.core.runtime.compatibility.auth*3.2.100.v20070502@default:default,org.eclipse.equinox.registry*3.4.0.v20080201@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.p2.director.app*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.sat4j.pb*2.0.0.v20080307@default:default,org.eclipse.equinox.p2.garbagecollector*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default,org.eclipse.ecf.provider.filetransfer*1.6.0.qualifier@default:default,org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.exemplarysetup*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.console*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.touchpoint.eclipse*0.1.0.qualifier@default:default,org.eclipse.ecf*1.4.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.sat4j.core*2.0.0.v20080307@default:default,org.eclipse.equinox.simpleconfigurator.manipulator*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.director*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.equinox.p2.touchpoint.natives*0.1.0.qualifier@default:default,org.eclipse.equinox.simpleconfigurator*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.jarprocessor*0.1.0.qualifier@default:default,org.eclipse.ecf.identity*1.3.0.qualifier@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.director.app/director.product b/bundles/org.eclipse.equinox.p2.director.app/director.product
deleted file mode 100644
index 0fa6e99..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/director.product
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="Equinox Provisioning Director" id="org.eclipse.equinox.p2.director.app.product" application="org.eclipse.equinox.p2.director.app.application" useFeatures="true">
-
-   <configIni use="custom" path="/org.eclipse.equinox.p2.director.app/config.ini"/>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <launcher name="eclipse">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-   </plugins>
-
-   <features>
-      <feature id="org.eclipse.equinox.p2.director.feature" version="0.0.0"/>
-      <feature id="org.eclipse.rcp" version="0.0.0"/>
-   </features>
-
-</product>
diff --git a/bundles/org.eclipse.equinox.p2.director.app/plugin.properties b/bundles/org.eclipse.equinox.p2.director.app/plugin.properties
deleted file mode 100644
index e793afd..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Director Application
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.director.app/plugin.xml b/bundles/org.eclipse.equinox.p2.director.app/plugin.xml
deleted file mode 100644
index 8760c13..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-	<extension id="application" point="org.eclipse.core.runtime.applications"> 
-      <application> 
-         <run class="org.eclipse.equinox.internal.p2.director.app.Application"/> 
-      </application> 
-   </extension>
- <extension
-       id="product"
-       point="org.eclipse.core.runtime.products">
-    <product
-          application="org.eclipse.equinox.p2.director.app.application"
-          name="Equinox Provisioning Director">
-    </product>
- </extension> 
-
-	<extension point="org.eclipse.ant.core.antTasks">
-		<antTask
-			library="ant_tasks/director-ant.jar"
-			name="p2.director"
-			class="org.eclipse.equinox.p2.director.app.ant.DirectorTask">
-		</antTask>
-	</extension>
-
-	<extension point="org.eclipse.ant.core.extraClasspathEntries">
-		<extraClasspathEntry library="ant_tasks/director-ant.jar"/>
-	</extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.director.app/scripts/buildExtraJAR.xml b/bundles/org.eclipse.equinox.p2.director.app/scripts/buildExtraJAR.xml
deleted file mode 100644
index eddf1d9..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/scripts/buildExtraJAR.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.core.resources" default="main" basedir="..">
-
-	<target name="main" depends="clean, ant_tasks/director-ant.jar">
-	</target>
-
-	<target name="init" depends="properties">
-		<property name="plugin" value="org.eclipse.equinox.p2.director.app"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}/ant_tasks"/>
-		<property name="version.suffix" value="_3.1.0"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-	<target name="ant_tasks/director-ant.jar" depends="init" unless="ant_tasks/director-ant.jar">
-		<property name="destdir" value="${temp.folder}/ant_tasks/director-ant.jar.bin"/>
-		<delete dir="${temp.folder}/ant_tasks/director-ant.jar.bin"/>
-		<mkdir dir="${temp.folder}/ant_tasks/director-ant.jar.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/ant_tasks/director-ant.jar.bin" failonerror="true" verbose="true" debug="on">
-			<classpath>
-				<dirset dir="${basedir}/..">
-					<include name="org.eclipse.equinox.p2.director.app/bin"/>
-					<include name="org.eclipse.osgi/bin"/>
-				</dirset>
-				<fileset dir="${eclipse.home}">
-					<include name="plugins/org.eclipse.equinox.p2.director.app*.jar"/>
-					<include name="plugins/org.eclipse.osgi*.jar"/>
-				</fileset>
-			</classpath>
-			<src path="src_ant/"/>
-		</javac>
-		<!-- copy necessary resources -->
-		<copy todir="${temp.folder}/ant_tasks/director-ant.jar.bin">
-			<fileset dir="src_ant/" excludes="**/*.java"/>
-		</copy>
-		<mkdir dir="${build.result.folder}"/>
-		<jar jarfile="${build.result.folder}/director-ant.jar" basedir="${temp.folder}/ant_tasks/director-ant.jar.bin"/>
-		<delete dir="${temp.folder}/ant_tasks/director-ant.jar.bin"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${build.result.folder}/director-ant.jar"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Activator.java b/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Activator.java
deleted file mode 100644
index de0403a..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Activator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director.app;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.director.app"; //$NON-NLS-1$
-	private static BundleContext bundleContext;
-
-	public static BundleContext getContext() {
-		return bundleContext;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		bundleContext = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		bundleContext = null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Application.java b/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Application.java
deleted file mode 100644
index 218d3ae..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Application.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director.app;
-
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.console.ProvisioningHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.phases.Sizing;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Version;
-
-public class Application implements IApplication {
-	private String destination;
-	private URL artifactRepositoryLocation;
-	private URL metadataRepositoryLocation;
-	private String root;
-	private Version version = null;
-	private String flavor;
-	private String profileId;
-	private String profileProperties; // a comma-separated list of property pairs "tag=value"
-	private boolean install;
-	private String bundlePool = null;
-	private String nl;
-	private String os;
-	private String arch;
-	private String ws;
-	private boolean roamingProfile = false;
-
-	private String getEnvironmentProperty() {
-		Properties values = new Properties();
-		if (os != null)
-			values.put("osgi.os", os); //$NON-NLS-1$
-		if (nl != null)
-			values.put("osgi.nl", nl); //$NON-NLS-1$
-		if (ws != null)
-			values.put("osgi.ws", ws); //$NON-NLS-1$
-		if (arch != null)
-			values.put("osgi.arch", arch); //$NON-NLS-1$
-		if (values.isEmpty())
-			return null;
-		return toString(values);
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-
-			if (args[i].equals("-roaming")) { //$NON-NLS-1$
-				roamingProfile = true;
-			}
-
-			// check for args without parameters (i.e., a flag arg)
-
-			// 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];
-
-			if (args[i - 1].equalsIgnoreCase("-profile")) //$NON-NLS-1$
-				profileId = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-profileProperties") || args[i - 1].equalsIgnoreCase("-props")) //$NON-NLS-1$ //$NON-NLS-2$
-				profileProperties = arg;
-
-			// we create a path object here to handle ../ entries in the middle of paths
-			if (args[i - 1].equalsIgnoreCase("-destination") || args[i - 1].equalsIgnoreCase("-dest")) //$NON-NLS-1$ //$NON-NLS-2$
-				destination = new Path(arg).toOSString();
-
-			// we create a path object here to handle ../ entries in the middle of paths
-			if (args[i - 1].equalsIgnoreCase("-bundlepool") || args[i - 1].equalsIgnoreCase("-bp")) //$NON-NLS-1$ //$NON-NLS-2$
-				bundlePool = new Path(arg).toOSString();
-
-			if (args[i - 1].equalsIgnoreCase("-metadataRepository") || args[i - 1].equalsIgnoreCase("-mr")) //$NON-NLS-1$ //$NON-NLS-2$
-				metadataRepositoryLocation = new URL(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-artifactRepository") || args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$
-				artifactRepositoryLocation = new URL(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-flavor")) //$NON-NLS-1$
-				flavor = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-installIU")) { //$NON-NLS-1$
-				root = arg;
-				install = true;
-			}
-
-			if (args[i - 1].equalsIgnoreCase("-version")) { //$NON-NLS-1$
-				version = new Version(arg);
-			}
-
-			if (args[i - 1].equalsIgnoreCase("-uninstallIU")) { //$NON-NLS-1$
-				root = arg;
-				install = false;
-			}
-
-			if (args[i - 1].equalsIgnoreCase("-p2.os")) { //$NON-NLS-1$
-				os = arg;
-			}
-			if (args[i - 1].equalsIgnoreCase("-p2.ws")) { //$NON-NLS-1$
-				ws = arg;
-			}
-			if (args[i - 1].equalsIgnoreCase("-p2.nl")) { //$NON-NLS-1$
-				nl = arg;
-			}
-			if (args[i - 1].equalsIgnoreCase("-p2.arch")) { //$NON-NLS-1$
-				arch = arg;
-			}
-		}
-	}
-
-	/**
-	 * @param pairs	a comma separated list of tag=value pairs
-	 * @param properties the collection into which the pairs are put
-	 */
-	private void putProperties(String pairs, Properties properties) {
-		StringTokenizer tok = new StringTokenizer(pairs, ",", true); //$NON-NLS-1$
-		while (tok.hasMoreTokens()) {
-			String next = tok.nextToken().trim();
-			int i = next.indexOf('=');
-			if (i > 0 && i < next.length() - 1) {
-				String tag = next.substring(0, i).trim();
-				String value = next.substring(i + 1, next.length()).trim();
-				if (tag.length() > 0 && value.length() > 0) {
-					properties.put(tag, value);
-				}
-			}
-		}
-	}
-
-	public Object run(String[] args) throws Exception {
-		long time = -System.currentTimeMillis();
-		initializeFromArguments(args);
-
-		if (profileId == null)
-			profileId = IProfileRegistry.SELF;
-		IProfile profile = ProvisioningHelper.getProfile(profileId);
-		if (profile == null) {
-			Properties props = new Properties();
-			props.setProperty(IProfile.PROP_INSTALL_FOLDER, destination);
-			props.setProperty(IProfile.PROP_FLAVOR, flavor);
-			if (bundlePool != null)
-				if (bundlePool.equals(Messages.destination_commandline))
-					props.setProperty(IProfile.PROP_CACHE, destination);
-				else
-					props.setProperty(IProfile.PROP_CACHE, bundlePool);
-			if (roamingProfile)
-				props.setProperty(IProfile.PROP_ROAMING, Boolean.TRUE.toString());
-
-			String env = getEnvironmentProperty();
-			if (env != null)
-				props.setProperty(IProfile.PROP_ENVIRONMENTS, env);
-			if (profileProperties != null) {
-				putProperties(profileProperties, props);
-			}
-			profile = ProvisioningHelper.addProfile(profileId, props);
-			String currentFlavor = profile.getProperty(IProfile.PROP_FLAVOR);
-			if (currentFlavor != null && !currentFlavor.endsWith(flavor))
-				throw new RuntimeException(Messages.Inconsistent_flavor);
-		}
-		IDirector director = (IDirector) ServiceHelper.getService(Activator.getContext(), IDirector.class.getName());
-		if (director == null)
-			throw new RuntimeException(Messages.Missing_director);
-
-		IPlanner planner = (IPlanner) ServiceHelper.getService(Activator.getContext(), IPlanner.class.getName());
-		if (planner == null)
-			throw new RuntimeException(Messages.Missing_planner);
-
-		IEngine engine = (IEngine) ServiceHelper.getService(Activator.getContext(), IEngine.SERVICE_NAME);
-		if (engine == null)
-			throw new RuntimeException(Messages.Missing_Engine);
-
-		ProvisioningHelper.addArtifactRepository(artifactRepositoryLocation);
-		IMetadataRepository metadataRepository = ProvisioningHelper.addMetadataRepository(metadataRepositoryLocation);
-		VersionRange range = version == null ? VersionRange.emptyRange : new VersionRange(version, true, version, true);
-		IInstallableUnit[] roots = (IInstallableUnit[]) metadataRepository.query(new InstallableUnitQuery(root, range), new Collector(), null).toArray(IInstallableUnit.class);
-		ProvisioningPlan result = null;
-		IStatus operationStatus = null;
-		ProvisioningContext context = new ProvisioningContext();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		if (roots.length > 0) {
-			if (install) {
-				request.addInstallableUnits(roots);
-			} else {
-				request.removeInstallableUnits(roots);
-			}
-			result = planner.getProvisioningPlan(request, context, new NullProgressMonitor());
-			if (!result.getStatus().isOK())
-				operationStatus = result.getStatus();
-			else {
-				Sizing sizeComputer = new Sizing(100, "Compute sizes"); //$NON-NLS-1$
-				PhaseSet set = new PhaseSet(new Phase[] {sizeComputer}) {/*empty */};
-				operationStatus = engine.perform(profile, set, result.getOperands(), context, new NullProgressMonitor());
-				System.out.println(Messages.Disk_size + sizeComputer.getDiskSize());
-				System.out.println(Messages.Download_size + sizeComputer.getDlSize());
-				request = new ProfileChangeRequest(profile);
-				if (install)
-					request.addInstallableUnits(roots);
-				else
-					request.removeInstallableUnits(roots);
-				operationStatus = director.provision(request, null, new NullProgressMonitor());
-			}
-		} else {
-			operationStatus = new Status(IStatus.INFO, Activator.ID, NLS.bind(Messages.Missing_IU, root));
-		}
-
-		time += System.currentTimeMillis();
-		if (operationStatus.isOK()) {
-			System.out.println(NLS.bind(install ? Messages.Installation_complete : Messages.Uninstallation_complete, new Long(time)));
-		} else {
-			System.out.println(install ? Messages.Installation_failed : Messages.Uninstallation_failed + operationStatus);
-			LogHelper.log(operationStatus);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) throws Exception {
-		return run((String[]) context.getArguments().get("application.args")); //$NON-NLS-1$
-	}
-
-	public void stop() {
-		//nothing to do
-	}
-
-	private String toString(Properties context) {
-		StringBuffer result = new StringBuffer();
-		for (Enumeration iter = context.keys(); iter.hasMoreElements();) {
-			String key = (String) iter.nextElement();
-			result.append(key);
-			result.append('=');
-			result.append(context.get(key));
-			if (iter.hasMoreElements())
-				result.append(',');
-		}
-		return result.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Messages.java b/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Messages.java
deleted file mode 100644
index 40aa16c..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Messages.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director.app;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.director.app.messages"; //$NON-NLS-1$
-	public static String destination_commandline;
-	public static String Disk_size;
-	public static String Download_size;
-	public static String Inconsistent_flavor;
-
-	public static String Installation_complete;
-	public static String Uninstallation_complete;
-	public static String Installation_failed;
-	public static String Uninstallation_failed;
-
-	public static String Missing_director;
-	public static String Missing_Engine;
-	public static String Missing_IU;
-	public static String Missing_planner;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		//empty
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/messages.properties b/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/messages.properties
deleted file mode 100644
index 84899d6..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/messages.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-destination_commandline=<destination>
-Disk_size=Estimated size on disk 
-Download_size=Estimated download size 
-Inconsistent_flavor=Install flavor not consistent with profile flavor
-
-Installation_complete=Installation completed in {0} ms.
-Uninstallation_complete=Uninstallation completed in {0} ms.
-Installation_failed=Installation failed.
-Uninstallation_failed=Uninstallation failed.
-
-Missing_director=Director could not be loaded
-Missing_Engine=Engine could not be loaded
-Missing_IU=The installable unit {0} has not been found.
-Missing_planner=Planner could not be loaded
diff --git a/bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java b/bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java
deleted file mode 100644
index fb430c1..0000000
--- a/bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.director.app.ant;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.tools.ant.*;
-import org.eclipse.equinox.internal.p2.director.app.Application;
-import org.osgi.framework.Version;
-
-/**
- * An Ant task to call the p2 Director application.
- * 
- * @since 1.0
- */
-public class DirectorTask extends Task {
-
-	boolean roaming;
-	String profile, flavor, os, ws, nl, arch, installIU, uninstallIU;
-	File destination, bundlePool;
-	URL metadataRepository, artifactRepository;
-	Version version;
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		try {
-			// collect the arguments and call the application
-			new Application().run(getArguments());
-		} catch (Exception e) {
-			throw new BuildException("Exception while calling the director task.", e);
-		}
-	}
-
-	private String[] getArguments() {
-		List result = new ArrayList();
-		if (roaming)
-			result.add("-roaming");
-		if (profile != null) {
-			result.add("-profile");
-			result.add(profile);
-		}
-		if (destination != null) {
-			result.add("-destination");
-			result.add(destination.getAbsolutePath());
-		}
-		if (bundlePool != null) {
-			result.add("-bundlePool");
-			result.add(bundlePool.getAbsolutePath());
-		}
-		if (metadataRepository != null) {
-			result.add("-metadataRepository");
-			result.add(metadataRepository.toExternalForm());
-		}
-		if (artifactRepository != null) {
-			result.add("-artifactRepository");
-			result.add(artifactRepository.toExternalForm());
-		}
-		if (flavor != null) {
-			result.add("-flavor");
-			result.add(flavor);
-		}
-		if (version != null) {
-			result.add("-version");
-			result.add(version.toString());
-		}
-		if (os != null) {
-			result.add("-p2.os");
-			result.add(os);
-		}
-		if (ws != null) {
-			result.add("-p2.ws");
-			result.add(ws);
-		}
-		if (arch != null) {
-			result.add("-p2.arch");
-			result.add(arch);
-		}
-		if (nl != null) {
-			result.add("-p2.nl");
-			result.add(nl);
-		}
-		if (installIU != null) {
-			result.add("-installIU");
-			result.add(installIU);
-		}
-		if (uninstallIU != null) {
-			result.add("-uninstallIU");
-			result.add(uninstallIU);
-		}
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	public void setArch(String value) {
-		arch = value;
-	}
-
-	public void setArtifactRepository(String value) {
-		try {
-			artifactRepository = new URL(value);
-		} catch (MalformedURLException e) {
-			log("Error setting the artifact repository.", e, Project.MSG_ERR);
-		}
-	}
-
-	public void setBundlePool(String value) {
-		bundlePool = new File(value);
-	}
-
-	public void setDestination(String value) {
-		destination = new File(value);
-	}
-
-	public void setFlavor(String value) {
-		flavor = value;
-	}
-
-	public void setInstallIU(String value) {
-		installIU = value;
-	}
-
-	public void setMetadataRepository(String value) {
-		try {
-			metadataRepository = new URL(value);
-		} catch (MalformedURLException e) {
-			log("Error setting the metadata repository.", e, Project.MSG_ERR);
-		}
-	}
-
-	public void setNl(String value) {
-		nl = value;
-	}
-
-	public void setOs(String value) {
-		os = value;
-	}
-
-	public void setProfile(String value) {
-		profile = value;
-	}
-
-	public void setRoaming(String value) {
-		roaming = Boolean.valueOf(value).booleanValue();
-	}
-
-	public void setUninstallIU(String value) {
-		uninstallIU = value;
-	}
-
-	public void setVersion(String value) {
-		version = new Version(value);
-	}
-
-	public void setWs(String value) {
-		ws = value;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/.classpath b/bundles/org.eclipse.equinox.p2.director/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.director/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.director/.cvsignore b/bundles/org.eclipse.equinox.p2.director/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.equinox.p2.director/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.director/.project b/bundles/org.eclipse.equinox.p2.director/.project
deleted file mode 100644
index c5f37a6..0000000
--- a/bundles/org.eclipse.equinox.p2.director/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.director</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 78523cd..0000000
--- a/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,331 +0,0 @@
-#Thu Aug 16 11:00:59 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 014501b..0000000
--- a/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:57:54 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.director/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF
deleted file mode 100644
index 413dd1d..0000000
--- a/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,32 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.director;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.eventbus,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository,
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.eclipse.osgi.util;version="1.0.0",
- org.osgi.framework;version="1.3.0"
-Export-Package: org.eclipse.equinox.internal.p2.director;x-friends:="org.eclipse.equinox.p2.exemplarysetup",
- org.eclipse.equinox.internal.p2.resolution;x-internal:=true,
- org.eclipse.equinox.internal.p2.rollback;x-internal:=true,
- org.eclipse.equinox.internal.provisional.p2.director
-Bundle-Activator: org.eclipse.equinox.internal.p2.director.DirectorActivator
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Require-Bundle: org.eclipse.equinox.common,
- org.sat4j.core;bundle-version="2.0.0",
- org.sat4j.pb;bundle-version="2.0.0"
diff --git a/bundles/org.eclipse.equinox.p2.director/about.html b/bundles/org.eclipse.equinox.p2.director/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.director/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.director/build.properties b/bundles/org.eclipse.equinox.p2.director/build.properties
deleted file mode 100644
index a6b8330..0000000
--- a/bundles/org.eclipse.equinox.p2.director/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.director/plugin.properties b/bundles/org.eclipse.equinox.p2.director/plugin.properties
deleted file mode 100644
index 203d9ac..0000000
--- a/bundles/org.eclipse.equinox.p2.director/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Director
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/BasicIUFilter.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/BasicIUFilter.java
deleted file mode 100644
index 060b30a..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/BasicIUFilter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-public class BasicIUFilter extends IUFilter {
-	private IInstallableUnit[] accepted;
-
-	public BasicIUFilter(IInstallableUnit[] accepted) {
-		this.accepted = accepted;
-	}
-
-	public boolean accept(IInstallableUnit iu) {
-		for (int i = 0; i < accepted.length; i++) {
-			if (accepted[i].equals(iu))
-				return true;
-		}
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/DirectorActivator.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/DirectorActivator.java
deleted file mode 100644
index d3d20b6..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/DirectorActivator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class DirectorActivator implements BundleActivator {
-	public static final String PI_DIRECTOR = "org.eclipse.equinox.p2.director"; //$NON-NLS-1$
-	public static BundleContext context;
-
-	public void start(BundleContext ctx) throws Exception {
-		context = ctx;
-	}
-
-	public void stop(BundleContext ctx) throws Exception {
-		DirectorActivator.context = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/HasMatchCollector.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/HasMatchCollector.java
deleted file mode 100644
index c789d85..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/HasMatchCollector.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-
-/**
- * A collector that short-circuits on the first match.
- */
-public class HasMatchCollector extends Collector {
-	private boolean hasMatch = false;
-
-	public boolean accept(Object object) {
-		hasMatch = true;
-		return false;
-	}
-
-	public boolean isEmpty() {
-		return !hasMatch;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUFilter.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUFilter.java
deleted file mode 100644
index 8745ab1..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUFilter.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-public abstract class IUFilter {
-	public abstract boolean accept(IInstallableUnit iu);
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUProfilePropertyQuery.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUProfilePropertyQuery.java
deleted file mode 100644
index cc7caf7..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUProfilePropertyQuery.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-/**
- * A query that searches for {@link IInstallableUnit} instances that have
- * a property associated with the specified profile, whose value matches the provided value.
- */
-public class IUProfilePropertyQuery extends IUPropertyQuery {
-	private IProfile profile;
-
-	/**
-	 * Creates a new query on the given property name and value.
-	 */
-	public IUProfilePropertyQuery(IProfile profile, String propertyName, String propertyValue) {
-		super(propertyName, propertyValue);
-		this.profile = profile;
-	}
-
-	protected String getProperty(IInstallableUnit iu, String name) {
-		return profile.getInstallableUnitProperty(iu, name);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUPropertyQuery.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUPropertyQuery.java
deleted file mode 100644
index 8e6073a..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUPropertyQuery.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-
-/**
- * A query that searches for {@link IInstallableUnit} instances that have
- * a property whose value matches the provided value.
- */
-public class IUPropertyQuery extends Query {
-	private String propertyName;
-	private String propertyValue;
-
-	/**
-	 * Creates a new query on the given property name and value.
-	 */
-	public IUPropertyQuery(String propertyName, String propertyValue) {
-		this.propertyName = propertyName;
-		this.propertyValue = propertyValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.p2.query2.Query#isMatch(java.lang.Object)
-	 */
-	public boolean isMatch(Object object) {
-		if (!(object instanceof IInstallableUnit))
-			return false;
-		IInstallableUnit candidate = (IInstallableUnit) object;
-		String value = getProperty(candidate, propertyName);
-		if (value != null && value.equals(propertyValue))
-			return true;
-		return false;
-	}
-
-	protected String getProperty(IInstallableUnit iu, String name) {
-		return iu.getProperty(name);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUTransformationHelper.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUTransformationHelper.java
deleted file mode 100644
index fa541d8..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/IUTransformationHelper.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-public class IUTransformationHelper {
-	static public RequiredCapability[] toRequirements(Iterator ius, boolean optional) {
-		ArrayList result = new ArrayList();
-		while (ius.hasNext()) {
-			IInstallableUnit current = (IInstallableUnit) ius.next();
-			result.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, current.getId(), new VersionRange(current.getVersion(), true, current.getVersion(), true), null, optional, false));
-		}
-		return (RequiredCapability[]) result.toArray(new RequiredCapability[result.size()]);
-	}
-
-	static public RequiredCapability[] toRequirements(IInstallableUnit[] ius, boolean optional) {
-		RequiredCapability[] result = new RequiredCapability[ius.length];
-		for (int i = 0; i < result.length; i++) {
-			IInstallableUnit current = ius[i];
-			result[i] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, current.getId(), new VersionRange(current.getVersion(), true, current.getVersion(), true), null, optional, false);
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java
deleted file mode 100644
index 9e3d353..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.director.messages"; //$NON-NLS-1$
-
-	static {
-		// initialize resource bundles
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-
-	public static String Director_Install_Problems;
-
-	public static String Director_Uninstall_Problems;
-	public static String Director_Nothing_To_Uninstall;
-	public static String Director_Cannot_Uninstall;
-	public static String Director_Already_Installed;
-
-	public static String Director_Revert_Problems;
-	public static String Director_Unexpected_IU;
-	public static String Director_Task_Installing;
-	public static String Director_Task_Uninstalling;
-	public static String Director_Task_Updating;
-	public static String Director_Task_Resolving_Dependencies;
-	public static String Director_Unsatisfied_Dependencies;
-	public static String Director_Unsatisfied_Dependency;
-
-	public static String Planner_Error_saving_opbfile;
-	public static String Planner_Format_error;
-	public static String Planner_Missing_opb_file;
-	public static String Planner_Timeout;
-	public static String Planner_Problems_resolving_plan;
-	public static String Planner_Trivial_exception;
-	public static String Planner_Unsatisfiable_problem;
-	public static String Planner_Unsatisfied_dependency;
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java
deleted file mode 100644
index 7320028..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/NewDependencyExpander.java
+++ /dev/null
@@ -1,641 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- * 	Genuitec, LLC - added license support
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.internal.p2.resolution.UnsatisfiedCapability;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.CapabilityQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.Version;
-
-/**
- * Rather than trying to satisfy a particular IU, we try to satisfy all the requirements of this IU and thus recursively.
- * The core data structure here is a map of all the requirements encountered. More precisely it is a map whose key is a simplified requirement object (ns and name only), 
- * and whose value is a data structure holding:
- *	  - the intersection of all occurrences of the constraints encountered
- *   - the list of IUs satisfying this intersection
- * The algorithm is rather simple:
- *   - gather the requirements of a set of bundles and add them to the map computing the intersection
- *   - find the IUs matching each of these requirement
- *   - repeat the two previous steps until the last step no longer find matches 
- * Then the resolver is invoked and for each unsatisfied IU that comes out of the resolver we verify if it belongs to an entry in the map where at least one other IU has been picked.
- * If so we are good, otherwise we have a failure.
- * Known problems:
- *   - Malicious IU. A malicious IU could be brought into the system, thus causing a detection of impossible solution. Is this really unavoidable?
- *   - The more general problem is that we do not backtrack and therefore when we pick an IU and it may cause problems that we will not discover soon enough. Looking ahead may help us
- * in avoiding those cases but still we may have problems.
- * 
- * To be implemented:
- *   - merge of requirements with filters
- *   - check if the IU is applicable according to its platform filter with the given environment
- *   - return unsatisfied constraints
- *   - do the recommendation
- * TODO It may worth experimenting with two pickers (or chained) . One would pick on the alreadyInstalled ius and one on the available ones. This could help us favor already installed ius over the others.
- */
-public class NewDependencyExpander {
-
-	private class Match {
-		/**
-		 * The {@link IInstallableUnit}s satisfying this requirement.
-		 */
-		Set candidates;
-		/**
-		 * The environment against which capability filters are evaluated for this match.
-		 */
-		Dictionary env;
-		RequiredCapability req;
-
-		public Match(RequiredCapability range, Dictionary environment) {
-			this.req = range;
-			this.env = environment;
-			candidates = new HashSet(2);
-		}
-
-		/**
-		 * For debugging purposes only
-		 */
-		public String toString() {
-			return "Match[" + req + ']'; //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Represents a requirement name in the map of required capabilities.
-	 */
-	private class MatchKey {
-		String name;
-		String namespace;
-
-		MatchKey(RequiredCapability capability) {
-			this.namespace = capability.getNamespace();
-			this.name = capability.getName();
-		}
-
-		public boolean equals(Object object) {
-			if (!(object instanceof MatchKey))
-				return false;
-			MatchKey that = (MatchKey) object;
-			return this.namespace.equals(that.namespace) && this.name.equals(that.name);
-		}
-
-		public int hashCode() {
-			return 31 * namespace.hashCode() + name.hashCode();
-		}
-
-		public String toString() {
-			return "MatchKey(" + namespace + '/' + name + ')'; //$NON-NLS-1$
-		}
-	}
-
-	// Installable units that are optional have a dependency on themselves.
-	private class OptionalInstallableUnit implements IInstallableUnit {
-		private boolean optionalReqs;
-		private IInstallableUnit wrapped;
-
-		OptionalInstallableUnit(IInstallableUnit iu, boolean generateOptionalReqs) {
-			wrapped = iu;
-			optionalReqs = generateOptionalReqs;
-		}
-
-		public String getFilter() {
-			return wrapped.getFilter();
-		}
-
-		public String getId() {
-			return wrapped.getId();
-		}
-
-		public Version getVersion() {
-			return wrapped.getVersion();
-		}
-
-		public String getProperty(String key) {
-			return wrapped.getProperty(key);
-		}
-
-		public boolean equals(Object obj) {
-			if (this == obj)
-				return true;
-			if (!super.equals(obj))
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			final OptionalInstallableUnit other = (OptionalInstallableUnit) obj;
-			if (wrapped == null) {
-				if (other.wrapped != null)
-					return false;
-			} else if (!wrapped.equals(other.wrapped))
-				return false;
-			return true;
-		}
-
-		public RequiredCapability[] getRequiredCapabilities() {
-			ArrayList result = new ArrayList();
-			ProvidedCapability[] caps = wrapped.getProvidedCapabilities();
-			for (int i = 0; i < caps.length; i++) {
-				result.add(MetadataFactory.createRequiredCapability(caps[i].getNamespace(), caps[i].getName(), new VersionRange(caps[i].getVersion(), true, caps[i].getVersion(), true), wrapped.getFilter(), optionalReqs, false));
-			}
-			result.addAll(Arrays.asList(wrapped.getRequiredCapabilities()));
-			return (RequiredCapability[]) result.toArray(new RequiredCapability[result.size()]);
-		}
-
-		public int hashCode() {
-			final int prime = 31;
-			int result = super.hashCode();
-			result = prime * result + ((wrapped == null) ? 0 : wrapped.hashCode());
-			return result;
-		}
-
-		public String toString() {
-			return wrapped.toString();
-		}
-
-		public IArtifactKey[] getArtifacts() {
-			return wrapped.getArtifacts();
-		}
-
-		public Map getProperties() {
-			return wrapped.getProperties();
-		}
-
-		public ProvidedCapability[] getProvidedCapabilities() {
-			return wrapped.getProvidedCapabilities();
-		}
-
-		public TouchpointData[] getTouchpointData() {
-			return wrapped.getTouchpointData();
-		}
-
-		public TouchpointType getTouchpointType() {
-			return wrapped.getTouchpointType();
-		}
-
-		public boolean isFragment() {
-			return wrapped.isFragment();
-		}
-
-		public boolean isSingleton() {
-			return wrapped.isSingleton();
-		}
-
-		public int compareTo(Object arg) {
-			return wrapped.compareTo(arg);
-		}
-
-		public IInstallableUnitFragment[] getFragments() {
-			return null;
-		}
-
-		public boolean isResolved() {
-			return false;
-		}
-
-		public IInstallableUnit unresolved() {
-			return this;
-		}
-
-		public IUpdateDescriptor getUpdateDescriptor() {
-			return wrapped.getUpdateDescriptor();
-		}
-
-		public License getLicense() {
-			return wrapped.getLicense();
-		}
-
-		public Copyright getCopyright() {
-			return wrapped.getCopyright();
-		}
-	}
-
-	static final int OperationWork = 100;
-
-	private final Set alreadyInstalled = new HashSet();
-
-	private boolean includeOptional;
-
-	/**
-	 * A map of all the requirements ever encountered in the system. The key is
-	 * a MatchKey and the value is a List of Match objects.
-	 */
-	private Map must = new HashMap();
-	private Picker picker;
-
-	private Dictionary selectionContext;
-
-	private RecommendationDescriptor recommendations;
-
-	private ResolutionHelper resolver;
-
-	private IInstallableUnit[] roots;
-
-	private Collection solution;
-
-	public NewDependencyExpander(IInstallableUnit[] r, IInstallableUnit[] alreadyInstalled, IInstallableUnit[] availableIUs, Dictionary selectionContext, boolean includeOptional) {
-		this.roots = (r == null) ? new IInstallableUnit[0] : r;
-		this.includeOptional = includeOptional;
-		alreadyInstalled = alreadyInstalled == null ? new IInstallableUnit[0] : alreadyInstalled;
-		this.alreadyInstalled.addAll(Arrays.asList(alreadyInstalled));
-		this.selectionContext = selectionContext;
-
-		IInstallableUnit[] result = new IInstallableUnit[roots.length + alreadyInstalled.length + availableIUs.length];
-		System.arraycopy(roots, 0, result, 0, roots.length);
-		System.arraycopy(alreadyInstalled, 0, result, roots.length, alreadyInstalled.length);
-		System.arraycopy(availableIUs, 0, result, roots.length + alreadyInstalled.length, availableIUs.length);
-		picker = new Picker(result, new RecommendationDescriptor(new HashSet()));
-		Collection filterForRoot = new ArrayList();
-		if (r != null && r.length > 0) {
-			filterForRoot.add(new BasicIUFilter(r));
-			filterForRoot.add(new RequirementBasedFilter(r[0].getRequiredCapabilities()));
-		}
-		picker.prefer(filterForRoot);
-	}
-
-	/**
-	 * Creates a problem status for the given unsatisfied dependency.
-	 */
-	private void addUnsatisfied(RequiredCapability req, Collection toAdd, MultiStatus problems) {
-		for (Iterator it = toAdd.iterator(); it.hasNext();) {
-			IInstallableUnit unit = (IInstallableUnit) it.next();
-			RequiredCapability[] required = unit.getRequiredCapabilities();
-			for (int i = 0; i < required.length; i++) {
-				if (required[i].equals(req)) {
-					UnsatisfiedCapability unsatisfied = new UnsatisfiedCapability(req, unit);
-					String msg = NLS.bind(Messages.Director_Unsatisfied_Dependency, unsatisfied);
-					problems.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, msg));
-				}
-			}
-		}
-	}
-
-	private void algo(SubMonitor p, MultiStatus problems) {
-		//First we create dependencies on the root themselves. The first iteration will mostly consist in rediscovering the roots.
-		Collection toAdd = asOptionalIUs(Arrays.asList(roots), false);
-		toAdd.addAll(alreadyInstalled);
-		do {
-			//reset work at each iteration, then use up a third. This results in an infinite series where remaining ticks gets steadily smaller
-			p.setWorkRemaining(100);
-			extractVisibilityData(toAdd);
-			extractRequirements(toAdd);
-			toAdd = collectMatches(toAdd, problems);
-			p.worked(33);
-		} while (toAdd.size() != 0);
-
-		//don't bother invoking the resolver if we already have problems
-		//		if (!problems.isOK())
-		//			return;
-		invokeResolver(problems);
-		//		if (problems.isOK())
-		extractSolution();
-	}
-
-	private void extractVisibilityData(Collection ius) {
-		Collection filters = new ArrayList();
-		for (Iterator iterator = ius.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			if ("true".equalsIgnoreCase(iu.getProperty("lineUp"))) {
-				filters.add(new RequirementBasedFilter(iu.getRequiredCapabilities()));
-			}
-		}
-		picker.prefer(filters);
-	}
-
-	private Collection asOptionalIUs(Collection asList, boolean generateOptionalReqs) {
-		ArrayList result = new ArrayList();
-		for (Iterator iterator = asList.iterator(); iterator.hasNext();) {
-			result.add(new OptionalInstallableUnit(((IInstallableUnit) iterator.next()), generateOptionalReqs));
-		}
-		return result;
-	}
-
-	private Collection collectFlavorProviders(Collection toSearchFor) {
-		String flavor = (String) selectionContext.get(IProfile.PROP_ENVIRONMENTS);
-		if (flavor == null)
-			return new HashSet();
-		IInstallableUnit[][] picked = picker.findInstallableUnit(null, null, new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_FLAVOR, flavor, VersionRange.emptyRange, null, false, false)}, true /* fragmentsOnly */);
-		IInstallableUnit[] ius;
-		if (picked[0].length > 0)
-			ius = picked[0];
-		else
-			ius = picked[1];
-		Set results = new HashSet(ius.length);
-		for (int i = 0; i < ius.length; i++) {
-			IInstallableUnit tmp = match(toSearchFor, ius[i]);
-			if (tmp != null)
-				results.add(new OptionalInstallableUnit(tmp, false));
-		}
-		return results;
-	}
-
-	private Collection collectInstallableUnitFragments(Collection ius) {
-		Set picked = new HashSet();
-		for (Iterator iterator = ius.iterator(); iterator.hasNext();) {
-			IInstallableUnit current = (IInstallableUnit) iterator.next();
-			IInstallableUnit[][] candidates = picker.findInstallableUnit(null, null, new RequiredCapability[] {MetadataFactory.createRequiredCapability("fragment", current.getId(), VersionRange.emptyRange, null, true, false)}, false /* not fragmentsOnly */); //$NON-NLS-1$
-			IInstallableUnit[] matches = candidates[0].length > 0 ? candidates[0] : candidates[1];
-			if (matches.length > 0) { //TODO Here we need to check the filter of the found iu
-				if (matches.length == 1) {
-					picked.add(matches[0]);
-					continue;
-				}
-				//verify that each IU requires the current iu
-				ProvidedCapability capForCurrent = MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, current.getId(), current.getVersion());
-				Map toAdd = new HashMap();
-				for (int i = 0; i < matches.length; i++) {
-					RequiredCapability[] reqs = matches[i].getRequiredCapabilities();
-					boolean isReallyAFragment = false;
-					for (int j = 0; j < reqs.length; j++) {
-						isReallyAFragment = capForCurrent.isSatisfiedBy(reqs[j]);
-					}
-					if (!isReallyAFragment)
-						continue;
-					IInstallableUnit match = (IInstallableUnit) toAdd.get(matches[i].getId());
-					if (match == null || match.getVersion().compareTo(matches[i].getVersion()) < 0)
-						toAdd.put(matches[i].getId(), matches[i]);
-				}
-				picked.addAll(toAdd.values());
-				//in the reminder, check if more than one is good, then pick the highest one.
-			}
-		}
-		return picked;
-	}
-
-	// For each requirement, find the potential IUs
-	private Collection collectMatches(Collection toAdd, MultiStatus problems) {
-		Collection thingsAdded = new HashSet();
-		for (Iterator iterator = must.values().iterator(); iterator.hasNext();) {
-			List all = (List) iterator.next();
-			for (Iterator matches = all.iterator(); matches.hasNext();) {
-				Match current = (Match) matches.next();
-				Collection[] picked = picker.findInstallableUnit(null, null, current.req);
-				Collection found = picked[0].size() > 0 ? picked[0] : picked[1];
-				if (current.candidates.addAll(found)) {
-					thingsAdded.addAll(found);
-					thingsAdded.addAll(collectOptionalInstallableUnits(found));
-				}
-				if (current.candidates.size() == 0 && requirementEnabled(current.req))
-					addUnsatisfied(current.req, toAdd, problems);
-			}
-			if (all.size() > 2) {
-				throw new IllegalStateException("Can't deal with three or more different versions of the same IU " + ((Match) all.get(0)).req + ". See bug 200380");
-			}
-			if (all.size() > 1) {
-				//TODO This algorithm needs to be generalized to consider all the potential candidates.
-				Set set1 = ((Match) all.get(0)).candidates;
-				Set set2 = ((Match) all.get(1)).candidates;
-				boolean potentialSolution = false;
-				for (Iterator iteratorSet1 = set1.iterator(); iteratorSet1.hasNext() && !potentialSolution;) {
-					IInstallableUnit itemSet1 = (IInstallableUnit) iteratorSet1.next();
-					for (Iterator iteratorSet2 = set2.iterator(); iteratorSet2.hasNext() && !potentialSolution;) {
-						IInstallableUnit itemSet2 = (IInstallableUnit) iteratorSet2.next();
-						if (itemSet1.getId().equals(itemSet2.getId()) && ((itemSet1.isSingleton() == true && itemSet1.isSingleton() == itemSet2.isSingleton()) || itemSet1.isSingleton() != itemSet2.isSingleton())) {
-							continue; //This combination would not work. Keep on searching
-						}
-						potentialSolution = true;
-					}
-				}
-				if (potentialSolution == false) {
-					String msg = "Can't find a solution where both: " + all.get(0) + " and " + all.get(1) + " would be satisfied.";
-					problems.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, msg));
-				}
-			}
-
-		}
-		return thingsAdded;
-	}
-
-	private Collection collectOptionalInstallableUnits(Collection optionalFor) {
-		if (!includeOptional)
-			return new ArrayList(0);
-		Collection result = collectFlavorProviders(optionalFor);
-		result.addAll(collectInstallableUnitFragments(optionalFor));
-		//		if (result.size() != 0) {//Find the optional pieces of the optional pieces. TODO I think there can be cases where we would cycle infinitely
-		//			result.addAll(collectOptionalInstallableUnits(result));
-		//		}
-		return result;
-	}
-
-	/**
-	 * Eliminate false positives from the set of unsatisfied capabilities returned
-	 * by the resolver.  This includes optional dependencies, and dependencies for
-	 * which we have an available installable unit.
-	 */
-	private UnsatisfiedCapability[] collectUnsatisfiedDependencies(UnsatisfiedCapability[] unresolved) {
-		ArrayList reallyUnsatisfied = new ArrayList(unresolved.length);
-		for (int i = 0; i < unresolved.length; i++) {
-			List all = (List) must.get(new MatchKey(unresolved[i].getRequiredCapability()));
-			if (all != null) {
-				for (Iterator iterator = all.iterator(); iterator.hasNext();) {
-					Match m = (Match) iterator.next();
-					if (requirementEnabled(m.req) && !oneResolved(m.candidates))
-						reallyUnsatisfied.add(unresolved[i]);
-				}
-			} else {
-				must.get(new MatchKey(unresolved[i].getRequiredCapability()));
-			}
-		}
-		return (UnsatisfiedCapability[]) reallyUnsatisfied.toArray(new UnsatisfiedCapability[reallyUnsatisfied.size()]);
-	}
-
-	private List createList(Match m) {
-		List result = new LinkedList();
-		result.add(m);
-		return result;
-	}
-
-	public IStatus expand(SubMonitor p) {
-		MultiStatus result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 1, Messages.Director_Unsatisfied_Dependencies, null);
-		try {
-			algo(SubMonitor.convert(p, "Resolving", 10), result);
-		} catch (IllegalStateException e) {
-			return new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, 1, e.getMessage(), null);
-		}
-		if (result.isOK())
-			return Status.OK_STATUS;
-		return result;
-	}
-
-	// return a map from a requirement to the set of installable units
-	// 		  depending on that requirement
-	private void extractRequirements(Collection ius) {
-		//map of MatchKey->Match
-		for (Iterator iterator = ius.iterator(); iterator.hasNext();) {
-			IInstallableUnit currentUnit = (IInstallableUnit) iterator.next();
-			RequiredCapability[] toAdd = currentUnit.getRequiredCapabilities();
-			outer: for (int i = 0; i < toAdd.length; i++) {
-				RequiredCapability current = toAdd[i];
-				if (isApplicable(current) && !isMeta(current) && !current.isOptional()) {
-					MatchKey key = new MatchKey(current);
-					List match = (List) must.get(key);
-					if (match == null) {
-						//We've never seen a requirement like this. Make a new match
-						must.put(key, createList(new Match(current, selectionContext)));
-					} else {
-						//look for an existing match whose version range is overlapping the new one
-						for (Iterator matches = match.iterator(); matches.hasNext();) {
-							Match currentMatch = (Match) matches.next();
-							VersionRange newRange = intersect(currentMatch.req.getRange(), current.getRange());
-							if (newRange != null) {
-								//merge version range and environment with existing match
-								currentMatch.req = MetadataFactory.createRequiredCapability(current.getNamespace(), current.getName(), newRange, current.getFilter(), currentMatch.req.isOptional() && current.isOptional(), false);
-								currentMatch.env = mergeEnvironments(currentMatch.env, current);
-								continue outer;
-							}
-						}
-						//the new match is disjoint from existing ones, so add a new match to the list
-						match.add(new Match(current, selectionContext));
-					}
-				}
-			}
-		}
-	}
-
-	private void extractSolution() {
-		solution = Collections.unmodifiableCollection(resolver.getAllResolved());
-	}
-
-	public Collection getAllInstallableUnits() {
-		if (solution == null)
-			solution = new ArrayList(0);
-		return solution;
-	}
-
-	public Collection getNewInstallableUnits() {
-		HashSet newIUs = new HashSet(getAllInstallableUnits());
-		newIUs.removeAll(alreadyInstalled);
-		return newIUs;
-	}
-
-	public RecommendationDescriptor getRecommendations() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	private VersionRange intersect(VersionRange r1, VersionRange r2) {
-		Version resultMin = null;
-		boolean resultMinIncluded = false;
-		Version resultMax = null;
-		boolean resultMaxIncluded = false;
-
-		int minCompare = r1.getMinimum().compareTo(r2.getMinimum());
-		if (minCompare < 0) {
-			resultMin = r2.getMinimum();
-			resultMinIncluded = r2.getIncludeMinimum();
-		} else if (minCompare > 0) {
-			resultMin = r1.getMinimum();
-			resultMinIncluded = r1.getIncludeMinimum();
-		} else {//minCompare == 0
-			resultMin = r1.getMinimum();
-			resultMinIncluded = r1.getIncludeMinimum() && r2.getIncludeMinimum();
-		}
-
-		int maxCompare = r1.getMaximum().compareTo(r2.getMaximum());
-		if (maxCompare > 0) {
-			resultMax = r2.getMaximum();
-			resultMaxIncluded = r2.getIncludeMaximum();
-		} else if (maxCompare < 0) {
-			resultMax = r1.getMaximum();
-			resultMaxIncluded = r1.getIncludeMaximum();
-		} else {//maxCompare == 0
-			resultMax = r1.getMaximum();
-			resultMaxIncluded = r1.getIncludeMaximum() && r2.getIncludeMaximum();
-		}
-
-		int resultRangeComparison = resultMin.compareTo(resultMax);
-		if (resultRangeComparison < 0)
-			return new VersionRange(resultMin, resultMinIncluded, resultMax, resultMaxIncluded);
-		else if (resultRangeComparison == 0 && resultMinIncluded == resultMaxIncluded) {
-			return new VersionRange(resultMin, resultMinIncluded, resultMax, resultMaxIncluded);
-		} else
-			return null;
-	}
-
-	private void invokeResolver(MultiStatus problems) {
-		resolver = new ResolutionHelper(selectionContext, recommendations);
-		Set toInstall = new HashSet(must.size());
-		for (Iterator iterator = must.values().iterator(); iterator.hasNext();) {
-			List allMatches = (List) iterator.next();
-			for (Iterator matches = allMatches.iterator(); matches.hasNext();) {
-				Match current = (Match) matches.next();
-				toInstall.addAll(current.candidates);
-			}
-		}
-		toInstall.removeAll(alreadyInstalled);
-		UnsatisfiedCapability[] unsatisfied = collectUnsatisfiedDependencies(resolver.install(toInstall, alreadyInstalled));
-		for (int i = 0; i < unsatisfied.length; i++) {
-			problems.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Director_Unsatisfied_Dependency, unsatisfied[i])));
-		}
-	}
-
-	// Check whether the requirement is applicable
-	private boolean isApplicable(RequiredCapability req) {
-		String filter = req.getFilter();
-		if (filter == null)
-			return true;
-		try {
-			return DirectorActivator.context.createFilter(filter).match(selectionContext);
-		} catch (InvalidSyntaxException e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Because information to discover additional things to install is mixed with information 
-	 * about inter-component dependencies, we end up having dependencies that cause
-	 * the whole world to be selected. We are here filtering them out.
-	 */
-	private boolean isMeta(RequiredCapability requiredCapability) {
-		String namespace = requiredCapability.getNamespace();
-		//TODO Should not reference OSGi touchpoint concepts here
-		return namespace.equals("org.eclipse.equinox.p2.eclipse.type") || namespace.equals(IInstallableUnit.NAMESPACE_FLAVOR); //$NON-NLS-1$
-	}
-
-	private IInstallableUnit match(Collection close, IInstallableUnit picked) {
-		Collector result = new HasMatchCollector();
-		new CapabilityQuery(picked.getRequiredCapabilities()).perform(close.iterator(), result);
-		if (!result.isEmpty())
-			return picked;
-		return null;
-	}
-
-	private Dictionary mergeEnvironments(Dictionary context, RequiredCapability newCapability) {
-		String[] newSelectors = newCapability.getSelectors();
-		if (newSelectors == null || newSelectors.length == 0)
-			return context;
-		if (context == null)
-			context = new Hashtable();
-		String trueString = Boolean.TRUE.toString();
-		for (int i = 0; i < newSelectors.length; i++) {
-			context.put(newSelectors[i], trueString);
-		}
-		return context;
-	}
-
-	private boolean oneResolved(Collection ius) {
-		for (Iterator iterator = ius.iterator(); iterator.hasNext();) {
-			if (resolver.isResolved((IInstallableUnit) iterator.next()))
-				return true;
-		}
-		return false;
-	}
-
-	private boolean requirementEnabled(RequiredCapability req) {
-		if (req.isOptional())
-			return false;
-		return isApplicable(req);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/OperationGenerator.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/OperationGenerator.java
deleted file mode 100644
index 81a8a59..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/OperationGenerator.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.InstallableUnitOperand;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-
-public class OperationGenerator {
-	private static final IInstallableUnit NULL_IU = MetadataFactory.createResolvedInstallableUnit(MetadataFactory.createInstallableUnit(new InstallableUnitDescription()), new IInstallableUnitFragment[0]);
-
-	public InstallableUnitOperand[] generateOperation(Collection from_, Collection to_) {
-		List from = new ArrayList(from_);
-		Collections.sort(from);
-
-		List to = new ArrayList(to_);
-		Collections.sort(to);
-
-		ArrayList operations = new ArrayList();
-		generateUpdates(from, to, operations);
-		generateInstallUninstall(from, to, operations);
-		InstallableUnitOperand[] ops = (InstallableUnitOperand[]) operations.toArray(new InstallableUnitOperand[operations.size()]);
-		return ops;
-	}
-
-	private void generateInstallUninstall(List from, List to, ArrayList operations) {
-		int toIdx = 0;
-		int fromIdx = 0;
-		while (fromIdx != from.size() && toIdx != to.size()) {
-			IInstallableUnit fromIU = (IInstallableUnit) from.get(fromIdx);
-			IInstallableUnit toIU = (IInstallableUnit) to.get(toIdx);
-			int comparison = toIU.compareTo(fromIU);
-			if (comparison < 0) {
-				operations.add(createInstallOperation(toIU));
-				toIdx++;
-			} else if (comparison == 0) {
-				toIdx++;
-				fromIdx++;
-				//				System.out.println("same " + fromIU);
-			} else {
-				operations.add(createUninstallOperation(fromIU));
-				fromIdx++;
-			}
-		}
-		if (fromIdx != from.size()) {
-			for (int i = fromIdx; i < from.size(); i++) {
-				operations.add(createUninstallOperation((IInstallableUnit) from.get(i)));
-			}
-		}
-		if (toIdx != to.size()) {
-			for (int i = toIdx; i < to.size(); i++) {
-				operations.add(createInstallOperation((IInstallableUnit) to.get(i)));
-			}
-		}
-	}
-
-	private void generateUpdates(List from, List to, ArrayList operations) {
-		Set processed = new HashSet();
-		Set removedFromTo = new HashSet();
-		for (int toIdx = 0; toIdx < to.size(); toIdx++) {
-			IInstallableUnit iuTo = (IInstallableUnit) to.get(toIdx);
-			if (iuTo.getId().equals(next(from, toIdx).getId())) {
-				toIdx = skip(to, iuTo, toIdx) - 1;
-				//System.out.println("Can't update " + iuTo + " because another iu with same id is in the target state");
-				continue;
-			}
-			if (iuTo.getUpdateDescriptor() == null)
-				continue;
-			//when the ui we update from is in the new state, skip (for example FROM is A, C, B & TO is C (update of 
-			InstallableUnitQuery updateQuery = new InstallableUnitQuery(iuTo.getUpdateDescriptor().getId(), iuTo.getUpdateDescriptor().getRange());
-			Iterator updates = updateQuery.perform(from.iterator(), new Collector()).iterator();
-
-			IInstallableUnit iuFrom;
-			if (!updates.hasNext()) { //Nothing to update from.
-				continue;
-			}
-			iuFrom = (IInstallableUnit) updates.next();
-			if (updates.hasNext()) { //There are multiple IUs to update from
-				//System.out.println("Can't update  " + iuTo + " because there are multiple IUs to update from (" + toString(iusFrom) + ')');
-				continue;
-			}
-			if (iuTo.equals(iuFrom)) {
-				from.remove(iuFrom);
-				removedFromTo.add(iuTo);
-				continue;
-			}
-			operations.add(createUpdateOperation(iuFrom, iuTo));
-			from.remove(iuFrom);
-			processed.add(iuTo);
-		}
-		to.removeAll(processed);
-		to.removeAll(removedFromTo);
-	}
-
-	private InstallableUnitOperand createUninstallOperation(IInstallableUnit iu) {
-		return new InstallableUnitOperand(iu, null);
-	}
-
-	private InstallableUnitOperand createInstallOperation(IInstallableUnit iu) {
-		return new InstallableUnitOperand(null, iu);
-	}
-
-	private InstallableUnitOperand createUpdateOperation(IInstallableUnit from, IInstallableUnit to) {
-		return new InstallableUnitOperand(from, to);
-	}
-
-	private IInstallableUnit next(List l, int i) {
-		i++;
-		if (i >= l.size())
-			return NULL_IU;
-		return (IInstallableUnit) l.get(i);
-	}
-
-	private int skip(List c, IInstallableUnit id, int idx) {
-		int i = idx;
-		for (; i < c.size(); i++) {
-			if (!id.getId().equals(((IInstallableUnit) c.get(idx)).getId()))
-				return i;
-		}
-		return i;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/PatchingIU.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/PatchingIU.java
deleted file mode 100644
index 1328f98..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/PatchingIU.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-
-public class PatchingIU extends Query {
-
-	public PatchingIU(RequiredCapability req) {
-	}
-
-	public boolean isMatch(Object candidate) {
-		if (!(candidate instanceof IInstallableUnit))
-			return false;
-
-		IInstallableUnit iu = (IInstallableUnit) candidate;
-		if (iu.getProperty("patch").equals("true"))
-			return true;
-		return hasApplicablePatch(iu);
-	}
-
-	private boolean hasApplicablePatch(IInstallableUnit iu) {
-		//iu.getPatches
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Picker.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Picker.java
deleted file mode 100644
index aab7176..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Picker.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-//The pickers goal is to find an installable unit that satisfies a search criteria 
-//TODO we may need additional variations of these method where version can be null, or where the search returns all the match, not just the first one
-//TODO do we want a facility to limit the searching space, or do we assume that the unitsToPickFrom has already been scoped 
-public class Picker {
-	//TODO we'll likely need better indexing capabilities
-	private IInstallableUnit[] preferredSet;
-	private IInstallableUnit[] completeSet;
-	private IInstallableUnit[] secondChoiceSet;
-	private RecommendationDescriptor recommendations;
-
-	private List filters;
-
-	public Picker(IInstallableUnit[] unitsToPickFrom, RecommendationDescriptor recommendations) {
-		if (unitsToPickFrom != null)
-			completeSet = unitsToPickFrom;
-		else
-			completeSet = new IInstallableUnit[0];
-		this.secondChoiceSet = completeSet;
-		this.recommendations = recommendations;
-		this.filters = new ArrayList(2);
-	}
-
-	public Collection[] findInstallableUnit(String id, VersionRange range, RequiredCapability searchedCapability) {
-		IInstallableUnit[][] tmp = findInstallableUnit(id, range, new RequiredCapability[] {searchedCapability}, false);
-		return new Collection[] {Arrays.asList(tmp[0]), Arrays.asList(tmp[1])};
-	}
-
-	public void prefer(Collection filtersToAdd) {
-		if (!filters.addAll(filtersToAdd))
-			return;
-		if (filters.size() == 0)
-			return;
-		Set preferredIUs = new HashSet(completeSet.length);
-		Set secondChoice = new HashSet(completeSet.length);
-		for (int i = 0; i < completeSet.length; i++) {
-			for (Iterator iterator = filters.iterator(); iterator.hasNext();) {
-				if (((IUFilter) iterator.next()).accept(completeSet[i])) {
-					preferredIUs.add(completeSet[i]);
-					continue;
-				} else {
-					secondChoice.add(completeSet[i]);
-				}
-			}
-		}
-		preferredSet = (IInstallableUnit[]) preferredIUs.toArray(new IInstallableUnit[preferredIUs.size()]);
-		secondChoiceSet = (IInstallableUnit[]) secondChoice.toArray(new IInstallableUnit[secondChoice.size()]);
-	}
-
-	public IInstallableUnit[][] findInstallableUnit(String id, VersionRange range, RequiredCapability[] searchedCapability, boolean fragmentsOnly) {
-		return new IInstallableUnit[][] {findInstallableUnit(preferredSet, id, range, searchedCapability, fragmentsOnly), findInstallableUnit(secondChoiceSet, id, range, searchedCapability, fragmentsOnly)};
-	}
-
-	//TODO what should be the return value when all the parameters are null. Is it even a valid call?
-	//TODO A lot of improvement could be done on this algorithm, for example
-	// - remove from the set of searchedCapability the one that are found
-	private IInstallableUnit[] findInstallableUnit(IInstallableUnit[] pool, String id, VersionRange range, RequiredCapability[] searchedCapability, boolean fragmentsOnly) {
-		if (pool == null || pool.length == 0)
-			return new IInstallableUnit[0];
-		Set candidates = new HashSet();
-
-		//Filter on plugin id and range
-		if (id != null && range != null) {
-			for (int i = 0; i < pool.length; i++) {
-				if (pool[i].getId().equals(id) && range.isIncluded(pool[i].getVersion()))
-					candidates.add(pool[i]);
-			}
-			pool = (IInstallableUnit[]) candidates.toArray(new IInstallableUnit[candidates.size()]);
-		}
-
-		//Filter on capabilities.
-		if (searchedCapability != null) {
-			searchedCapability = rewrite(searchedCapability);
-			for (int i = 0; i < pool.length; i++) {
-				IInstallableUnit candidate = pool[i];
-				for (int k = 0; k < searchedCapability.length; k++) {
-					boolean valid = false;
-					ProvidedCapability[] capabilities = candidate.getProvidedCapabilities();
-					if (capabilities.length == 0)
-						valid = false;
-					for (int j = 0; j < capabilities.length; j++) {
-						if ((searchedCapability[k].getName().equals(capabilities[j].getName()) && searchedCapability[k].getNamespace().equals(capabilities[j].getNamespace()) && (searchedCapability[k].getRange() == null ? true : searchedCapability[k].getRange().isIncluded(capabilities[j].getVersion())))) { //TODO Need to deal with option
-							valid = true;
-							break;
-						}
-					}
-					if (valid && (!fragmentsOnly || candidate.isFragment())) {
-						candidates.add(candidate);
-					}
-				}
-			}
-			pool = (IInstallableUnit[]) candidates.toArray(new IInstallableUnit[candidates.size()]);
-		}
-
-		return pool;
-	}
-
-	private RequiredCapability[] rewrite(RequiredCapability[] requiredCapabilities) {
-		if (recommendations == null)
-			return requiredCapabilities;
-		RequiredCapability[] result = new RequiredCapability[requiredCapabilities.length];
-		for (int i = 0; i < requiredCapabilities.length; i++) {
-			result[i] = getRecommendation(requiredCapabilities[i]);
-			if (result[i] == null)
-				result[i] = requiredCapabilities[i];
-		}
-		return result;
-	}
-
-	private RequiredCapability getRecommendation(RequiredCapability match) {
-		Recommendation foundRecommendation = recommendations.findRecommendation(match);
-		return foundRecommendation != null ? foundRecommendation.newValue() : match;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java
deleted file mode 100644
index 5c4b392..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.io.*;
-import java.util.*;
-import java.util.Map.Entry;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.CapabilityQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.IQueryable;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.InvalidSyntaxException;
-import org.sat4j.pb.IPBSolver;
-import org.sat4j.pb.SolverFactory;
-import org.sat4j.pb.reader.OPBEclipseReader2007;
-import org.sat4j.reader.ParseFormatException;
-import org.sat4j.specs.*;
-
-/**
- * This class is the interface between SAT4J and the planner. It produces a
- * boolean satisfiability problem, invokes the solver, and converts the solver result
- * back into information understandable by the planner.
- */
-public class Projector {
-	private static boolean DEBUG = false;
-	private IQueryable picker;
-
-	private Map variables; //key IU, value corresponding variable in the problem
-	private Map noopVariables; //key IU, value corresponding no optionality variable in the problem, 
-	private List abstractVariables;
-
-	private TwoTierMap slice; //The IUs that have been considered to be part of the problem
-
-	private Dictionary selectionContext;
-
-	private int varCount = 1;
-
-	private ArrayList constraints;
-	private ArrayList dependencies;
-	private ArrayList tautologies;
-	private StringBuffer objective;
-	private StringBuffer explanation = new StringBuffer("explain: "); //$NON-NLS-1$
-	private Collection solution;
-
-	private File problemFile;
-	private MultiStatus result;
-
-	public Projector(IQueryable q, Dictionary context) {
-		picker = q;
-		variables = new HashMap();
-		noopVariables = new HashMap();
-		slice = new TwoTierMap();
-		constraints = new ArrayList();
-		tautologies = new ArrayList();
-		dependencies = new ArrayList();
-		selectionContext = context;
-		abstractVariables = new ArrayList();
-		result = new MultiStatus(DirectorActivator.PI_DIRECTOR, IStatus.OK, Messages.Planner_Problems_resolving_plan, null);
-	}
-
-	public void encode(IInstallableUnit[] ius, IProgressMonitor monitor) {
-		try {
-			long start = 0;
-			if (DEBUG) {
-				start = System.currentTimeMillis();
-				System.out.println("Start projection: " + start); //$NON-NLS-1$
-			}
-
-			Iterator iusToEncode = picker.query(InstallableUnitQuery.ANY, new Collector(), null).iterator();
-			while (iusToEncode.hasNext()) {
-				processIU((IInstallableUnit) iusToEncode.next());
-			}
-			createConstraintsForSingleton();
-			for (int i = 0; i < ius.length; i++) {
-				createMustHaves(ius[i]);
-			}
-			createOptimizationFunction();
-			persist();
-			if (DEBUG) {
-				long stop = System.currentTimeMillis();
-				System.out.println("Projection complete: " + (stop - start)); //$NON-NLS-1$
-			}
-		} catch (IllegalStateException e) {
-			result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, e.getMessage(), e));
-		}
-	}
-
-	//Create an optimization function favoring the highest version of each IU  
-	private void createOptimizationFunction() {
-		objective = new StringBuffer("min:"); //$NON-NLS-1$
-		Set s = slice.entrySet();
-
-		//Add the abstract variables
-		for (Iterator iterator = abstractVariables.iterator(); iterator.hasNext();) {
-			objective.append(" -2 ").append((String) iterator.next()); //$NON-NLS-1$
-		}
-
-		for (Iterator iterator = s.iterator(); iterator.hasNext();) {
-			Map.Entry entry = (Map.Entry) iterator.next();
-			HashMap conflictingEntries = (HashMap) entry.getValue();
-			if (conflictingEntries.size() <= 1) {
-				objective.append(" 1 ").append(getVariable((IInstallableUnit) conflictingEntries.values().iterator().next())); //$NON-NLS-1$
-				continue;
-			}
-			List toSort = new ArrayList(conflictingEntries.values());
-			Collections.sort(toSort);
-			double weight = Math.pow(10, toSort.size() - 1);
-			int count = toSort.size();
-			for (Iterator iterator2 = toSort.iterator(); iterator2.hasNext();) {
-				count--;
-				objective.append(' ').append((int) weight).append(' ').append(getVariable((IInstallableUnit) iterator2.next()));
-				weight = weight / 10;
-			}
-		}
-		objective.append(" ;"); //$NON-NLS-1$
-	}
-
-	private void createMustHaves(IInstallableUnit iu) {
-		tautologies.add(" +1 " + getVariable(iu) + " = 1;"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private void createNegation(IInstallableUnit iu) {
-		tautologies.add(" +1" + getVariable(iu) + " = 0;"); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	// Check whether the requirement is applicable
-	private boolean isApplicable(RequiredCapability req) {
-		String filter = req.getFilter();
-		if (filter == null)
-			return true;
-		try {
-			return DirectorActivator.context.createFilter(filter).match(selectionContext);
-		} catch (InvalidSyntaxException e) {
-			return false;
-		}
-	}
-
-	//Write the problem generated into a temporary file
-	private void persist() {
-		try {
-			problemFile = File.createTempFile("p2Encoding", ".opb"); //$NON-NLS-1$//$NON-NLS-2$
-			BufferedWriter w = new BufferedWriter(new FileWriter(problemFile));
-			int clauseCount = tautologies.size() + dependencies.size() + constraints.size();
-
-			w.write("* #variable= " + varCount + " #constraint= " + clauseCount + "  "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			w.newLine();
-			w.write("*"); //$NON-NLS-1$
-			w.newLine();
-
-			if (clauseCount == 0) {
-				w.close();
-				return;
-			}
-			w.write(objective.toString());
-			w.newLine();
-			w.newLine();
-
-			w.write(explanation + " ;"); //$NON-NLS-1$
-			w.newLine();
-			w.newLine();
-
-			for (Iterator iterator = dependencies.iterator(); iterator.hasNext();) {
-				w.write((String) iterator.next());
-				w.newLine();
-			}
-			for (Iterator iterator = constraints.iterator(); iterator.hasNext();) {
-				w.write((String) iterator.next());
-				w.newLine();
-			}
-			for (Iterator iterator = tautologies.iterator(); iterator.hasNext();) {
-				w.write((String) iterator.next());
-				w.newLine();
-			}
-			w.close();
-		} catch (IOException e) {
-			result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Error_saving_opbfile, problemFile), e));
-		}
-	}
-
-	private boolean isApplicable(IInstallableUnit iu) {
-		String enablementFilter = iu.getFilter();
-		if (enablementFilter == null)
-			return true;
-		try {
-			return DirectorActivator.context.createFilter(enablementFilter).match(selectionContext);
-		} catch (InvalidSyntaxException e) {
-			return false;
-		}
-	}
-
-	public void processIU(IInstallableUnit iu) {
-		slice.put(iu.getId(), iu.getVersion(), iu);
-		explanation.append(" ").append(getVariable(iu)); //$NON-NLS-1$
-		if (!isApplicable(iu)) {
-			createNegation(iu);
-			return;
-		}
-
-		RequiredCapability[] reqs = iu.getRequiredCapabilities();
-		if (reqs.length == 0) {
-			return;
-		}
-		for (int i = 0; i < reqs.length; i++) {
-			if (!isApplicable(reqs[i]))
-				continue;
-
-			expandRequirement(iu, reqs[i]);
-		}
-		addOptionalityExpression();
-	}
-
-	private void addOptionalityExpression() {
-		if (optionalityExpression != null && countOptionalIUs > 0)
-			dependencies.add(optionalityExpression + " >= 0;"); //$NON-NLS-1$
-		optionalityExpression = null;
-		countOptionalIUs = 0;
-	}
-
-	private String optionalityExpression = null;
-	private int countOptionalIUs = 0;
-
-	private void expandOptionalRequirement(IInstallableUnit iu, RequiredCapability req) {
-		String abstractVar = getAbstractVariable();
-		String expression = " -1 " + abstractVar; //$NON-NLS-1$
-		Collector matches = picker.query(new CapabilityQuery(req), new Collector(), null);
-		if (optionalityExpression == null)
-			optionalityExpression = " -1 " + getVariable(iu) + " 1 " + getNoOptionalVariable(iu); //$NON-NLS-1$ //$NON-NLS-2$ 
-
-		int countMatches = 0;
-		for (Iterator iterator = matches.iterator(); iterator.hasNext();) {
-			IInstallableUnit match = (IInstallableUnit) iterator.next();
-			if (!isApplicable(match))
-				continue;
-			countMatches++;
-			expression += " 1 " + getVariable(match); //$NON-NLS-1$
-		}
-		countOptionalIUs += countMatches;
-		if (countMatches > 0) {
-			dependencies.add(" -1 " + getNoOptionalVariable(iu) + " -1 " + abstractVar + " >= -1;"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			dependencies.add(expression + " >= 0;"); //$NON-NLS-1$
-			optionalityExpression += " 1 " + abstractVar; //$NON-NLS-1$
-		}
-
-		if (DEBUG)
-			System.out.println("No IU found to satisfy optional dependency of " + iu + " req " + req); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	private void expandNormalRequirement(IInstallableUnit iu, RequiredCapability req) {
-		//Generate the regular requirement
-		String expression = "-1 " + getVariable(iu); //$NON-NLS-1$
-		Collector matches = picker.query(new CapabilityQuery(req), new Collector(), null);
-
-		int countMatches = 0;
-		for (Iterator iterator = matches.iterator(); iterator.hasNext();) {
-			IInstallableUnit match = (IInstallableUnit) iterator.next();
-			if (!isApplicable(match))
-				continue;
-			countMatches++;
-			expression += " +1 " + getVariable(match); //$NON-NLS-1$
-		}
-
-		if (countMatches > 0) {
-			dependencies.add(expression + " >= 0;"); //$NON-NLS-1$
-		} else {
-			result.add(new Status(IStatus.WARNING, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Unsatisfied_dependency, iu, req)));
-			createNegation(iu);
-		}
-	}
-
-	private void expandRequirement(IInstallableUnit iu, RequiredCapability req) {
-		if (req.isOptional())
-			expandOptionalRequirement(iu, req);
-		else
-			expandNormalRequirement(iu, req);
-	}
-
-	//Create constraints to deal with singleton
-	//When there is a mix of singleton and non singleton, several constraints are generated 
-	private void createConstraintsForSingleton() {
-		Set s = slice.entrySet();
-		for (Iterator iterator = s.iterator(); iterator.hasNext();) {
-			Map.Entry entry = (Map.Entry) iterator.next();
-			HashMap conflictingEntries = (HashMap) entry.getValue();
-			if (conflictingEntries.size() < 2)
-				continue;
-
-			Collection conflictingVersions = conflictingEntries.values();
-			String singletonRule = ""; //$NON-NLS-1$
-			ArrayList nonSingleton = new ArrayList();
-			int countSingleton = 0;
-			for (Iterator conflictIterator = conflictingVersions.iterator(); conflictIterator.hasNext();) {
-				IInstallableUnit conflictElt = (IInstallableUnit) conflictIterator.next();
-				if (conflictElt.isSingleton()) {
-					singletonRule += " -1 " + getVariable(conflictElt); //$NON-NLS-1$
-					countSingleton++;
-				} else {
-					nonSingleton.add(conflictElt);
-				}
-			}
-			if (countSingleton == 0)
-				continue;
-
-			for (Iterator iterator2 = nonSingleton.iterator(); iterator2.hasNext();) {
-				constraints.add(singletonRule + " -1 " + getVariable((IInstallableUnit) iterator2.next()) + " >= -1;"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			singletonRule += " >= -1;"; //$NON-NLS-1$
-			constraints.add(singletonRule);
-		}
-	}
-
-	//Return the corresponding variable 
-	private String getVariable(IInstallableUnit iu) {
-		String v = (String) variables.get(iu);
-		if (v == null) {
-			v = new String("x" + varCount++); //$NON-NLS-1$
-			variables.put(iu, v);
-		}
-		return v;
-	}
-
-	private String getAbstractVariable() {
-		String newVar = new String("x" + varCount++); //$NON-NLS-1$
-		abstractVariables.add(newVar);
-		return newVar;
-	}
-
-	private String getNoOptionalVariable(IInstallableUnit iu) {
-		String v = (String) noopVariables.get(iu);
-		if (v == null) {
-			v = new String("x" + varCount++); //$NON-NLS-1$
-			noopVariables.put(iu, v);
-		}
-		return v;
-	}
-
-	public IStatus invokeSolver(IProgressMonitor monitor) {
-		if (result.getSeverity() == IStatus.ERROR)
-			return result;
-		IPBSolver solver = SolverFactory.newEclipseP2();
-		solver.setTimeout(60);
-		OPBEclipseReader2007 reader = new OPBEclipseReader2007(solver);
-		// CNF filename is given on the command line 
-		long start = System.currentTimeMillis();
-		if (DEBUG)
-			System.out.println("Invoking solver: " + start); //$NON-NLS-1$
-		FileReader fr = null;
-		try {
-			fr = new FileReader(problemFile);
-			IProblem problem = reader.parseInstance(fr);
-			if (problem.isSatisfiable()) {
-				if (DEBUG) {
-					System.out.println("Satisfiable !"); //$NON-NLS-1$
-					System.out.println(reader.decode(problem.model()));
-				}
-				backToIU(problem);
-				long stop = System.currentTimeMillis();
-				if (DEBUG)
-					System.out.println("Solver solution found: " + (stop - start)); //$NON-NLS-1$
-			} else {
-				if (DEBUG)
-					System.out.println("Unsatisfiable !"); //$NON-NLS-1$
-				result.merge(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Unsatisfiable_problem, problemFile)));
-			}
-		} catch (FileNotFoundException e) {
-			result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Missing_opb_file, problemFile)));
-		} catch (ParseFormatException e) {
-			result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Format_error, problemFile)));
-		} catch (ContradictionException e) {
-			result.merge(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Trivial_exception, problemFile)));
-		} catch (TimeoutException e) {
-			result.merge(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Timeout, problemFile)));
-		} catch (Exception e) {
-			e.printStackTrace();
-		} finally {
-			try {
-				if (fr != null)
-					fr.close();
-			} catch (IOException e) {
-				//ignore
-			}
-			problemFile.delete();
-		}
-		return result;
-	}
-
-	private void backToIU(IProblem problem) {
-		solution = new ArrayList();
-		for (Iterator allIUs = variables.entrySet().iterator(); allIUs.hasNext();) {
-			Entry entry = (Entry) allIUs.next();
-			int match = Integer.parseInt(((String) entry.getValue()).substring(1));
-			if (problem.model(match)) {
-				solution.add(((IInstallableUnit) entry.getKey()).unresolved());
-			}
-		}
-	}
-
-	private void printSolution(Collection state) {
-		ArrayList l = new ArrayList(state);
-		Collections.sort(l);
-		System.out.println("Numbers of IUs selected:" + l.size()); //$NON-NLS-1$
-		for (Iterator iterator = l.iterator(); iterator.hasNext();) {
-			System.out.println(iterator.next());
-		}
-	}
-
-	public Collection extractSolution() {
-		if (DEBUG)
-			printSolution(solution);
-		return solution;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/QueryableArray.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/QueryableArray.java
deleted file mode 100644
index 38cc578..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/QueryableArray.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.eclipse.equinox.internal.p2.director;
-
-import java.util.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.CapabilityQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.*;
-
-public class QueryableArray implements IQueryable {
-	static class IUCapability {
-		final IInstallableUnit iu;
-		final ProvidedCapability capability;
-
-		public IUCapability(IInstallableUnit iu, ProvidedCapability capability) {
-			this.iu = iu;
-			this.capability = capability;
-		}
-	}
-
-	private final List dataSet;
-	private Map namedCapabilityIndex;
-
-	public QueryableArray(IInstallableUnit[] ius) {
-		dataSet = Arrays.asList(ius);
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		if (query instanceof CapabilityQuery)
-			return queryCapability((CapabilityQuery) query, collector, monitor);
-		return query.perform(dataSet.iterator(), collector);
-	}
-
-	private Collector queryCapability(CapabilityQuery query, Collector collector, IProgressMonitor monitor) {
-		generateNamedCapabilityIndex();
-
-		RequiredCapability[] requiredCapabilities = query.getRequiredCapabilities();
-		Collection resultIUs = null;
-		for (int i = 0; i < requiredCapabilities.length; i++) {
-			Collection matchingIUs = findMatchingIUs(requiredCapabilities[i]);
-			if (matchingIUs == null)
-				return collector;
-			if (resultIUs == null)
-				resultIUs = matchingIUs;
-			else
-				resultIUs.retainAll(matchingIUs);
-		}
-
-		for (Iterator iterator = resultIUs.iterator(); iterator.hasNext();)
-			collector.accept(iterator.next());
-
-		return collector;
-	}
-
-	private Collection findMatchingIUs(RequiredCapability requiredCapability) {
-		List iuCapabilities = (List) namedCapabilityIndex.get(requiredCapability.getName());
-		if (iuCapabilities == null)
-			return null;
-
-		Set matchingIUs = new HashSet();
-		for (Iterator iterator = iuCapabilities.iterator(); iterator.hasNext();) {
-			IUCapability iuCapability = (IUCapability) iterator.next();
-			if (iuCapability.capability.isSatisfiedBy(requiredCapability))
-				matchingIUs.add(iuCapability.iu);
-		}
-		return matchingIUs;
-	}
-
-	private void generateNamedCapabilityIndex() {
-		if (namedCapabilityIndex != null)
-			return;
-
-		namedCapabilityIndex = new HashMap();
-		for (Iterator iterator = dataSet.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-
-			ProvidedCapability[] providedCapabilities = iu.getProvidedCapabilities();
-			for (int i = 0; i < providedCapabilities.length; i++) {
-				String name = providedCapabilities[i].getName();
-				List iuCapabilities = (List) namedCapabilityIndex.get(name);
-				if (iuCapabilities == null) {
-					iuCapabilities = new ArrayList();
-					namedCapabilityIndex.put(name, iuCapabilities);
-				}
-				iuCapabilities.add(new IUCapability(iu, providedCapabilities[i]));
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Recommendation.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Recommendation.java
deleted file mode 100644
index 7015324..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Recommendation.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class Recommendation {
-	private RequiredCapability applyOn;
-	private RequiredCapability newValue;
-
-	public Recommendation(RequiredCapability applyOn2, RequiredCapability newValue2) {
-		this.applyOn = applyOn2;
-		this.newValue = newValue2;
-	}
-
-	public RequiredCapability applyOn() {
-		return applyOn;
-	}
-
-	public RequiredCapability newValue() {
-		return newValue;
-	}
-
-	public boolean matches(RequiredCapability toMatch) {
-		if (!toMatch.getNamespace().equals(applyOn.getNamespace()))
-			return false;
-		if (!toMatch.getName().equals(applyOn.getName()))
-			return false;
-		if (toMatch.getRange().equals(applyOn.getRange()))
-			return true;
-
-		//TODO Here, in the long run we want to be smarter .for example we could check that the range of the match is a subset of the range specified on applyOn.
-		return false;
-	}
-
-	boolean matches(Recommendation toMatch) {
-		return matches(toMatch.applyOn());
-	}
-
-	protected Recommendation merge(Recommendation r2) {
-		VersionRange result = intersect(newValue().getRange(), r2.newValue().getRange());
-		if (result == null)
-			return null;
-		return new Recommendation(applyOn, MetadataFactory.createRequiredCapability(applyOn.getNamespace(), applyOn.getName(), result, null, false, false));
-	}
-
-	private VersionRange intersect(VersionRange r1, VersionRange r2) {
-		Version resultMin = null;
-		boolean resultMinIncluded = false;
-		Version resultMax = null;
-		boolean resultMaxIncluded = false;
-
-		int minCompare = r1.getMinimum().compareTo(r2.getMinimum());
-		if (minCompare < 0) {
-			resultMin = r2.getMinimum();
-			resultMinIncluded = r2.getIncludeMinimum();
-		} else if (minCompare > 0) {
-			resultMin = r1.getMinimum();
-			resultMinIncluded = r1.getIncludeMinimum();
-		} else if (minCompare == 0) {
-			resultMin = r1.getMinimum();
-			resultMinIncluded = r1.getIncludeMinimum() && r2.getIncludeMinimum();
-		}
-
-		int maxCompare = r1.getMaximum().compareTo(r2.getMaximum());
-		if (maxCompare > 0) {
-			resultMax = r2.getMaximum();
-			resultMaxIncluded = r2.getIncludeMaximum();
-		} else if (maxCompare < 0) {
-			resultMax = r1.getMaximum();
-			resultMaxIncluded = r1.getIncludeMaximum();
-		} else if (maxCompare == 0) {
-			resultMax = r1.getMaximum();
-			resultMaxIncluded = r1.getIncludeMaximum() && r2.getIncludeMaximum();
-		}
-
-		int resultRangeComparison = resultMin.compareTo(resultMax);
-		if (resultRangeComparison < 0)
-			return new VersionRange(resultMin, resultMinIncluded, resultMax, resultMaxIncluded);
-		else if (resultRangeComparison == 0 && resultMinIncluded == resultMaxIncluded)
-			return new VersionRange(resultMin, resultMinIncluded, resultMax, resultMaxIncluded);
-		else
-			return null;
-	}
-
-	public boolean isCompatible(Recommendation other) {
-		return intersect(newValue.getRange(), other.newValue.getRange()) != null;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((applyOn == null) ? 0 : applyOn.hashCode());
-		result = prime * result + ((newValue == null) ? 0 : newValue.hashCode());
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final Recommendation other = (Recommendation) obj;
-		if (applyOn == null) {
-			if (other.applyOn != null)
-				return false;
-		} else if (!applyOn.equals(other.applyOn))
-			return false;
-		if (newValue == null) {
-			if (other.newValue != null)
-				return false;
-		} else if (!newValue.equals(other.newValue))
-			return false;
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RecommendationDescriptor.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RecommendationDescriptor.java
deleted file mode 100644
index 8504f14..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RecommendationDescriptor.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-public class RecommendationDescriptor {
-	public static final String TOUCHPOINT_DATA_KEY = "recommendations";
-	public static final String KIND = "recommendation";
-
-	private Set recommendations;
-
-	public RecommendationDescriptor(Set recommendations) {
-		this.recommendations = recommendations;
-	}
-
-	public Set getRecommendations() {
-		return recommendations;
-	}
-
-	public Recommendation findRecommendation(RequiredCapability toMatch) {
-		for (Iterator iterator = recommendations.iterator(); iterator.hasNext();) {
-			Recommendation name = (Recommendation) iterator.next();
-			if (name.matches(toMatch))
-				return name;
-		}
-		return null;
-	}
-
-	public Recommendation findRecommendation(Recommendation toMatch) {
-		for (Iterator iterator = recommendations.iterator(); iterator.hasNext();) {
-			Recommendation name = (Recommendation) iterator.next();
-			if (name.matches(toMatch))
-				return name;
-		}
-		return null;
-	}
-
-	//Merge the other descriptor into this one. Return an OK Status is the merged succeeded, otherwise return an INFO Status
-	public IStatus merge(RecommendationDescriptor other) {
-		MultiStatus result = null;
-		for (Iterator it = other.recommendations.iterator(); it.hasNext();) {
-			Recommendation otherRecommendation = (Recommendation) it.next();
-			Recommendation matchInThis = findRecommendation(otherRecommendation);
-			if (matchInThis == null) {
-				recommendations.add(otherRecommendation);
-				continue;
-			}
-			Recommendation newRec = otherRecommendation.merge(matchInThis);
-			if (newRec != null) {
-				recommendations.remove(matchInThis);
-				recommendations.add(newRec);
-				continue;
-			} else {
-				if (result == null)
-					result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 0, "Conflict between recommendations", null);
-				result.add(new Status(IStatus.INFO, DirectorActivator.PI_DIRECTOR, "can't merge " + otherRecommendation + " with " + matchInThis));
-			}
-		}
-		if (result == null)
-			return Status.OK_STATUS;
-		return result;
-
-	}
-
-	public static RecommendationDescriptor parse(String descriptor) {
-		StringTokenizer entries = new StringTokenizer(descriptor, "\n");
-		Set recommendations = new HashSet(entries.countTokens());
-		while (entries.hasMoreElements()) {
-			StringTokenizer oneRec = new StringTokenizer((String) entries.nextElement(), "/");
-			if (oneRec.countTokens() != 4) {
-				//format error, ignore and continue
-
-				continue;
-			}
-			String ns = oneRec.nextToken().trim();
-			String name = oneRec.nextToken().trim();
-			String oldRange = oneRec.nextToken().trim();
-			String newRange = oneRec.nextToken().trim();
-			recommendations.add(new Recommendation(MetadataFactory.createRequiredCapability(ns, name, new VersionRange(oldRange), null, false, false), MetadataFactory.createRequiredCapability(ns, name, new VersionRange(newRange), null, false, false)));
-		}
-		return new RecommendationDescriptor(recommendations);
-	}
-
-	public static String serialize(RecommendationDescriptor toSerialize) {
-		StringBuffer result = new StringBuffer();
-		for (Iterator iterator = toSerialize.recommendations.iterator(); iterator.hasNext();) {
-			Recommendation entry = (Recommendation) iterator.next();
-			result.append(entry.applyOn().getNamespace() + '/' + entry.applyOn().getName() + '/' + entry.applyOn().getRange().toString() + '/' + entry.newValue().getRange().toString() + '\n');
-		}
-		return result.toString();
-	}
-
-	public boolean isCompatible(RecommendationDescriptor other) {
-		for (Iterator it = other.recommendations.iterator(); it.hasNext();) {
-			Recommendation otherRecommendation = (Recommendation) it.next();
-			Recommendation matchInThis = findRecommendation(otherRecommendation);
-			if (matchInThis == null) {
-				continue;
-			}
-			if (!otherRecommendation.isCompatible(matchInThis))
-				return false;
-		}
-		return true;
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RequirementBasedFilter.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RequirementBasedFilter.java
deleted file mode 100644
index 348b812..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/RequirementBasedFilter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-
-public class RequirementBasedFilter extends IUFilter {
-	private RequiredCapability[] reqs;
-
-	public RequirementBasedFilter(RequiredCapability[] toFilterOn) {
-		reqs = toFilterOn;
-	}
-
-	public boolean accept(IInstallableUnit iu) {
-		for (int i = 0; i < reqs.length; i++) {
-			if (reqs[i].getNamespace().equals(IInstallableUnit.NAMESPACE_IU_ID) && reqs[i].getName().equals(iu.getId()) && reqs[i].getRange().isIncluded(iu.getVersion()))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimpleDirector.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimpleDirector.java
deleted file mode 100644
index 7a34892..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimpleDirector.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.rollback.FormerState;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class SimpleDirector implements IDirector {
-	private static final String ROLLBACK_LOCATION = "rollback"; //$NON-NLS-1$
-	static final int PlanWork = 10;
-	static final int EngineWork = 100;
-	private IEngine engine;
-	private IPlanner planner;
-
-	public SimpleDirector() {
-		initializeRollbackRepository();
-		engine = (IEngine) ServiceHelper.getService(DirectorActivator.context, IEngine.SERVICE_NAME);
-		if (engine == null)
-			throw new IllegalStateException("Provisioning engine is not registered"); //$NON-NLS-1$
-		planner = (IPlanner) ServiceHelper.getService(DirectorActivator.context, IPlanner.class.getName());
-		if (planner == null)
-			throw new IllegalStateException("Unable to find provisioning planner"); //$NON-NLS-1$
-	}
-
-	private void initializeRollbackRepository() {
-		new FormerState(getRollbackRepositoryLocation());
-	}
-
-	public URL getRollbackRepositoryLocation() {
-		AgentLocation agentLocation = (AgentLocation) ServiceHelper.getService(DirectorActivator.context, AgentLocation.class.getName());
-		try {
-			return new URL(agentLocation.getDataArea(DirectorActivator.PI_DIRECTOR), ROLLBACK_LOCATION);
-		} catch (MalformedURLException e) {
-			//we know this can't happen because the above URL is well-formed
-			return null;
-		}
-	}
-
-	public IStatus revert(IInstallableUnit target, IProfile profile, ProvisioningContext context, IProgressMonitor monitor) {
-		SubMonitor sub = SubMonitor.convert(monitor, Messages.Director_Task_Updating, PlanWork + EngineWork);
-		try {
-			ProvisioningPlan plan = planner.getRevertPlan(target, context, sub.newChild(PlanWork));
-			if (!plan.getStatus().isOK())
-				return plan.getStatus();
-			return engine.perform(profile, new DefaultPhaseSet(), plan.getOperands(), context, sub.newChild(EngineWork));
-		} finally {
-			sub.done();
-		}
-	}
-
-	public IStatus provision(ProfileChangeRequest request, ProvisioningContext context, IProgressMonitor monitor) {
-		String taskName = NLS.bind(Messages.Director_Task_Installing, request.getProfile().getProperty(IProfile.PROP_INSTALL_FOLDER));
-		SubMonitor sub = SubMonitor.convert(monitor, taskName, PlanWork + EngineWork);
-		try {
-			IInstallableUnit[] installRoots = request.getAddedInstallableUnits();
-			// mark the roots as such
-			for (int i = 0; i < installRoots.length; i++) {
-				request.setInstallableUnitProfileProperty(installRoots[i], IInstallableUnit.PROP_PROFILE_ROOT_IU, Boolean.toString(true));
-			}
-			ProvisioningPlan plan = planner.getProvisioningPlan(request, context, sub.newChild(PlanWork));
-			if (!plan.getStatus().isOK())
-				return plan.getStatus();
-
-			IStatus engineResult = engine.perform(request.getProfile(), new DefaultPhaseSet(), plan.getOperands(), context, sub.newChild(EngineWork));
-			return engineResult;
-		} finally {
-			sub.done();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java
deleted file mode 100644
index d0cd621..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/SimplePlanner.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.internal.p2.rollback.FormerState;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.UpdateQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.IQueryable;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-
-public class SimplePlanner implements IPlanner {
-	private static final int ExpandWork = 12;
-	private static final String PLANNER_MARKER = "private.org.eclipse.equinox.p2.planner.installed"; //$NON-NLS-1$
-
-	private IInstallableUnit[] getInstallableUnits(IProfile profile) {
-		return (IInstallableUnit[]) profile.query(InstallableUnitQuery.ANY, new Collector(), null).toArray(IInstallableUnit.class);
-	}
-
-	private IProfile getProfile(String profileId) {
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(DirectorActivator.context, IProfileRegistry.class.getName());
-		if (profileRegistry == null)
-			return null;
-		return profileRegistry.getProfile(profileId);
-	}
-
-	private ProvisioningPlan generateProvisioningPlan(IStatus status, Collection fromState, Collection toState, List fromStateOrder, List newStateOrder, ProfileChangeRequest changeRequest) {
-		InstallableUnitOperand[] iuOperands = generateOperations(fromState, toState, fromStateOrder, newStateOrder);
-		PropertyOperand[] propertyOperands = generatePropertyOperations(changeRequest);
-
-		Operand[] operands = new Operand[iuOperands.length + propertyOperands.length];
-		System.arraycopy(iuOperands, 0, operands, 0, iuOperands.length);
-		System.arraycopy(propertyOperands, 0, operands, iuOperands.length, propertyOperands.length);
-
-		if (status == null)
-			status = Status.OK_STATUS;
-		return new ProvisioningPlan(status, operands);
-	}
-
-	private PropertyOperand[] generatePropertyOperations(ProfileChangeRequest profileChangeRequest) {
-		IProfile profile = profileChangeRequest.getProfile();
-		List operands = new ArrayList();
-		// First deal with profile properties to remove.  Only generate an operand if the property was there in the first place
-		String[] toRemove = profileChangeRequest.getPropertiesToRemove();
-		Map existingProperties = profile.getProperties();
-		for (int i = 0; i < toRemove.length; i++) {
-			if (existingProperties.containsKey(toRemove[i]))
-				operands.add(new PropertyOperand(toRemove[i], existingProperties.get(toRemove[i]), null));
-		}
-		// Now deal with profile property changes/additions
-		Map propertyChanges = profileChangeRequest.getPropertiesToAdd();
-		Iterator iter = propertyChanges.keySet().iterator();
-		while (iter.hasNext()) {
-			String key = (String) iter.next();
-			operands.add(new PropertyOperand(key, existingProperties.get(key), propertyChanges.get(key)));
-		}
-		// Now deal with iu property changes/additions.  
-		// TODO we aren't yet checking that the IU will exist in the final profile, will the engine do this?
-		Map allIUPropertyChanges = profileChangeRequest.getInstallableUnitProfilePropertiesToAdd();
-		iter = allIUPropertyChanges.keySet().iterator();
-		while (iter.hasNext()) {
-			IInstallableUnit iu = (IInstallableUnit) iter.next();
-			Map iuPropertyChanges = (Map) allIUPropertyChanges.get(iu);
-			Iterator iuPropIter = iuPropertyChanges.keySet().iterator();
-			while (iuPropIter.hasNext()) {
-				String key = (String) iuPropIter.next();
-				Object oldValue = profile.getInstallableUnitProperty(iu, key);
-				operands.add(new InstallableUnitPropertyOperand(iu, key, oldValue, iuPropertyChanges.get(key)));
-			}
-		}
-		// Now deal with iu property removals.
-		// TODO we could optimize by not generating property removals for IU's that aren't there or won't be there.  
-		Map allIUPropertyDeletions = profileChangeRequest.getInstallableUnitProfilePropertiesToRemove();
-		iter = allIUPropertyDeletions.keySet().iterator();
-		while (iter.hasNext()) {
-			IInstallableUnit iu = (IInstallableUnit) iter.next();
-			Map existingIUProperties = profile.getInstallableUnitProperties(iu);
-			List iuPropertyRemovals = (List) allIUPropertyDeletions.get(iu);
-			for (Iterator it = iuPropertyRemovals.iterator(); it.hasNext();) {
-				String key = (String) it.next();
-				if (existingIUProperties.containsKey(key))
-					operands.add(new InstallableUnitPropertyOperand(iu, key, existingIUProperties.get(key), null));
-			}
-
-		}
-		return (PropertyOperand[]) operands.toArray(new PropertyOperand[operands.size()]);
-	}
-
-	private InstallableUnitOperand[] generateOperations(Collection fromState, Collection toState, List fromStateOrder, List newStateOrder) {
-		return sortOperations(new OperationGenerator().generateOperation(fromState, toState), newStateOrder, fromStateOrder);
-	}
-
-	private InstallableUnitOperand[] sortOperations(InstallableUnitOperand[] toSort, List installOrder, List uninstallOrder) {
-		List updateOp = new ArrayList();
-		for (int i = 0; i < toSort.length; i++) {
-			InstallableUnitOperand op = toSort[i];
-			if (op.first() == null && op.second() != null) {
-				installOrder.set(installOrder.indexOf(op.second()), op);
-				continue;
-			}
-			if (op.first() != null && op.second() == null) {
-				uninstallOrder.set(uninstallOrder.indexOf(op.first()), op);
-				continue;
-			}
-			if (op.first() != null && op.second() != null) {
-				updateOp.add(op);
-				continue;
-			}
-		}
-		int i = 0;
-		for (Iterator iterator = installOrder.iterator(); iterator.hasNext();) {
-			Object elt = iterator.next();
-			if (elt instanceof InstallableUnitOperand) {
-				toSort[i++] = (InstallableUnitOperand) elt;
-			}
-		}
-		for (Iterator iterator = uninstallOrder.iterator(); iterator.hasNext();) {
-			Object elt = iterator.next();
-			if (elt instanceof InstallableUnitOperand) {
-				toSort[i++] = (InstallableUnitOperand) elt;
-			}
-		}
-		for (Iterator iterator = updateOp.iterator(); iterator.hasNext();) {
-			Object elt = iterator.next();
-			if (elt instanceof InstallableUnitOperand) {
-				toSort[i++] = (InstallableUnitOperand) elt;
-			}
-		}
-		return toSort;
-	}
-
-	public ProvisioningPlan getRevertPlan(IInstallableUnit profileSnapshot, ProvisioningContext context, IProgressMonitor monitor) {
-		SubMonitor sub = SubMonitor.convert(monitor, ExpandWork);
-		sub.setTaskName(Messages.Director_Task_Resolving_Dependencies);
-		try {
-			MultiStatus result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 1, Messages.Director_Revert_Problems, null);
-
-			if (!Boolean.valueOf(profileSnapshot.getProperty(IInstallableUnit.PROP_TYPE_PROFILE)).booleanValue()) {
-				result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Director_Unexpected_IU, profileSnapshot.getId())));
-				return new ProvisioningPlan(result);
-			}
-			IProfile profile = getProfile(profileSnapshot.getId());
-			if (profile == null) {
-				result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Director_Unexpected_IU, profileSnapshot.getId())));
-				return new ProvisioningPlan(result);
-			}
-
-			//TODO if the profile changes (locations are being modified, etc), should not we do a full uninstall then an install?
-			//Maybe it depends on the kind of changes in a profile
-			//We need to get all the ius that were part of the profile and give that to be what to become
-
-			Dictionary snapshotSelectionContext = createSelectionContext(getSnapshotProperties(profileSnapshot));
-			IInstallableUnit[] availableIUs = gatherAvailableInstallableUnits(new IInstallableUnit[] {profileSnapshot}, context.getMetadataRepositories(), context, sub.newChild(ExpandWork / 2));
-			NewDependencyExpander toExpander = new NewDependencyExpander(new IInstallableUnit[] {profileSnapshot}, null, availableIUs, snapshotSelectionContext, true);
-			toExpander.expand(sub.newChild(ExpandWork / 2));
-			ResolutionHelper newStateHelper = new ResolutionHelper(snapshotSelectionContext, toExpander.getRecommendations());
-			Collection newState = newStateHelper.attachCUs(toExpander.getAllInstallableUnits());
-			newState.remove(profileSnapshot);
-
-			Collection oldIUs = new HashSet();
-			for (Iterator it = profile.query(InstallableUnitQuery.ANY, new Collector(), null).iterator(); it.hasNext();) {
-				oldIUs.add(it.next());
-			}
-
-			Dictionary oldSelectionContext = createSelectionContext(profile.getProperties());
-			ResolutionHelper oldStateHelper = new ResolutionHelper(oldSelectionContext, null);
-			Collection oldState = oldStateHelper.attachCUs(oldIUs);
-			ProfileChangeRequest profileChangeRequest = generateChangeRequest(profile, profileSnapshot, newState);
-			return generateProvisioningPlan(null, oldState, newState, oldStateHelper.getSorted(), newStateHelper.getSorted(), profileChangeRequest);
-		} finally {
-			sub.done();
-		}
-	}
-
-	private Dictionary createSelectionContext(Map properties) {
-		Hashtable result = new Hashtable(properties);
-		String environments = (String) properties.get(IProfile.PROP_ENVIRONMENTS);
-		if (environments == null)
-			return result;
-		for (StringTokenizer tokenizer = new StringTokenizer(environments, ","); tokenizer.hasMoreElements();) { //$NON-NLS-1$
-			String entry = tokenizer.nextToken();
-			int i = entry.indexOf('=');
-			String key = entry.substring(0, i).trim();
-			String value = entry.substring(i + 1).trim();
-			result.put(key, value);
-		}
-		return result;
-	}
-
-	private Map getSnapshotProperties(IInstallableUnit profileSnapshot) {
-		Map result = new HashMap();
-		for (Iterator it = profileSnapshot.getProperties().entrySet().iterator(); it.hasNext();) {
-			Entry entry = (Entry) it.next();
-			String key = (String) entry.getKey();
-			if (IInstallableUnit.PROP_TYPE_PROFILE.equals(key) || key.startsWith(FormerState.IUPROP_PREFIX))
-				continue;
-
-			result.put(key, entry.getValue());
-		}
-		return result;
-	}
-
-	// TODO note that this only describes property changes, not the IU changes.
-	private ProfileChangeRequest generateChangeRequest(IProfile profile, IInstallableUnit iuDescribingNewState, Collection newIUs) {
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		Map profileProperties = iuDescribingNewState.getProperties();
-		for (Iterator iter = profileProperties.keySet().iterator(); iter.hasNext();) {
-			String key = (String) iter.next();
-			// ignore the property that confirms this IU is a profile snapshot
-			if (IInstallableUnit.PROP_TYPE_PROFILE.equals(key))
-				continue;
-			if (key.startsWith(FormerState.IUPROP_PREFIX)) {
-				int postID = key.indexOf(FormerState.IUPROP_POSTFIX, FormerState.IUPROP_PREFIX.length());
-				String id = key.substring(FormerState.IUPROP_PREFIX.length(), postID);
-				for (Iterator iuIter = newIUs.iterator(); iuIter.hasNext();) {
-					IInstallableUnit iu = (IInstallableUnit) iuIter.next();
-					if (id.equals(iu.getId())) {
-						String iuPropKey = key.substring(postID + FormerState.IUPROP_POSTFIX.length());
-						request.setInstallableUnitProfileProperty(iu, iuPropKey, profileProperties.get(key));
-						continue;
-					}
-				}
-			} else {
-				request.setProfileProperty(key, profileProperties.get(key));
-			}
-		}
-		// Now process removals, but don't include those that simply changed or were otherwise reset above.
-		for (Iterator iter = profile.getProperties().keySet().iterator(); iter.hasNext();) {
-			String key = (String) iter.next();
-			if (!request.getPropertiesToAdd().containsKey(key))
-				request.removeProfileProperty(key);
-		}
-		IInstallableUnit[] ius = getInstallableUnits(profile);
-		for (int i = 0; i < ius.length; i++) {
-			// Get the properties we added so those can be excluded
-			Iterator iuIter = request.getInstallableUnitProfilePropertiesToAdd().keySet().iterator();
-			HashMap addedProperties = new HashMap();
-			while (iuIter.hasNext()) {
-				IInstallableUnit iu = (IInstallableUnit) iuIter.next();
-				if (iu.getId().equals(ius[i].getId())) {
-					addedProperties = (HashMap) request.getInstallableUnitProfilePropertiesToAdd().get(iu);
-					continue;
-				}
-			}
-
-			for (Iterator iter = profile.getInstallableUnitProperties(ius[i]).keySet().iterator(); iter.hasNext();) {
-				String key = (String) iter.next();
-				if (!addedProperties.containsKey(key))
-					request.removeInstallableUnitProfileProperty(ius[i], key);
-			}
-		}
-
-		return request;
-	}
-
-	protected IInstallableUnit[] gatherAvailableInstallableUnits(IInstallableUnit[] additionalSource, URL[] repositories, ProvisioningContext context, IProgressMonitor monitor) {
-		Map resultsMap = new HashMap();
-		if (additionalSource != null) {
-			for (int i = 0; i < additionalSource.length; i++) {
-				String key = additionalSource[i].getId() + "_" + additionalSource[i].getVersion().toString(); //$NON-NLS-1$
-				resultsMap.put(key, additionalSource[i]);
-			}
-		}
-		if (context != null) {
-			for (Iterator iter = context.getExtraIUs().iterator(); iter.hasNext();) {
-				IInstallableUnit iu = (IInstallableUnit) iter.next();
-				String key = iu.getId() + '_' + iu.getVersion().toString();
-				resultsMap.put(key, iu);
-			}
-		}
-
-		IMetadataRepositoryManager repoMgr = (IMetadataRepositoryManager) ServiceHelper.getService(DirectorActivator.context, IMetadataRepositoryManager.class.getName());
-		if (repositories == null)
-			repositories = repoMgr.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL);
-
-		SubMonitor sub = SubMonitor.convert(monitor, repositories.length * 200);
-		for (int i = 0; i < repositories.length; i++) {
-			try {
-				IMetadataRepository repository = repoMgr.loadRepository(repositories[i], sub.newChild(100));
-				Collector matches = repository.query(new InstallableUnitQuery(null, VersionRange.emptyRange), new Collector(), sub.newChild(100));
-				for (Iterator it = matches.iterator(); it.hasNext();) {
-					IInstallableUnit iu = (IInstallableUnit) it.next();
-					String key = iu.getId() + "_" + iu.getVersion().toString(); //$NON-NLS-1$
-					IInstallableUnit currentIU = (IInstallableUnit) resultsMap.get(key);
-					if (currentIU == null || hasHigherFidelity(iu, currentIU))
-						resultsMap.put(key, iu);
-				}
-			} catch (ProvisionException e) {
-				//skip unreadable repositories
-			}
-		}
-		sub.done();
-		Collection results = resultsMap.values();
-		return (IInstallableUnit[]) results.toArray(new IInstallableUnit[results.size()]);
-	}
-
-	private boolean hasHigherFidelity(IInstallableUnit iu, IInstallableUnit currentIU) {
-		if (Boolean.valueOf(currentIU.getProperty(IInstallableUnit.PROP_PARTIAL_IU)).booleanValue() && !Boolean.valueOf(iu.getProperty(IInstallableUnit.PROP_PARTIAL_IU)).booleanValue())
-			return true;
-		return false;
-	}
-
-	public ProvisioningPlan getProvisioningPlan(ProfileChangeRequest profileChangeRequest, ProvisioningContext context, IProgressMonitor monitor) {
-		SubMonitor sub = SubMonitor.convert(monitor, ExpandWork);
-		sub.setTaskName(Messages.Director_Task_Resolving_Dependencies);
-		try {
-			IProfile profile = profileChangeRequest.getProfile();
-
-			IInstallableUnit[] allIUs = updatePlannerInfo(profileChangeRequest);
-
-			URL[] metadataRepositories = (context != null) ? context.getMetadataRepositories() : null;
-			Dictionary newSelectionContext = createSelectionContext(profileChangeRequest.getProfileProperties());
-
-			List extraIUs = new ArrayList(Arrays.asList(profileChangeRequest.getAddedInstallableUnits()));
-			extraIUs.addAll(Arrays.asList(profileChangeRequest.getRemovedInstallableUnits()));
-			extraIUs.addAll(profileChangeRequest.getProfile().query(InstallableUnitQuery.ANY, new Collector(), null).toCollection());
-
-			IInstallableUnit[] availableIUs = gatherAvailableInstallableUnits((IInstallableUnit[]) extraIUs.toArray(new IInstallableUnit[extraIUs.size()]), metadataRepositories, context, sub.newChild(ExpandWork / 4));
-
-			Slicer slicer = new Slicer(allIUs, availableIUs, newSelectionContext);
-			IQueryable slice = slicer.slice(allIUs, monitor);
-			if (slice == null)
-				return new ProvisioningPlan(slicer.getStatus());
-			Projector projector = new Projector(slice, newSelectionContext);
-			projector.encode(allIUs, sub.newChild(ExpandWork / 4));
-			IStatus s = projector.invokeSolver(sub.newChild(ExpandWork / 4));
-
-			if (s.getSeverity() == IStatus.ERROR) {
-				//log the error from the new solver so it is not lost
-				LogHelper.log(s);
-				if (!"true".equalsIgnoreCase(context == null ? null : context.getProperty("org.eclipse.equinox.p2.disable.error.reporting"))) {
-					//We invoke the old resolver to get explanations for now
-					IStatus oldResolverStatus = new NewDependencyExpander(allIUs, null, availableIUs, newSelectionContext, false).expand(sub.newChild(ExpandWork / 4));
-					if (!oldResolverStatus.isOK())
-						s = oldResolverStatus;
-				}
-				return new ProvisioningPlan(s);
-			}
-			Collection newState = projector.extractSolution();
-
-			ResolutionHelper newStateHelper = new ResolutionHelper(newSelectionContext, null);
-			newState = newStateHelper.attachCUs(newState);
-
-			ResolutionHelper oldStateHelper = new ResolutionHelper(createSelectionContext(profile.getProperties()), null);
-			Collection oldState = oldStateHelper.attachCUs(profile.query(InstallableUnitQuery.ANY, new Collector(), null).toCollection());
-
-			return generateProvisioningPlan(s, oldState, newState, oldStateHelper.getSorted(), newStateHelper.getSorted(), profileChangeRequest);
-		} finally {
-			sub.done();
-		}
-	}
-
-	//The planner uses installable unit properties to keep track of what it has been asked to install. This updates this information
-	private IInstallableUnit[] updatePlannerInfo(ProfileChangeRequest profileChangeRequest) {
-		Collector alreadyInstalled = profileChangeRequest.getProfile().query(new IUProfilePropertyQuery(profileChangeRequest.getProfile(), PLANNER_MARKER, Boolean.toString(true)), new Collector(), null);
-
-		IInstallableUnit[] added = profileChangeRequest.getAddedInstallableUnits();
-		IInstallableUnit[] removed = profileChangeRequest.getRemovedInstallableUnits();
-		IInstallableUnit[] allIUs = new IInstallableUnit[alreadyInstalled.size() + added.length + removed.length];
-
-		int count = 0;
-		for (Iterator iterator = alreadyInstalled.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			boolean found = false;
-			for (int i = 0; i < removed.length; i++) {
-				if (iu.equals(removed[i])) {
-					profileChangeRequest.removeInstallableUnitProfileProperty(removed[i], PLANNER_MARKER);
-					found = true;
-					break;
-				}
-			}
-			if (!found)
-				allIUs[count++] = iu;
-		}
-		for (int i = 0; i < added.length; i++) {
-			allIUs[count++] = added[i];
-			profileChangeRequest.setInstallableUnitProfileProperty(added[i], PLANNER_MARKER, "true"); //$NON-NLS-1$
-		}
-		if (allIUs.length > count) {
-			IInstallableUnit[] result = new IInstallableUnit[count];
-			System.arraycopy(allIUs, 0, result, 0, count);
-			allIUs = result;
-		}
-		return allIUs;
-	}
-
-	public IInstallableUnit[] updatesFor(IInstallableUnit toUpdate, ProvisioningContext context, IProgressMonitor monitor) {
-		Map resultsMap = new HashMap();
-
-		IMetadataRepositoryManager repoMgr = (IMetadataRepositoryManager) ServiceHelper.getService(DirectorActivator.context, IMetadataRepositoryManager.class.getName());
-		URL[] repositories = context.getMetadataRepositories();
-		if (repositories == null)
-			repositories = repoMgr.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL);
-
-		SubMonitor sub = SubMonitor.convert(monitor, repositories.length * 200);
-		for (int i = 0; i < repositories.length; i++) {
-			try {
-				IMetadataRepository repository = repoMgr.loadRepository(repositories[i], sub.newChild(100));
-				Collector matches = repository.query(new UpdateQuery(toUpdate), new Collector(), sub.newChild(100));
-				for (Iterator it = matches.iterator(); it.hasNext();) {
-					IInstallableUnit iu = (IInstallableUnit) it.next();
-					String key = iu.getId() + "_" + iu.getVersion().toString(); //$NON-NLS-1$
-					IInstallableUnit currentIU = (IInstallableUnit) resultsMap.get(key);
-					if (currentIU == null || hasHigherFidelity(iu, currentIU))
-						resultsMap.put(key, iu);
-				}
-			} catch (ProvisionException e) {
-				//skip unreadable repositories
-			}
-		}
-		sub.done();
-		Collection results = resultsMap.values();
-		return (IInstallableUnit[]) results.toArray(new IInstallableUnit[results.size()]);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Slicer.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Slicer.java
deleted file mode 100644
index 59310c0..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Slicer.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.CapabilityQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.IQueryable;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.InvalidSyntaxException;
-
-public class Slicer {
-	private static boolean DEBUG = false;
-	private IQueryable possibilites;
-
-	private LinkedList toProcess;
-	private Set considered; //IUs to add to the slice
-	private TwoTierMap slice; //The IUs that have been considered to be part of the problem
-
-	private Dictionary selectionContext;
-	private MultiStatus result;
-
-	public Slicer(IQueryable input, Dictionary context) {
-		possibilites = input;
-		slice = new TwoTierMap();
-		selectionContext = context;
-		result = new MultiStatus(DirectorActivator.PI_DIRECTOR, IStatus.OK, Messages.Planner_Problems_resolving_plan, null);
-	}
-
-	public Slicer(IInstallableUnit[] installRoots, IInstallableUnit[] gatherAvailableInstallableUnits, Dictionary selectionContext) {
-		this(new QueryableArray(gatherAvailableInstallableUnits), selectionContext);
-	}
-
-	public IQueryable slice(IInstallableUnit[] ius, IProgressMonitor monitor) {
-		try {
-			long start = 0;
-			if (DEBUG) {
-				start = System.currentTimeMillis();
-				System.out.println("Start slicing: " + start); //$NON-NLS-1$
-			}
-
-			validateInput(ius);
-			considered = new HashSet(Arrays.asList(ius));
-			toProcess = new LinkedList(considered);
-			while (!toProcess.isEmpty())
-				processIU((IInstallableUnit) toProcess.removeFirst());
-
-			if (DEBUG) {
-				long stop = System.currentTimeMillis();
-				System.out.println("Slicing complete: " + (stop - start)); //$NON-NLS-1$
-			}
-		} catch (IllegalStateException e) {
-			result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, e.getMessage(), e));
-		}
-		if (!result.isOK())
-			LogHelper.log(result);
-		if (result.getSeverity() == IStatus.ERROR)
-			return null;
-		return new QueryableArray((IInstallableUnit[]) considered.toArray(new IInstallableUnit[considered.size()]));
-	}
-
-	public MultiStatus getStatus() {
-		return result;
-	}
-
-	//This is a shortcut to simplify the error reporting when the filter of the ius we are being asked to install does not pass 
-	private void validateInput(IInstallableUnit[] ius) {
-		//TODO Need to see what is done in validateInput of PBProjector
-		for (int i = 0; i < ius.length; i++) {
-			if (!isApplicable(ius[i]))
-				throw new IllegalStateException("The IU " + ius[i] + " can't be installed in this environment because its filter does not match."); //$NON-NLS-1$//$NON-NLS-2$
-		}
-	}
-
-	// Check whether the requirement is applicable
-	private boolean isApplicable(RequiredCapability req) {
-		String filter = req.getFilter();
-		if (filter == null)
-			return true;
-		try {
-			return DirectorActivator.context.createFilter(filter).match(selectionContext);
-		} catch (InvalidSyntaxException e) {
-			return false;
-		}
-	}
-
-	private boolean isApplicable(IInstallableUnit iu) {
-		String enablementFilter = iu.getFilter();
-		if (enablementFilter == null)
-			return true;
-		try {
-			return DirectorActivator.context.createFilter(enablementFilter).match(selectionContext);
-		} catch (InvalidSyntaxException e) {
-			return false;
-		}
-	}
-
-	private void processIU(IInstallableUnit iu) {
-		slice.put(iu.getId(), iu.getVersion(), iu);
-		if (!isApplicable(iu)) {
-			return;
-		}
-
-		RequiredCapability[] reqs = iu.getRequiredCapabilities();
-		if (reqs.length == 0) {
-			return;
-		}
-		for (int i = 0; i < reqs.length; i++) {
-			if (!isApplicable(reqs[i]))
-				continue;
-
-			if (!reqs[i].isGreedy()) {
-				continue;
-			}
-
-			expandRequirement(iu, reqs[i]);
-		}
-	}
-
-	private void expandRequirement(IInstallableUnit iu, RequiredCapability req) {
-		Collector matches = possibilites.query(new CapabilityQuery(req), new Collector(), null);
-		int validMatches = 0;
-		for (Iterator iterator = matches.iterator(); iterator.hasNext();) {
-			IInstallableUnit match = (IInstallableUnit) iterator.next();
-			if (!isApplicable(match))
-				continue;
-			validMatches++;
-			if (!slice.containsKey(match.getId(), match.getVersion()))
-				consider(match);
-		}
-
-		if (validMatches == 0) {
-			if (req.isOptional()) {
-				if (DEBUG)
-					System.out.println("No IU found to satisfy optional dependency of " + iu + " on req " + req); //$NON-NLS-1$//$NON-NLS-2$
-			} else {
-				result.add(new Status(IStatus.WARNING, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Planner_Unsatisfied_dependency, iu, req)));
-			}
-		}
-	}
-
-	private void consider(IInstallableUnit match) {
-		if (considered.add(match))
-			toProcess.addLast(match);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/TwoTierMap.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/TwoTierMap.java
deleted file mode 100644
index bd0799e..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/TwoTierMap.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.director;
-
-import java.io.PrintStream;
-import java.io.Serializable;
-import java.util.*;
-
-/**
- * The purpose of this class is to provide a two-tier map.
- * MapOf(key1 => MapOf(key2 => value)).
- * Even though this class implements Map the behavior of
- * the methods aren't exactly the same as that of a real
- * Map - especially, entrySet(), keySet() etc. works off
- * the outer map while values() returns all the values of
- * all the inner maps.
- */
-public class TwoTierMap implements Map, Serializable {
-
-	private static final long serialVersionUID = 362497720873186265L;
-
-	private Map outerMap;
-	private int policy;
-
-	public static final int POLICY_NONE = 0, POLICY_BOTH_MAPS_PRESERVE_ORDERING = 1 << 0, POLICY_INNER_MAP_PRESERVE_EXISTING = 1 << 1, POLICY_INNER_MAP_SORTED_ASCENDING = 1 << 2, POLICY_INNER_MAP_SORTED_DESCENDING = 1 << 3, POLICY_INNER_MAP_ENSURE_SINGLETON = 1 << 4;
-
-	private static final int POLICY_INNER_MAP_SORTED_MASK = POLICY_INNER_MAP_SORTED_ASCENDING | POLICY_INNER_MAP_SORTED_DESCENDING;
-
-	public TwoTierMap() {
-		this(8, POLICY_NONE);
-	}
-
-	public TwoTierMap(int initialCapacity) {
-		this(initialCapacity, POLICY_NONE);
-	}
-
-	/**
-	 * Creates a two-tier map with the specified
-	 * initialCapacity and policy. The policy determines
-	 * whether the outer map is ordered, inner map is
-	 * sorted, clobber values of inner map etc.
-	 */
-	public TwoTierMap(int initialCapacity, int policy) {
-		this.policy = policy;
-		this.outerMap = shouldUseOrderedMap() ? new LinkedHashMap(initialCapacity) : new HashMap(initialCapacity);
-	}
-
-	/**
-	 * Insert the value with key key1 into the inner map 
-	 * that is obtained from the outer map with key key2.
-	 * If you have set POLICY_INNER_MAP_PRESERVE_EXISTING
-	 * at the time of creating this, it will not overwrite
-	 * if there is already a non-null value at key2. 
-	 * The other POLICY_INNER_MAP_* policies determine 
-	 * what kind of inner map is created.
-	 * @param key1 The key for outer map.
-	 * @param key2 The key for inner map.
-	 * @param value The value.
-	 * @return Existing value if any, otherwise null.
-	 */
-	public Object put(Object key1, Object key2, Object value) {
-		Map innerMap = (Map) this.outerMap.get(key1);
-		if (innerMap == null) {
-			if (shouldUseSingletonInnerMap()) {
-				this.outerMap.put(key1, Collections.singletonMap(key2, value));
-				return null;
-			}
-			innerMap = createInnerMap();
-			this.outerMap.put(key1, innerMap);
-		}
-		// It is faster to check for already existing entry 
-		// this way instead of containsKey() check. Of course,
-		// this will prevent us from recognizing a null entry, 
-		// which I think shouldn't be a problem.
-		Object existing = innerMap.put(key2, value);
-		if (existing != null && shouldPreserveExisting()) {
-			innerMap.put(key2, existing);
-		}
-		return existing;
-	}
-
-	/**
-	 * Get the object stored in the inner map using key2
-	 * as key where the inner map is obtained from the 
-	 * outer map using key1.
-	 * @param key1 The key for outer map.
-	 * @param key2 The key for inner map.
-	 * @return The object for key2 in inner map for key1 
-	 * in the outer map. 
-	 */
-	public Object get(Object key1, Object key2) {
-		if (key1 == null || key2 == null)
-			return getAll(key1);
-		Map innerMap = (Map) this.outerMap.get(key1);
-		Object value = innerMap == null ? null : innerMap.get(key2);
-		return value;
-	}
-
-	/**
-	 * Get all the values in the inner map for key1 in
-	 * the outer map.
-	 * @param key1 The key for outer map.
-	 * @return Collection of values in the inner map.
-	 */
-	public Collection getAll(Object key1) {
-		if (key1 == null)
-			// return all
-			return values();
-		Map innerMap = (Map) this.outerMap.get(key1);
-		return innerMap == null ? Collections.EMPTY_LIST : Collections.unmodifiableCollection(innerMap.values());
-
-	}
-
-	public Object remove(Object key1, Object key2) {
-		if (key1 == null || key2 == null)
-			return removeAll(key1);
-		Map innerMap = (Map) this.outerMap.get(key1);
-		if (innerMap == null)
-			return null;
-		if (shouldUseSingletonInnerMap()) {
-			Object result = innerMap.get(key2);
-			if (result != null) {
-				this.outerMap.remove(key1);
-			}
-			return result;
-		}
-		Object result = (innerMap == null) ? null : innerMap.remove(key2);
-		if (result != null && innerMap.isEmpty()) {
-			this.outerMap.remove(key1);
-		}
-		return result;
-	}
-
-	public Collection removeAll(Object key1) {
-		if (key1 == null)
-			return Collections.EMPTY_LIST;
-		Map innerMap = (Map) this.outerMap.remove(key1);
-		return innerMap == null ? Collections.EMPTY_LIST : innerMap.values();
-	}
-
-	/**
-	 * Determine whether there exists a valid object for
-	 * key2 in the inner map for key1 in the outer map.
-	 * @param key1 The key for outer map.
-	 * @param key2 The key for inner map.
-	 * @return true if a non-null object exists; otherwise
-	 * false.
-	 */
-	public boolean containsKey(Object key1, Object key2) {
-		if (key1 == null)
-			return false;
-		if (key2 == null)
-			return containsKey(key1);
-		return get(key1, key2) != null;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#clear()
-	 */
-	public void clear() {
-		this.outerMap.clear();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#containsKey(java.lang.Object)
-	 */
-	public boolean containsKey(Object key) {
-		return this.outerMap.containsKey(key);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#containsValue(java.lang.Object)
-	 */
-	public boolean containsValue(Object value) {
-		for (Iterator it = entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Map.Entry) it.next();
-			Map innerMap = (Map) entry.getValue();
-			if (innerMap.containsValue(value))
-				return true;
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#size()
-	 */
-	public int size() {
-		return this.outerMap.size();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#isEmpty()
-	 */
-	public boolean isEmpty() {
-		return this.size() == 0;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#entrySet()
-	 */
-	public Set entrySet() {
-		return Collections.unmodifiableSet(this.outerMap.entrySet());
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#values()
-	 */
-	public Collection values() {
-		ArrayList result = new ArrayList(size());
-		for (Iterator it = this.outerMap.keySet().iterator(); it.hasNext();) {
-			Object key = it.next();
-			// A null key will cause infinite recursion!
-			if (key != null) {
-				result.addAll(getAll(key));
-			}
-		}
-		return result;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#get(java.lang.Object)
-	 */
-	public Object get(Object key) {
-		if (key instanceof Object[]) {
-			Object[] keys = (Object[]) key;
-			return get(keys[0], keys[1]);
-		} else
-			return getAll(key);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#keySet()
-	 */
-	public Set keySet() {
-		return Collections.unmodifiableSet(this.outerMap.keySet());
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#put(java.lang.Object, java.lang.Object)
-	 */
-	public Object put(Object key, Object value) {
-		if (key instanceof Object[]) {
-			Object[] keys = (Object[]) key;
-			return put(keys[0], keys[1], value);
-		}
-		throw new IllegalArgumentException("First arg should be an array!"); //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#putAll(java.util.Map)
-	 */
-	public void putAll(Map t) {
-		throw new UnsupportedOperationException();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.util.Map#remove(java.lang.Object)
-	 */
-	public Object remove(Object key) {
-		if (key instanceof Object[]) {
-			Object[] keys = (Object[]) key;
-			return remove(keys[0], keys[1]);
-		} else
-			return removeAll(key);
-	}
-
-	public String toString() {
-		StringBuffer sb = new StringBuffer();
-		if (this.outerMap.isEmpty()) {
-			sb.append("  (Empty)"); //$NON-NLS-1$
-		} else {
-			for (Iterator it = this.outerMap.entrySet().iterator(); it.hasNext();) {
-				Map.Entry entry = (Map.Entry) it.next();
-				sb.append("  ").append(entry.getKey()) //$NON-NLS-1$
-						.append(" = ") //$NON-NLS-1$
-						.append(entry.getValue()).append('\n');
-			}
-			sb.setLength(sb.length() - 1);
-		}
-		return sb.toString();
-	}
-
-	public void dump(PrintStream ps) {
-		if (ps == null) {
-			ps = System.out;
-		}
-		ps.println(this.toString());
-	}
-
-	private Map createInnerMap() {
-		Map innerMap;
-		if (shouldUseSortedInnerMap()) {
-			innerMap = new TreeMap(new ValueComparator(shouldSortInAscendingOrder()));
-		} else if (shouldUseOrderedMap()) {
-			innerMap = new LinkedHashMap(2);
-		} else {
-			innerMap = new HashMap(2);
-		}
-		return innerMap;
-	}
-
-	private boolean shouldPreserveExisting() {
-		return (this.policy & POLICY_INNER_MAP_PRESERVE_EXISTING) == POLICY_INNER_MAP_PRESERVE_EXISTING;
-	}
-
-	private boolean shouldUseOrderedMap() {
-		return (this.policy & POLICY_BOTH_MAPS_PRESERVE_ORDERING) == POLICY_BOTH_MAPS_PRESERVE_ORDERING;
-	}
-
-	private boolean shouldUseSortedInnerMap() {
-		return (this.policy & POLICY_INNER_MAP_SORTED_MASK) != 0;
-	}
-
-	private boolean shouldSortInAscendingOrder() {
-		return (this.policy & POLICY_INNER_MAP_SORTED_MASK) == POLICY_INNER_MAP_SORTED_ASCENDING;
-	}
-
-	private boolean shouldUseSingletonInnerMap() {
-		return (this.policy & POLICY_INNER_MAP_ENSURE_SINGLETON) == POLICY_INNER_MAP_ENSURE_SINGLETON;
-	}
-
-	private static class ValueComparator implements Comparator, Serializable {
-		private static final long serialVersionUID = 362497720873186266L;
-		private boolean ascending;
-
-		public ValueComparator(boolean ascending) {
-			this.ascending = ascending;
-		}
-
-		/* (non-Javadoc)
-		 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-		 */
-		public int compare(Object o1, Object o2) {
-			try {
-				if (o1 instanceof Comparable) {
-					int cmp = ((Comparable) o1).compareTo(o2);
-					return this.ascending ? cmp : (0 - cmp);
-				}
-			} catch (Exception e) {
-				// Ignore
-			}
-			return 1;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties
deleted file mode 100644
index cb65dd6..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-Director_Uninstall_Problems=Problems occurred while uninstalling.
-Director_Install_Problems=Problems occurred while installing.
-Director_Cannot_Uninstall=Can not uninstall {0} because others IUs depend on it. 
-Director_Nothing_To_Uninstall=Nothing to uninstall.
-Director_Already_Installed={0} is already installed.
-Director_Revert_Problems=Problems occurred while reverting the install.
-Director_Unexpected_IU=The installable unit {0} can not be used here. 
-Director_Task_Installing=Installing into {0}
-Director_Task_Uninstalling=Uninstalling
-Director_Task_Updating=Updating
-Director_Task_Resolving_Dependencies=Resolving dependencies
-
-Director_Unsatisfied_Dependencies=\
-  Cannot complete the install because some dependencies are not satisfiable
-Director_Unsatisfied_Dependency=\
-  Unsatisfied dependency: {0}
-Planner_Error_saving_opbfile=Exception writing problem file in: {0}. 
-Planner_Format_error=Format error in file: {0}. 
-Planner_Missing_opb_file=Missing file: {0}.
-Planner_Timeout=The solver timed out on problem {0}.
-Planner_Problems_resolving_plan=Problems resolving provisioning plan.
-Planner_Trivial_exception=No solution found because of a trivial contradiction in {0}.
-Planner_Unsatisfiable_problem=No solution found because the problem in {0} is unsatisfiable. 
-Planner_Unsatisfied_dependency=No IU found to satisfy dependency from {0} to {1}.
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/ResolutionHelper.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/ResolutionHelper.java
deleted file mode 100644
index 12c2221..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/ResolutionHelper.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.resolution;
-
-import java.util.*;
-import org.eclipse.equinox.internal.p2.director.DirectorActivator;
-import org.eclipse.equinox.internal.p2.director.RecommendationDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.ServiceReference;
-
-public class ResolutionHelper {
-	private static final IInstallableUnitFragment[] NO_FRAGMENTS = new IInstallableUnitFragment[0];
-
-	private static boolean DEBUG = false;
-
-	private Transformer transformer;
-	private State state;
-	private Dictionary selectionContext;
-	private RecommendationDescriptor recommendations;
-	/**
-	 * Map of IInstallableUnit->(IInstallableUnitFragment) representing the 
-	 * mapping of IUs to the fragment they are bound to.
-	 */
-	private Map fragmentBindings;
-
-	public ResolutionHelper(Dictionary selectionContext, RecommendationDescriptor recommendations) {
-		this.selectionContext = selectionContext;
-		this.recommendations = recommendations;
-	}
-
-	private void initialize() {
-		ServiceReference sr = DirectorActivator.context.getServiceReference(PlatformAdmin.class.getName());
-		PlatformAdmin pa = (PlatformAdmin) DirectorActivator.context.getService(sr);
-		transformer = new Transformer(pa.getFactory(), selectionContext, recommendations);
-		state = pa.getFactory().createState(true);
-		fragmentBindings = new HashMap();
-		if (selectionContext != null)
-			state.setPlatformProperties(selectionContext);
-	}
-
-	private void addToState(BundleDescription bd) {
-		state.addBundle(bd);
-	}
-
-	private BundleDescription addInResolution(IInstallableUnit toAdd) {
-		transformer.visitInstallableUnit(toAdd);
-		BundleDescription descriptionToAdd = transformer.getResult();
-		//		bundleDescriptionToIU.put(descriptionToAdd, toAdd);
-		addToState(descriptionToAdd);
-		return descriptionToAdd;
-	}
-
-	/** 
-	 * Indicates if the installable unit to install will have all their constraints satisfied when installed with other installable units.
-	 * @param toInstall the installable units to install
-	 * @param existingState the other installable units to resolve against
-	 * @return true if the installable unit to install resolves, return false otherwise. 
-	 */
-	public UnsatisfiedCapability[] install(Set toInstall, Set existingState) {
-		initialize();
-		BundleDescription[] addedBundle = new BundleDescription[toInstall.size()];
-		int j = 0;
-		for (Iterator iterator = toInstall.iterator(); iterator.hasNext();) {
-			addedBundle[j++] = addInResolution((IInstallableUnit) iterator.next());
-		}
-
-		for (Iterator iterator = existingState.iterator(); iterator.hasNext();) {
-			addInResolution((IInstallableUnit) iterator.next());
-		}
-
-		state.resolve(); //We may want to resolve in two times. first the existing state, then add the toInstall. This would allow to see what changes when dropping the new iu.
-		//Also it could allow us to do an incremental resolution. however the results may differ
-
-		ArrayList results = new ArrayList();
-		for (int i = 0; i < addedBundle.length; i++) {
-			results.addAll(createUnsatisfiedCapabilities(state.getStateHelper().getUnsatisfiedConstraints(addedBundle[i]), addedBundle[i]));
-		}
-		return (UnsatisfiedCapability[]) results.toArray(new UnsatisfiedCapability[results.size()]);
-
-	}
-
-	private ArrayList createUnsatisfiedCapabilities(VersionConstraint[] unsatisfied, BundleDescription description) {
-		ArrayList results = new ArrayList();
-		for (int i = 0; i < unsatisfied.length; i++) {
-			RequiredCapability originalDependency = (RequiredCapability) ((StateMetadataMap) description.getUserObject()).getGenericSpecifications().get(unsatisfied[i]);
-			results.add(new UnsatisfiedCapability(originalDependency, ((StateMetadataMap) description.getUserObject()).getUnit()));
-		}
-		return results;
-	}
-
-	/**
-	 * Associates installable unit fragments to each IU being installed.
-	 * 
-	 * TODO: This method should probably be renamed to attachFragments
-	 */
-	public Collection attachCUs(Collection toAttach) {
-		initialize();
-		for (Iterator iterator = toAttach.iterator(); iterator.hasNext();) {
-			addInResolution((IInstallableUnit) iterator.next());
-		}
-		state.resolve();
-		BundleDescription[] bds = state.getBundles();
-		for (int i = 0; i < bds.length; i++) {
-			if (DEBUG) {
-				ResolverError[] re = state.getResolverErrors(bds[i]);
-				for (int j = 0; j < re.length; j++) {
-					System.out.println(re[j]);
-				}
-			}
-			BundleDescription[] potentialIUFragments = state.getStateHelper().getDependentBundles(new BundleDescription[] {bds[i]});
-			// TODO: We need to define a way to allow IUFragments to work together to do configuration work.
-			// For now we will select just one fragment by preferring a fragment that matches the host
-
-			IInstallableUnit hostIU = ((StateMetadataMap) bds[i].getUserObject()).getUnit();
-			ArrayList applicableFragments = new ArrayList();
-			for (int k = 0; k < potentialIUFragments.length; k++) {
-				IInstallableUnit dependentIU = ((StateMetadataMap) potentialIUFragments[k].getUserObject()).getUnit();
-				if (hostIU.equals(dependentIU) || !dependentIU.isFragment())
-					continue;
-
-				IInstallableUnitFragment potentialFragment = (IInstallableUnitFragment) dependentIU;
-
-				// Check to make sure the host meets the requirements of the fragment
-				RequiredCapability reqsFromFragment[] = potentialFragment.getHost();
-				ProvidedCapability hostCapabilities[] = hostIU.getProvidedCapabilities();
-				boolean match = true;
-				boolean requirementMatched = false;
-				for (int l = 0; l < reqsFromFragment.length && match == true; l++) {
-					requirementMatched = false;
-					for (int m = 0; m < hostCapabilities.length; m++) {
-						if (hostCapabilities[m].isSatisfiedBy(reqsFromFragment[l])) {
-							requirementMatched = true;
-							break;
-						}
-					}
-					if (requirementMatched == false) {
-						match = false;
-						break;
-					}
-
-				}
-				if (match) {
-					applicableFragments.add(potentialFragment);
-				}
-			}
-
-			IInstallableUnitFragment theFragment = null;
-			int specificityLevel = 0;
-			for (Iterator iterator = applicableFragments.iterator(); iterator.hasNext();) {
-				IInstallableUnitFragment fragment = (IInstallableUnitFragment) iterator.next();
-				if (fragment.getHost().length > specificityLevel) {
-					theFragment = fragment;
-					specificityLevel = fragment.getHost().length;
-				}
-			}
-			if (theFragment != null)
-				fragmentBindings.put(hostIU, theFragment);
-		}
-		//build the collection of resolved IUs
-		Collection result = new HashSet(toAttach.size());
-		for (Iterator iterator = toAttach.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			//just return fragments as they are
-			if (iu.isFragment()) {
-				result.add(iu);
-				continue;
-			}
-			//return a new IU that combines the IU with its bound fragments
-			IInstallableUnitFragment fragment = (IInstallableUnitFragment) fragmentBindings.get(iu);
-			IInstallableUnitFragment[] fragments;
-			if (fragment == null)
-				fragments = NO_FRAGMENTS;
-			else
-				fragments = new IInstallableUnitFragment[] {fragment};
-			result.add(MetadataFactory.createResolvedInstallableUnit(iu, fragments));
-		}
-		return result;
-	}
-
-	public boolean isResolved(IInstallableUnit iu) {
-		return state.getBundle(iu.getId(), iu.getVersion()).isResolved();
-	}
-
-	public ArrayList getAllResolved() {
-		BundleDescription[] bd = state.getResolvedBundles();
-		ArrayList result = new ArrayList(bd.length);
-		for (int i = 0; i < bd.length; i++) {
-			result.add(extractIU(bd[i]));
-		}
-		return result;
-	}
-
-	private IInstallableUnit extractIU(BundleDescription bd) {
-		return ((StateMetadataMap) bd.getUserObject()).getUnit();
-	}
-
-	public List getSorted() {
-		BundleDescription[] toSort = state.getResolvedBundles();
-		state.getStateHelper().sortBundles(toSort);
-		List result = new ArrayList(toSort.length);
-		for (int i = 0; i < toSort.length; i++) {
-			result.add(extractIU(toSort[i]));
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/StateMetadataMap.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/StateMetadataMap.java
deleted file mode 100644
index 0b294aa..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/StateMetadataMap.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.resolution;
-
-import java.util.Map;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-//Instances of this class are stored in the user object slot of bundlescriptions to ease navigation between the two models.
-public class StateMetadataMap {
-	private IInstallableUnit unit;
-	private Map correspondingSpecifications; //indexes in this array maps to the ones in the dependencies array. This is gross. TODO
-
-	public StateMetadataMap(IInstallableUnit unit, Map correspondingSpecifications) {
-		super();
-		this.unit = unit;
-		this.correspondingSpecifications = correspondingSpecifications;
-	}
-
-	public IInstallableUnit getUnit() {
-		return unit;
-	}
-
-	public Map getGenericSpecifications() {
-		return correspondingSpecifications;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/Transformer.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/Transformer.java
deleted file mode 100644
index 8c6ac9f..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/Transformer.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.resolution;
-
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.InvalidSyntaxException;
-
-public class Transformer {
-	private static final byte IU_KIND = 0;
-	private static final String IU_NAMESPACE = "iu.namespace";
-	static long iuInternalId = 0;
-
-	private Dictionary context = null;
-	private StateObjectFactory factory = null;
-	private ArrayList iuCapabilities;
-	private Map iuDependencies;
-	private byte kind = IU_KIND;
-
-	private BundleDescription result = null;
-
-	private RecommendationDescriptor recommendations = null;
-
-	public Transformer(StateObjectFactory factory) {
-		this(factory, null, null);
-	}
-
-	public Transformer(StateObjectFactory factory, Dictionary context, RecommendationDescriptor recommendations) {
-		this.factory = factory;
-		this.context = context;
-		this.recommendations = recommendations;
-	}
-
-	private String getNamespace() {
-		switch (kind) {
-			case IU_KIND :
-				return IU_NAMESPACE;
-			default :
-				throw new IllegalStateException("unknown kind"); //This should not happen
-		}
-	}
-
-	public BundleDescription getResult() {
-		return result;
-	}
-
-	private boolean isEnabled(RequiredCapability capability) {
-		// If there is no context then be optimistic
-		if (context == null)
-			return true;
-		String filter = capability.getFilter();
-		if (filter == null)
-			return true;
-		try {
-			return DirectorActivator.context.createFilter(filter).match(context);
-		} catch (InvalidSyntaxException e) {
-			// If we fail to parse the filter treat it as invalid and be optimistic
-			return true;
-		}
-	}
-
-	private String toFilter(VersionRange range) {
-		if (range == null)
-			return null;
-		StringBuffer buf = new StringBuffer();
-		buf.append("(&"); //$NON-NLS-1$
-		buf.append("(version>=").append(range.getMinimum().toString()).append(')'); //$NON-NLS-1$
-		if (!range.getIncludeMinimum())
-			buf.append("(!(version=").append(range.getMinimum().toString()).append("))");
-		buf.append("(version<=").append(range.getMaximum().toString()).append(')'); //$NON-NLS-1$
-		if (!range.getIncludeMaximum())
-			buf.append("(!(version=").append(range.getMaximum().toString()).append("))");
-		buf.append(')');
-		return buf.toString();
-	}
-
-	public void visitCapability(ProvidedCapability capability) {
-		iuCapabilities.add(factory.createGenericDescription(capability.getName(), capability.getNamespace(), capability.getVersion(), null));
-	}
-
-	public void visitInstallableUnit(IInstallableUnit toTransform) {
-		kind = IU_KIND;
-
-		//Start with the dependencies
-		RequiredCapability[] requires = toTransform.getRequiredCapabilities();
-		iuDependencies = new HashMap(requires.length);
-		for (int i = 0; i < requires.length; i++) {
-			visitRequiredCapability(requires[i]);
-		}
-
-		//Do the capabilities
-		ProvidedCapability[] capabilities = toTransform.getProvidedCapabilities();
-		iuCapabilities = new ArrayList(requires.length + 1);
-		for (int i = 0; i < capabilities.length; i++) {
-			visitCapability(capabilities[i]);
-		}
-
-		//Add a capability representing the IU itself
-		iuCapabilities.add(factory.createGenericDescription(toTransform.getId(), getNamespace(), toTransform.getVersion(), null));
-
-		GenericSpecification[] genericSpecifications = new GenericSpecification[iuDependencies.size()];
-		iuDependencies.keySet().toArray(genericSpecifications);
-
-		GenericDescription[] genericDescriptions = new GenericDescription[iuCapabilities.size()];
-		iuCapabilities.toArray(genericDescriptions);
-
-		//Finally create the bundle description
-		//TODO Need to create the filter for the IU itself
-		result = factory.createBundleDescription(iuInternalId++, toTransform.getId(), toTransform.getVersion(), (String) null, (BundleSpecification[]) null, (HostSpecification) null, (ImportPackageSpecification[]) null, (ExportPackageDescription[]) null, toTransform.isSingleton(), true, true, toTransform.getFilter(), (String[]) null, genericSpecifications, genericDescriptions);
-		result.setUserObject(new StateMetadataMap(toTransform, iuDependencies));
-	}
-
-	public void visitRequiredCapability(RequiredCapability capability) {
-		try {
-			if (isEnabled(capability)) {
-				capability = rewrite(capability);
-				iuDependencies.put(factory.createGenericSpecification(capability.getName(), capability.getNamespace(), toFilter(capability.getRange()), capability.isOptional(), capability.isMultiple()), capability);
-			}
-		} catch (InvalidSyntaxException e) {
-			LogHelper.log(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, "Invalid filter: " + e.getFilter(), e)); //$NON-NLS-1$
-		}
-	}
-
-	private RequiredCapability rewrite(RequiredCapability match) {
-		if (recommendations == null)
-			return match;
-		Recommendation foundRecommendation = recommendations.findRecommendation(match);
-		return foundRecommendation != null ? foundRecommendation.newValue() : match;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/UnsatisfiedCapability.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/UnsatisfiedCapability.java
deleted file mode 100644
index 3180239..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/resolution/UnsatisfiedCapability.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.resolution;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-
-/**
- * Represents a provisioning dependency that was not satisfied during
- * resolution.
- */
-public class UnsatisfiedCapability {
-	private IInstallableUnit owner;
-	private RequiredCapability require;
-
-	/**
-	 * Creates a new unresolved dependency
-	 * @param required The dependency that was not satisfied.
-	 * @param owner The installable unit whose dependency was not satisfied.
-	 */
-	public UnsatisfiedCapability(RequiredCapability required, IInstallableUnit owner) {
-		this.require = required;
-		this.owner = owner;
-	}
-
-	public IInstallableUnit getOwner() {
-		return owner;
-	}
-
-	/**
-	 * Returns the specific dependency that was not satisfied.
-	 */
-	public RequiredCapability getRequiredCapability() {
-		return require;
-	}
-
-	/**
-	 * Returns the installable unit whose dependency was not satisfied.
-	 */
-	public IInstallableUnit getUnsatisfiedUnit() {
-		return owner;
-	}
-
-	/**
-	 * For debugging purposes only.
-	 */
-	public String toString() {
-		return "[" + owner + "] " + require.toString(); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java
deleted file mode 100644
index e46fd55..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.rollback;
-
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.director.DirectorActivator;
-import org.eclipse.equinox.internal.p2.director.IUTransformationHelper;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.SynchronousProvisioningListener;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.osgi.framework.Version;
-
-public class FormerState {
-	public static final String IUPROP_PREFIX = "---IUPROPERTY---"; //$NON-NLS-1$
-	public static final String IUPROP_POSTFIX = "---IUPROPERTYKEY---"; //$NON-NLS-1$
-	URL location = null;
-
-	Hashtable generatedIUs = new Hashtable(); //key profile id, value the iu representing this profile
-
-	public FormerState(URL repoLocation) {
-		if (repoLocation == null)
-			throw new IllegalArgumentException("Repository location can't be null"); //$NON-NLS-1$
-		IProvisioningEventBus eventBus = (IProvisioningEventBus) ServiceHelper.getService(DirectorActivator.context, IProvisioningEventBus.SERVICE_NAME);
-		location = repoLocation;
-
-		//listen for pre-event. to snapshot the profile
-		eventBus.addListener(new SynchronousProvisioningListener() {
-			public void notify(EventObject o) {
-				if (o instanceof BeginOperationEvent) {
-					BeginOperationEvent event = (BeginOperationEvent) o;
-					IInstallableUnit iuForProfile = profileToIU(event.getProfile());
-					generatedIUs.put(event.getProfile().getProfileId(), iuForProfile);
-				} else if (o instanceof ProfileEvent) {
-					ProfileEvent event = (ProfileEvent) o;
-					if (event.getReason() == ProfileEvent.CHANGED)
-						getRepository().addInstallableUnits(new IInstallableUnit[] {(IInstallableUnit) generatedIUs.get(event.getProfileId())});
-					return;
-				} else if (o instanceof RollbackOperationEvent) {
-					RollbackOperationEvent event = (RollbackOperationEvent) o;
-					generatedIUs.remove(event.getProfile().getProfileId());
-					return;
-				}
-				//TODO We need to decide what to do on profile removal				
-				//				else if (o instanceof ProfileEvent) {
-				//					ProfileEvent pe = (ProfileEvent) o;
-				//					if (pe.getReason() == ProfileEvent.REMOVED) {
-				//						profileRegistries.remove(pe.getProfile().getProfileId());
-				//						persist();
-				//					}
-				//				}
-			}
-
-		});
-	}
-
-	IMetadataRepository getRepository() {
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(DirectorActivator.context, IMetadataRepositoryManager.class.getName());
-		try {
-			return manager.loadRepository(location, null);
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		try {
-			IMetadataRepository repository = manager.createRepository(location, "Agent rollback repository", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY); //$NON-NLS-1$
-			manager.addRepository(repository.getLocation());
-			repository.setProperty(IRepository.PROP_SYSTEM, Boolean.TRUE.toString());
-			return repository;
-		} catch (ProvisionException e) {
-			LogHelper.log(e);
-		}
-		throw new IllegalStateException("Unable to open or create Agent's rollback repository"); //$NON-NLS-1$
-	}
-
-	IInstallableUnit profileToIU(IProfile profile) {
-		InstallableUnitDescription result = new MetadataFactory.InstallableUnitDescription();
-		result.setProperty(IInstallableUnit.PROP_TYPE_PROFILE, Boolean.TRUE.toString());
-		result.setId(profile.getProfileId());
-		result.setVersion(new Version(0, 0, 0, Long.toString(System.currentTimeMillis())));
-		result.setRequiredCapabilities(IUTransformationHelper.toRequirements(profile.query(InstallableUnitQuery.ANY, new Collector(), null).iterator(), false));
-		// Save the profile properties
-		// TODO we aren't marking these properties in any special way to indicate they came from profile properties.  Should we?
-		Map properties = profile.getProperties();
-		Iterator iter = properties.keySet().iterator();
-		while (iter.hasNext()) {
-			String key = (String) iter.next();
-			result.setProperty(key, (String) properties.get(key));
-		}
-		// Save the IU profile properties
-		Iterator allIUs = profile.query(InstallableUnitQuery.ANY, new Collector(), null).iterator();
-		while (allIUs.hasNext()) {
-			IInstallableUnit iu = (IInstallableUnit) allIUs.next();
-			properties = profile.getInstallableUnitProperties(iu);
-			iter = properties.keySet().iterator();
-			while (iter.hasNext()) {
-				String key = (String) iter.next();
-				result.setProperty(IUPROP_PREFIX + iu.getId() + IUPROP_POSTFIX + key, (String) properties.get(key));
-			}
-		}
-
-		//TODO Do we need to mark profile with a special marker
-		return MetadataFactory.createInstallableUnit(result);
-	}
-	//	private copyProperty(Profile p) {
-	//		Map profileProperties = p.getValues();
-	//	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IDirector.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IDirector.java
deleted file mode 100644
index ce844ed..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IDirector.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.director;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-/**
- * Directors are responsible for determining what should be done to a given 
- * profile to reshape it as requested. That is, given the current state of a 
- * profile, a description of the desired end state of that profile and metadata 
- * describing the available IUs, a director produces a list of provisioning 
- * operations (e.g., install, update or uninstall) to perform on the related IUs. 
- * Directors are also able to validate profiles and assist in the diagnosis of 
- * configuration errors. Note that directors may range in complexity from 
- * very simple (e.g., reading a list of bundles from a static file) to very complex. 
- */
-public interface IDirector {
-
-	/**
-	 * performs the change request with the given context.
-	 * 
-	 * @param profileChangeRequest The change request
-	 * @param context The provisioning context used for finding resources
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 */
-	public IStatus provision(ProfileChangeRequest profileChangeRequest, ProvisioningContext context, IProgressMonitor monitor);
-
-	/**
-	 * Reverts the profile to a previous state described in the give InstallableUnit.
-	 * 
-	 * @param previous The installable unit that describes the previous state of the profile
-	 * @param profile The profile to revert
-	 * @param context The provisioning context used for finding resources
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 */
-	public IStatus revert(IInstallableUnit previous, IProfile profile, ProvisioningContext context, IProgressMonitor monitor);
-
-	/**
-	 * Returns the location of the director's rollback repository, where information about
-	 * previous profile states is stored.
-	 */
-	public URL getRollbackRepositoryLocation();
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java
deleted file mode 100644
index ab5fba4..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/IPlanner.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.director;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-/**
- * Planners are responsible for determining what should be done to a given 
- * profile to reshape it as requested. That is, given the current state of a 
- * profile, a description of the desired end state of that profile and metadata 
- * describing the available IUs, a planner produces a plan that lists the
- * provisioning operands that the engine should perform.  
- */
-public interface IPlanner {
-	public ProvisioningPlan getProvisioningPlan(ProfileChangeRequest profileChangeRequest, ProvisioningContext context, IProgressMonitor monitor);
-
-	public ProvisioningPlan getRevertPlan(IInstallableUnit profileSnapshot, ProvisioningContext context, IProgressMonitor monitor);
-
-	public IInstallableUnit[] updatesFor(IInstallableUnit toUpdate, ProvisioningContext context, IProgressMonitor monitor);
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProfileChangeRequest.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProfileChangeRequest.java
deleted file mode 100644
index 63369c6..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProfileChangeRequest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.director;
-
-import java.util.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.director.DirectorActivator;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-public class ProfileChangeRequest {
-
-	private final IProfile profile;
-	private ArrayList iusToRemove = null; // list of ius to remove
-	private ArrayList iusToAdd = null; // list of ius to add
-	private ArrayList propertiesToRemove = null; // list of keys for properties to be removed
-	private HashMap propertiesToAdd = null; // map of key->value for properties to be added
-	private Map iuPropertiesToAdd = null; // map iu->map of key->value pairs for properties to be added for an iu
-	private Map iuPropertiesToRemove = null; // map of iu->list of property keys to be removed for an iu
-
-	public static ProfileChangeRequest createByProfileId(String profileId) {
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(DirectorActivator.context, IProfileRegistry.class.getName());
-		if (profileRegistry == null)
-			throw new IllegalStateException("ProfileRegistry unavailable");
-		IProfile profile = profileRegistry.getProfile(profileId);
-		if (profile == null)
-			throw new IllegalArgumentException("Profile id " + profileId + " is not registered.");
-		return new ProfileChangeRequest(profile);
-	}
-
-	public ProfileChangeRequest(IProfile profile) {
-		if (profile == null)
-			throw new IllegalArgumentException("Profile cannot be null.");
-		this.profile = profile;
-	}
-
-	public IProfile getProfile() {
-		return profile;
-	}
-
-	public Map getProfileProperties() {
-		Map result = new HashMap(profile.getProperties());
-		if (propertiesToRemove != null) {
-			for (Iterator it = propertiesToRemove.iterator(); it.hasNext();) {
-				result.remove(it.next());
-			}
-		}
-		if (propertiesToAdd != null)
-			result.putAll(propertiesToAdd);
-
-		return result;
-	}
-
-	public String getProfileProperty(String key) {
-		return (String) getProfileProperties().get(key);
-	}
-
-	public void addInstallableUnits(IInstallableUnit[] toInstall) {
-		if (iusToAdd == null)
-			iusToAdd = new ArrayList(toInstall.length);
-		for (int i = 0; i < toInstall.length; i++)
-			iusToAdd.add(toInstall[i]);
-	}
-
-	public void removeInstallableUnits(IInstallableUnit[] toUninstall) {
-		if (iusToRemove == null)
-			iusToRemove = new ArrayList(toUninstall.length);
-		for (int i = 0; i < toUninstall.length; i++)
-			iusToRemove.add(toUninstall[i]);
-	}
-
-	public void setProfileProperty(String key, Object value) {
-		if (propertiesToAdd == null)
-			propertiesToAdd = new HashMap();
-		propertiesToAdd.put(key, value);
-	}
-
-	public void removeProfileProperty(String key) {
-		if (propertiesToRemove == null)
-			propertiesToRemove = new ArrayList(1);
-		propertiesToRemove.add(key);
-	}
-
-	public void setInstallableUnitProfileProperty(IInstallableUnit iu, String key, Object value) {
-		if (iuPropertiesToAdd == null)
-			iuPropertiesToAdd = new HashMap();
-		Map properties = (Map) iuPropertiesToAdd.get(iu);
-		if (properties == null) {
-			properties = new HashMap();
-			iuPropertiesToAdd.put(iu, properties);
-		}
-		properties.put(key, value);
-	}
-
-	public void removeInstallableUnitProfileProperty(IInstallableUnit iu, String key) {
-		if (iuPropertiesToRemove == null)
-			iuPropertiesToRemove = new HashMap();
-		List keys = (List) iuPropertiesToRemove.get(iu);
-		if (keys == null) {
-			keys = new ArrayList();
-			iuPropertiesToRemove.put(iu, keys);
-		}
-		keys.add(key);
-	}
-
-	public IInstallableUnit[] getRemovedInstallableUnits() {
-		if (iusToRemove == null)
-			return new IInstallableUnit[0];
-		return (IInstallableUnit[]) iusToRemove.toArray(new IInstallableUnit[iusToRemove.size()]);
-	}
-
-	public IInstallableUnit[] getAddedInstallableUnits() {
-		if (iusToAdd == null)
-			return new IInstallableUnit[0];
-		return (IInstallableUnit[]) iusToAdd.toArray(new IInstallableUnit[iusToAdd.size()]);
-	}
-
-	// String [key, key, key] names of properties to remove
-	public String[] getPropertiesToRemove() {
-		if (propertiesToRemove == null)
-			return new String[0];
-		return (String[]) propertiesToRemove.toArray(new String[propertiesToRemove.size()]);
-	}
-
-	// map of key value pairs
-	public Map getPropertiesToAdd() {
-		if (propertiesToAdd == null)
-			return new HashMap();
-		return propertiesToAdd;
-	}
-
-	// map of iu->list of property keys to be removed for an iu	
-	public Map getInstallableUnitProfilePropertiesToRemove() {
-		if (iuPropertiesToRemove == null)
-			return new HashMap();
-		return iuPropertiesToRemove;
-	}
-
-	// TODO This can be represented and returned in whatever way makes most sense for planner/engine
-	// map iu->map of key->value pairs for properties to be added for an iu
-	public Map getInstallableUnitProfilePropertiesToAdd() {
-		if (iuPropertiesToAdd == null)
-			return new HashMap();
-		return iuPropertiesToAdd;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProvisioningPlan.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProvisioningPlan.java
deleted file mode 100644
index 4ba2477..0000000
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/provisional/p2/director/ProvisioningPlan.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.director;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.engine.Operand;
-
-public class ProvisioningPlan {
-	private IStatus status;
-	private Operand[] operands;
-
-	public ProvisioningPlan(IStatus status) {
-		this(status, new Operand[0]);
-	}
-
-	public ProvisioningPlan(IStatus status, Operand[] operands) {
-		this.status = status;
-		this.operands = operands;
-	}
-
-	public IStatus getStatus() {
-		return status;
-	}
-
-	/** 
-	 * The operands to pass to the engine.
-	 * @return the operands to be executed. This may be an empty array if the
-	 * plan has errors or if there is nothing to do.
-	 */
-	public Operand[] getOperands() {
-		return operands;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/.classpath b/bundles/org.eclipse.equinox.p2.exemplarysetup/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/.project b/bundles/org.eclipse.equinox.p2.exemplarysetup/.project
deleted file mode 100644
index 04de2a1..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.exemplarysetup</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b3fb58a..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,339 +0,0 @@
-#Thu Sep 06 23:48:04 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index bb66afe..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:11 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.exemplarysetup/META-INF/MANIFEST.MF
deleted file mode 100644
index ac62ec8..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.exemplarysetup;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: org.eclipse.equinox.internal.p2.core,
- org.eclipse.equinox.internal.p2.director,
- org.eclipse.equinox.internal.p2.engine,
- org.eclipse.equinox.internal.p2.garbagecollector,
- org.eclipse.equinox.internal.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.core.eventbus,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.director,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Bundle-Activator: org.eclipse.equinox.internal.p2.exemplarysetup.Activator
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Require-Bundle: org.eclipse.equinox.common
-Export-Package: org.eclipse.equinox.internal.p2.exemplarysetup;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/about.html b/bundles/org.eclipse.equinox.p2.exemplarysetup/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/build.properties b/bundles/org.eclipse.equinox.p2.exemplarysetup/build.properties
deleted file mode 100644
index a6b8330..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/plugin.properties b/bundles/org.eclipse.equinox.p2.exemplarysetup/plugin.properties
deleted file mode 100644
index 5b794b6..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Exemplary Setup
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.exemplarysetup/src/org/eclipse/equinox/internal/p2/exemplarysetup/Activator.java b/bundles/org.eclipse.equinox.p2.exemplarysetup/src/org/eclipse/equinox/internal/p2/exemplarysetup/Activator.java
deleted file mode 100644
index c3504f9..0000000
--- a/bundles/org.eclipse.equinox.p2.exemplarysetup/src/org/eclipse/equinox/internal/p2/exemplarysetup/Activator.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.exemplarysetup;
-
-import org.eclipse.equinox.internal.p2.core.ProvisioningEventBus;
-import org.eclipse.equinox.internal.p2.director.SimpleDirector;
-import org.eclipse.equinox.internal.p2.director.SimplePlanner;
-import org.eclipse.equinox.internal.p2.engine.MetadataCache;
-import org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry;
-import org.eclipse.equinox.internal.p2.garbagecollector.GarbageCollector;
-import org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.osgi.framework.*;
-
-public class Activator implements BundleActivator {
-	public static BundleContext context;
-
-	private IProvisioningEventBus bus;
-	private ServiceRegistration registrationBus;
-
-	private MetadataRepositoryManager defaultManager;
-	private ServiceRegistration registrationDefaultManager;
-
-	//	private ArtifactRepositoryManager artifactRepoManager;
-	//	private ServiceRegistration registrationArtifactRepoManager;
-
-	private IProfileRegistry profileRegistry;
-	private ServiceRegistration registrationProfileRegistry;
-
-	private IDirector director;
-	private ServiceRegistration registrationDirector;
-
-	private IPlanner planner;
-	private ServiceRegistration registrationPlanner;
-
-	public void start(BundleContext aContext) throws Exception {
-		//Need to do the configuration of all the bits and pieces:
-		Activator.context = aContext;
-
-		registerEventBus();
-		//create the profile registry
-		registerProfileRegistry();
-		//create metadata repositories
-		registerDefaultMetadataRepoManager();
-		registerMetadataCache();
-
-		//create the director and planner.  The planner must be
-		//registered first because the director finds it in its constructor.
-		registerPlanner();
-		registerDirector();
-		startGarbageCollector();
-
-		//create artifact repositories
-		//		registerDefaultArtifactRepoManager();
-	}
-
-	private void startGarbageCollector() {
-		new GarbageCollector();
-	}
-
-	public void stop(BundleContext aContext) throws Exception {
-		//		unregisterDefaultArtifactRepoManager();
-		unregisterDirector();
-		unregisterPlanner();
-		unregisterDefaultMetadataRepoManager();
-		unregisterProfileRegistry();
-		unregisterEventBus();
-		Activator.context = null;
-
-	}
-
-	private void registerDirector() {
-		director = new SimpleDirector();
-		registrationDirector = context.registerService(IDirector.class.getName(), director, null);
-	}
-
-	private void unregisterDirector() {
-		registrationDirector.unregister();
-		registrationDirector = null;
-		director = null;
-	}
-
-	private void registerPlanner() {
-		planner = new SimplePlanner();
-		registrationPlanner = context.registerService(IPlanner.class.getName(), planner, null);
-	}
-
-	private void unregisterPlanner() {
-		registrationPlanner.unregister();
-		registrationPlanner = null;
-		planner = null;
-	}
-
-	private void registerProfileRegistry() {
-		profileRegistry = new SimpleProfileRegistry();
-		registrationProfileRegistry = context.registerService(IProfileRegistry.class.getName(), profileRegistry, null);
-	}
-
-	private void unregisterProfileRegistry() {
-		registrationProfileRegistry.unregister();
-		registrationProfileRegistry = null;
-		profileRegistry = null;
-	}
-
-	private void registerDefaultMetadataRepoManager() {
-		defaultManager = new MetadataRepositoryManager();
-		registrationDefaultManager = context.registerService(IMetadataRepositoryManager.class.getName(), defaultManager, null);
-	}
-
-	private void unregisterDefaultMetadataRepoManager() {
-		registrationDefaultManager.unregister();
-		registrationDefaultManager = null;
-		defaultManager = null;
-	}
-
-	//	private void registerDefaultArtifactRepoManager() {
-	//		artifactRepoManager = new ArtifactRepositoryManager();
-	//		registrationArtifactRepoManager = context.registerService(IArtifactRepositoryManager.class.getName(), artifactRepoManager, null);
-	//	}
-	//
-	//	private void unregisterDefaultArtifactRepoManager() {
-	//		registrationArtifactRepoManager.unregister();
-	//		artifactRepoManager = null;
-	//	}
-
-	private void registerMetadataCache() {
-		//TODO: we need to start metadata cache at a specific time, because it relies on IMetadataRepositoryManager
-		//being present. Really, MetadataCache should just wait until metadata repository service
-		//is available and then initialize itself
-		new MetadataCache();
-	}
-
-	private void registerEventBus() {
-		bus = new ProvisioningEventBus();
-		registrationBus = context.registerService(IProvisioningEventBus.SERVICE_NAME, bus, null);
-	}
-
-	private void unregisterEventBus() {
-		registrationBus.unregister();
-		registrationBus = null;
-		bus.close();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/.classpath b/bundles/org.eclipse.equinox.p2.extensionlocation/.classpath
deleted file mode 100644
index 866a165..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/OSGi%Minimum-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/.cvsignore b/bundles/org.eclipse.equinox.p2.extensionlocation/.cvsignore
deleted file mode 100644
index e043cc4..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-build.xml
-javaCompiler...args
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/.project b/bundles/org.eclipse.equinox.p2.extensionlocation/.project
deleted file mode 100644
index 75a9f6c..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.extensionlocation</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5147d22..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,330 +0,0 @@
-#Wed Mar 19 17:43:16 BRT 2008
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 56bcc3e..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:07 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF
deleted file mode 100644
index 6a39b42..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-SymbolicName: org.eclipse.equinox.p2.extensionlocation;singleton:=true
-Bundle-Activator: org.eclipse.equinox.internal.p2.extensionlocation.Activator
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Export-Package: org.eclipse.equinox.internal.p2.extensionlocation;x-internal:=true
-Import-Package: org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.directorywatcher,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.core.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository,
- org.osgi.framework
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.4.0"
-Bundle-ActivationPolicy: lazy
-
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/build.properties b/bundles/org.eclipse.equinox.p2.extensionlocation/build.properties
deleted file mode 100644
index bed7ed6..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties
-source.. = src/
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/plugin.properties b/bundles/org.eclipse.equinox.p2.extensionlocation/plugin.properties
deleted file mode 100644
index c08b5e8..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Extension Location Repository Support
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/plugin.xml b/bundles/org.eclipse.equinox.p2.extensionlocation/plugin.xml
deleted file mode 100644
index 81c2c8e..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-      <extension
-      id="extensionRepository"
-         point="org.eclipse.equinox.p2.metadata.repository.metadataRepositories">
-      <factory
-            class="org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepositoryFactory">
-      </factory>
-      <filter
-            suffix="eclipse">
-      </filter>
-   </extension>
-      <extension
-            point="org.eclipse.equinox.p2.artifact.repository.artifactRepositories">
-         <factory
-               class="org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationArtifactRepositoryFactory">
-         </factory>
-         <filter
-               suffix="eclipse">
-         </filter>
-      </extension>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/Activator.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/Activator.java
deleted file mode 100644
index e505944..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/Activator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	public static final String ID = "org.eclipse.equinox.p2.extensionlocation"; //$NON-NLS-1$null;
-	private static volatile BundleContext bundleContext;
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		bundleContext = context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		bundleContext = null;
-	}
-
-	public static BundleContext getContext() {
-		return bundleContext;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
deleted file mode 100644
index c588b09..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
+++ /dev/null
@@ -1,150 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.SimpleArtifactRepositoryFactory;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.osgi.framework.BundleContext;
-
-public class ExtensionLocationArtifactRepository extends AbstractRepository implements IFileArtifactRepository {
-
-	//private static final String PROFILE_EXTENSION = "profile.extension"; //$NON-NLS-1$
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FILE = "file"; //$NON-NLS-1$
-	private final IFileArtifactRepository artifactRepository;
-
-	public ExtensionLocationArtifactRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		super("Extension: " + location.toExternalForm(), null, null, location, null, null); //$NON-NLS-1$
-
-		File base = getBaseDirectory(location);
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		BundleContext context = Activator.getContext();
-		String stateDirName = Integer.toString(location.toExternalForm().hashCode());
-		File bundleData = context.getDataFile(null);
-		File stateDir = new File(bundleData, stateDirName);
-		URL localRepositoryURL;
-		try {
-			localRepositoryURL = stateDir.toURL();
-		} catch (MalformedURLException e) {
-			// unexpected
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, "Failed to create local repository", e)); //$NON-NLS-1$
-		}
-
-		artifactRepository = (IFileArtifactRepository) initializeArtifactRepository(localRepositoryURL, "extension location implementation - " + location.toExternalForm()); //$NON-NLS-1$
-
-		DirectoryWatcher watcher = new DirectoryWatcher(new File[] {plugins, features});
-		RepositoryListener listener = new RepositoryListener(context, null, artifactRepository);
-		watcher.addListener(listener);
-		watcher.poll();
-	}
-
-	private IArtifactRepository initializeArtifactRepository(URL stateDirURL, String repositoryName) {
-		SimpleArtifactRepositoryFactory factory = new SimpleArtifactRepositoryFactory();
-		try {
-			return factory.load(stateDirURL, null);
-
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		IArtifactRepository repository = factory.create(stateDirURL, repositoryName, null);
-		//repository.setProperty(PROFILE_EXTENSION, "true");
-		return repository;
-	}
-
-	public static void validate(URL location, IProgressMonitor monitor) throws ProvisionException {
-		getBaseDirectory(location);
-	}
-
-	public static File getBaseDirectory(URL url) throws ProvisionException {
-		if (!FILE.equals(url.getProtocol()))
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location must use file protocol", null));
-
-		File base = new File(url.getPath());
-		if (!base.isDirectory())
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location not a directory", null));
-
-		if (isBaseDirectory(base))
-			return base;
-
-		File eclipseBase = new File(base, ECLIPSE);
-		if (isBaseDirectory(eclipseBase))
-			return eclipseBase;
-
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location is not an extension", null));
-	}
-
-	private static boolean isBaseDirectory(File base) {
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		return plugins.isDirectory() || features.isDirectory();
-	}
-
-	public void addDescriptor(IArtifactDescriptor descriptor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addDescriptors(IArtifactDescriptor[] descriptors) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeAll() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeDescriptor(IArtifactDescriptor descriptor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeDescriptor(IArtifactKey key) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean contains(IArtifactDescriptor descriptor) {
-		return artifactRepository.contains(descriptor);
-	}
-
-	public boolean contains(IArtifactKey key) {
-		return artifactRepository.contains(key);
-	}
-
-	public IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		return artifactRepository.getArtifact(descriptor, destination, monitor);
-	}
-
-	public IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key) {
-		return artifactRepository.getArtifactDescriptors(key);
-	}
-
-	public IArtifactKey[] getArtifactKeys() {
-		return artifactRepository.getArtifactKeys();
-	}
-
-	public IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor) {
-		return artifactRepository.getArtifacts(requests, monitor);
-	}
-
-	public OutputStream getOutputStream(IArtifactDescriptor descriptor) throws ProvisionException {
-		return artifactRepository.getOutputStream(descriptor);
-	}
-
-	public File getArtifactFile(IArtifactKey key) {
-		return artifactRepository.getArtifactFile(key);
-	}
-
-	public File getArtifactFile(IArtifactDescriptor descriptor) {
-		return artifactRepository.getArtifactFile(descriptor);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
deleted file mode 100644
index 83cb924..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.IArtifactRepositoryFactory;
-
-public class ExtensionLocationArtifactRepositoryFactory implements IArtifactRepositoryFactory {
-
-	public IArtifactRepository create(URL location, String name, String type) throws ProvisionException {
-		return null;
-	}
-
-	public IArtifactRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		return new ExtensionLocationArtifactRepository(location, monitor);
-	}
-
-	public IStatus validate(URL location, IProgressMonitor monitor) {
-		try {
-			ExtensionLocationArtifactRepository.validate(location, monitor);
-		} catch (ProvisionException e) {
-			return e.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
deleted file mode 100644
index 00e4a36..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.SimpleMetadataRepositoryFactory;
-import org.osgi.framework.BundleContext;
-
-public class ExtensionLocationMetadataRepository extends AbstractRepository implements IMetadataRepository {
-
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FILE = "file"; //$NON-NLS-1$
-	private final IMetadataRepository metadataRepository;
-
-	public ExtensionLocationMetadataRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		super("Extension: " + location.toExternalForm(), null, null, location, null, null); //$NON-NLS-1$
-
-		File base = getBaseDirectory(location);
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		BundleContext context = Activator.getContext();
-		String stateDirName = Integer.toString(location.toExternalForm().hashCode());
-		File bundleData = context.getDataFile(null);
-		File stateDir = new File(bundleData, stateDirName);
-		URL localRepositoryURL;
-		try {
-			localRepositoryURL = stateDir.toURL();
-		} catch (MalformedURLException e) {
-			// unexpected
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, "Failed to create local repository", e)); //$NON-NLS-1$
-		}
-
-		metadataRepository = initializeMetadataRepository(localRepositoryURL, "extension location implementation - " + location.toExternalForm()); //$NON-NLS-1$
-
-		DirectoryWatcher watcher = new DirectoryWatcher(new File[] {plugins, features});
-		RepositoryListener listener = new RepositoryListener(context, metadataRepository, null);
-		watcher.addListener(listener);
-		watcher.poll();
-	}
-
-	private IMetadataRepository initializeMetadataRepository(URL stateDirURL, String repositoryName) {
-		SimpleMetadataRepositoryFactory factory = new SimpleMetadataRepositoryFactory();
-		try {
-			return factory.load(stateDirURL, null);
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		return factory.create(stateDirURL, repositoryName, null);
-	}
-
-	public void addInstallableUnits(IInstallableUnit[] installableUnits) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeAll() {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeInstallableUnits(Query query, IProgressMonitor monitor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		return metadataRepository.query(query, collector, monitor);
-	}
-
-	public static void validate(URL location, IProgressMonitor monitor) throws ProvisionException {
-		getBaseDirectory(location);
-	}
-
-	public static File getBaseDirectory(URL url) throws ProvisionException {
-		if (!FILE.equals(url.getProtocol()))
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location must use file protocol", null));
-
-		File base = new File(url.getPath());
-		if (!base.isDirectory())
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location not a directory", null));
-
-		if (isBaseDirectory(base))
-			return base;
-
-		File eclipseBase = new File(base, ECLIPSE);
-		if (isBaseDirectory(eclipseBase))
-			return eclipseBase;
-
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location is not an extension", null));
-	}
-
-	private static boolean isBaseDirectory(File base) {
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		return plugins.isDirectory() || features.isDirectory();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
deleted file mode 100644
index 31da09c..0000000
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.IMetadataRepositoryFactory;
-
-public class ExtensionLocationMetadataRepositoryFactory implements IMetadataRepositoryFactory {
-
-	public IMetadataRepository create(URL location, String name, String type) throws ProvisionException {
-		return null;
-	}
-
-	public IMetadataRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		return new ExtensionLocationMetadataRepository(location, monitor);
-	}
-
-	public IStatus validate(URL location, IProgressMonitor monitor) {
-		try {
-			ExtensionLocationMetadataRepository.validate(location, monitor);
-		} catch (ProvisionException e) {
-			return e.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/.classpath b/bundles/org.eclipse.equinox.p2.garbagecollector/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/.options b/bundles/org.eclipse.equinox.p2.garbagecollector/.options
deleted file mode 100644
index d94f572..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.equinox.p2.garbagecollector/debug = false
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/.project b/bundles/org.eclipse.equinox.p2.garbagecollector/.project
deleted file mode 100644
index 7c0e92f..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.garbagecollector</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 78523cd..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,331 +0,0 @@
-#Thu Aug 16 11:00:59 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 1546d82..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,58 +0,0 @@
-#Tue Aug 21 11:27:48 CDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-internal.default.compliance=user
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=99
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.garbagecollector/META-INF/MANIFEST.MF
deleted file mode 100644
index a2409bd..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,26 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.garbagecollector;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: org.eclipse.core.runtime.preferences,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.eventbus,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.4.0",
- org.osgi.service.prefs;version="1.1.0",
- org.osgi.util.tracker;version="1.3.3"
-Bundle-Activator: org.eclipse.equinox.internal.p2.garbagecollector.GCActivator
-Export-Package: org.eclipse.equinox.internal.p2.garbagecollector;x-friends:="org.eclipse.equinox.p2.touchpoint.eclipse"
-Eclipse-LazyStart: true
-Require-Bundle: org.eclipse.equinox.p2.engine,
- org.eclipse.osgi;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.equinox.registry;bundle-version="[3.4.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/about.html b/bundles/org.eclipse.equinox.p2.garbagecollector/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/build.properties b/bundles/org.eclipse.equinox.p2.garbagecollector/build.properties
deleted file mode 100644
index f2c9998..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               schema/,\
-               about.html,\
-               plugin.properties
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/plugin.properties b/bundles/org.eclipse.equinox.p2.garbagecollector/plugin.properties
deleted file mode 100644
index a38f409..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Provisioning Garbage Collector
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/plugin.xml b/bundles/org.eclipse.equinox.p2.garbagecollector/plugin.xml
deleted file mode 100644
index ea8401c..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/plugin.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="marksetproviders" name="Garbage Collector" schema="schema/GarbageCollector.exsd"/>
-   
-	<!--<extension
-			point="org.eclipse.equinox.p2.rootsetproviders"
-			id="RootSetTest">
-			<run 
-				class="org.eclipse.equinox.p2.garbagecollector.test.RootSetTest"/>
-	</extension>-->
-	
-	 <!--<extension
-	point="org.eclipse.equinox.p2.marksetproviders"
-	id="TestProvider">
-	<run 
-		class="org.eclipse.equinox.p2.garbagecollector.test.MarkSetProviderTest"/>
-</extension>-->
-	
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/schema/GarbageCollector.exsd b/bundles/org.eclipse.equinox.p2.garbagecollector/schema/GarbageCollector.exsd
deleted file mode 100644
index be43922..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/schema/GarbageCollector.exsd
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.equinox.p2.garbagecollector">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.equinox.p2.garbagecollector" id="marksetproviders" name="Profile-based mark set providers"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="run"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="run">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.equinox.p2.garbagecollector.IMarkSetProvider"/>
-               </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>
-
-
-</schema>
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/CoreGarbageCollector.java b/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/CoreGarbageCollector.java
deleted file mode 100644
index cf0eb70..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/CoreGarbageCollector.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.garbagecollector;
-
-import org.eclipse.equinox.internal.p2.core.helpers.Tracing;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * Given a MarkSet, the CoreGarbageCollector removes any IArtifactDescriptors which
- * are not mapped to be an IArtifactKey in the MarkSet.
- */
-public class CoreGarbageCollector {
-
-	/**
-	 * When set to true, information will be logged every time an artifact is removed 
-	 */
-	private static boolean debugMode = false;
-
-	/**
-	 * Given a list of IArtifactKeys and an IArtifactRepository, removes all artifacts
-	 * in aRepository that are not mapped to by an IArtifactKey in markSet
-	 */
-	public synchronized void clean(IArtifactKey[] markSet, IArtifactRepository aRepository) {
-		IArtifactKey[] repositoryKeys = aRepository.getArtifactKeys();
-		for (int j = 0; j < repositoryKeys.length; j++) {
-			boolean artifactIsActive = false;
-			for (int k = 0; k < markSet.length; k++) {
-				if (repositoryKeys[j].equals(markSet[k])) {
-					artifactIsActive = true;
-					break;
-				}
-			}
-			if (!artifactIsActive) {
-				aRepository.removeDescriptor(repositoryKeys[j]);
-				if (debugMode) {
-					Tracing.debug("Key removed:" + repositoryKeys[j]); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	/*
-	 * If set to true, debug mode will log information about each artifact deleted by the CoreGarbageCollector
-	 * @param inDebugMode
-	 */
-	public static void setDebugMode(boolean inDebugMode) {
-		debugMode = inDebugMode;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GCActivator.java b/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GCActivator.java
deleted file mode 100644
index 8ddcdc3..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GCActivator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.garbagecollector;
-
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.preferences.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.SynchronousProvisioningListener;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.osgi.service.debug.DebugOptions;
-import org.osgi.framework.*;
-import org.osgi.service.prefs.Preferences;
-
-public class GCActivator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.garbagecollector"; //$NON-NLS-1$
-	public static final String GC_ENABLED = "gc_enabled"; //$NON-NLS-1$
-	private static final String DEBUG_STRING = GCActivator.ID + "/debug"; //$NON-NLS-1$
-	private static final boolean DEFAULT_DEBUG = false;
-
-	static BundleContext context;
-
-	private SynchronousProvisioningListener busListener;
-
-	static Object getService(BundleContext ctx, String name) {
-		ServiceReference reference = ctx.getServiceReference(name);
-		if (reference == null)
-			return null;
-		Object result = ctx.getService(reference);
-		ctx.ungetService(reference);
-		return result;
-	}
-
-	public void start(BundleContext inContext) throws Exception {
-		GCActivator.context = inContext;
-		DebugOptions debug = (DebugOptions) getService(inContext, DebugOptions.class.getName());
-		if (debug != null) {
-			CoreGarbageCollector.setDebugMode(debug.getBooleanOption(DEBUG_STRING, DEFAULT_DEBUG));
-		}
-		registerGCTrigger();
-	}
-
-	//	Register the listener used to trigger the GC.
-	private void registerGCTrigger() {
-		IProvisioningEventBus eventBus = (IProvisioningEventBus) getService(GCActivator.context, IProvisioningEventBus.SERVICE_NAME);
-		if (eventBus == null) {
-			LogHelper.log(new Status(IStatus.ERROR, GCActivator.ID, Messages.Missing_bus));
-			return;
-		}
-		eventBus.addListener(busListener = new SynchronousProvisioningListener() {
-			//The GC is triggered when an uninstall event occured during a "transaction" and the transaction is committed.   
-			private boolean uninstallEventOccurred = false;
-
-			public void notify(EventObject o) {
-				if (o instanceof InstallableUnitEvent) {
-					InstallableUnitEvent event = (InstallableUnitEvent) o;
-					if (event.isUninstall() && event.isPost()) {
-						uninstallEventOccurred = true;
-					}
-				} else if (o instanceof CommitOperationEvent) {
-					if (uninstallEventOccurred == true) {
-						CommitOperationEvent event = (CommitOperationEvent) o;
-						if (getBooleanPreference(GC_ENABLED, true)) {
-							new GarbageCollector().runGC(event.getProfile());
-						}
-						uninstallEventOccurred = false;
-					}
-				} else if (o instanceof RollbackOperationEvent) {
-					uninstallEventOccurred = false;
-				}
-			}
-		});
-	}
-
-	protected boolean getBooleanPreference(String key, boolean defaultValue) {
-		IPreferencesService prefService = (IPreferencesService) getService(context, IPreferencesService.class.getName());
-		if (prefService == null)
-			return defaultValue;
-		List nodes = new ArrayList();
-		// todo we should look in the instance scope as well but have to be careful that the instance location has been set
-		nodes.add(new ConfigurationScope().getNode(ID));
-		nodes.add(new DefaultScope().getNode(ID));
-		return Boolean.valueOf(prefService.get(key, Boolean.toString(defaultValue), (Preferences[]) nodes.toArray(new Preferences[nodes.size()]))).booleanValue();
-	}
-
-	private void unregisterGCTrigger() {
-		IProvisioningEventBus eventBus = (IProvisioningEventBus) getService(GCActivator.context, IProvisioningEventBus.SERVICE_NAME);
-		if (eventBus != null && busListener != null)
-			eventBus.removeListener(busListener);
-	}
-
-	public void stop(BundleContext inContext) throws Exception {
-		unregisterGCTrigger();
-		GCActivator.context = null;
-	}
-
-	public static BundleContext getContext() {
-		return context;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GarbageCollector.java b/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GarbageCollector.java
deleted file mode 100644
index c0f0476..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/GarbageCollector.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.garbagecollector;
-
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * The main control point for the p2 garbage collector.  Takes a Profile and runs the CoreGarbageCollector with the
- * appropriate MarkSets for the repositories used by that Profile.
- * 
- * Takes the profile passed in and creates a set (markSet) that maps the artifact repositories it uses to the
- * artifact keys its IUs hold.  This is done by getting MarkSets from all registered IMarkSetProviders.
- * 
- * Then, the MarkSets are obtained for every other registered Profile in a similar fashion.  Each MarkSet is
- * checked to see if its artifact repository is already a key in markSet.  If so, that MarkSet's artifact keys 
- * are added to the list that is mapped to by the artifact repository. 
- */
-public class GarbageCollector {
-	private static final String ATTRIBUTE_CLASS = "class"; //$NON-NLS-1$
-	private static final String PT_MARKSET = GCActivator.ID + ".marksetproviders"; //$NON-NLS-1$
-
-	/**
-	 * Maps IArtifactRepository objects to their respective "marked set" of IArtifactKeys
-	 */
-	private Map markSet;
-
-	public void runGC(IProfile profile) {
-		markSet = new HashMap();
-		if (!traverseMainProfile(profile))
-			return;
-
-		//Complete each MarkSet with the MarkSets provided by all of the other registered Profiles
-		traverseRegisteredProfiles();
-
-		//Run the GC on each MarkSet
-		invokeCoreGC();
-	}
-
-	private boolean traverseMainProfile(IProfile profile) {
-		IExtensionRegistry registry = RegistryFactory.getRegistry();
-		IConfigurationElement[] configElts = registry.getConfigurationElementsFor(PT_MARKSET);
-
-		//First we collect all repos and keys for the profile being GC'ed
-		for (int i = 0; i < configElts.length; i++) {
-			if (!(configElts[i].getName().equals("run"))) { //$NON-NLS-1$
-				continue;
-			}
-			IConfigurationElement runAttribute = configElts[i];
-			if (runAttribute == null) {
-				continue;
-			}
-
-			contributeMarkSets(runAttribute, profile, true);
-		}
-		return true;
-	}
-
-	private void invokeCoreGC() {
-		Iterator keyIterator = markSet.keySet().iterator();
-		while (keyIterator.hasNext()) {
-			IArtifactRepository nextRepo = (IArtifactRepository) keyIterator.next();
-			IArtifactKey[] keys = (IArtifactKey[]) ((Collection) markSet.get(nextRepo)).toArray(new IArtifactKey[0]);
-			MarkSet aMarkSet = new MarkSet(keys, nextRepo);
-			new CoreGarbageCollector().clean(aMarkSet.getKeys(), aMarkSet.getRepo());
-		}
-	}
-
-	private void traverseRegisteredProfiles() {
-		IExtensionRegistry registry = RegistryFactory.getRegistry();
-		IConfigurationElement[] configElts = registry.getConfigurationElementsFor(PT_MARKSET);
-		for (int i = 0; i < configElts.length; i++) {
-			if (!(configElts[i].getName().equals("run"))) { //$NON-NLS-1$
-				continue;
-			}
-			IConfigurationElement runAttribute = configElts[i];
-			if (runAttribute == null) {
-				continue;
-			}
-
-			IProfileRegistry profileRegistry = (IProfileRegistry) GCActivator.getService(GCActivator.getContext(), IProfileRegistry.class.getName());
-			if (profileRegistry == null)
-				return;
-			IProfile[] registeredProfiles = profileRegistry.getProfiles();
-
-			for (int j = 0; j < registeredProfiles.length; j++) {
-				contributeMarkSets(runAttribute, registeredProfiles[j], false);
-			}
-		}
-	}
-
-	private class ParameterizedSafeRunnable implements ISafeRunnable {
-		IConfigurationElement cfg;
-		IProfile aProfile;
-		MarkSet[] aProfileMarkSets;
-
-		public ParameterizedSafeRunnable(IConfigurationElement runtAttribute, IProfile profile) {
-			cfg = runtAttribute;
-			aProfile = profile;
-		}
-
-		public void handleException(Throwable exception) {
-			LogHelper.log(new Status(IStatus.ERROR, GCActivator.ID, Messages.Error_in_extension, exception));
-		}
-
-		public void run() throws Exception {
-			IMarkSetProvider aMarkSetProvider = (IMarkSetProvider) cfg.createExecutableExtension(ATTRIBUTE_CLASS);
-			if (aMarkSetProvider == null) {
-				aProfileMarkSets = null;
-				return;
-			}
-			aProfileMarkSets = aMarkSetProvider.getMarkSets(aProfile);
-		}
-
-		public MarkSet[] getResult() {
-			return aProfileMarkSets;
-		}
-	}
-
-	private void contributeMarkSets(IConfigurationElement runAttribute, IProfile profile, boolean addRepositories) {
-		ParameterizedSafeRunnable providerExecutor = new ParameterizedSafeRunnable(runAttribute, profile);
-		SafeRunner.run(providerExecutor);
-		MarkSet[] aProfileMarkSets = providerExecutor.getResult();
-		if (aProfileMarkSets[0] == null)
-			return;
-
-		for (int i = 0; i < aProfileMarkSets.length; i++) {
-			if (aProfileMarkSets[i] == null) {
-				continue;
-			}
-
-			for (int j = 0; j < aProfileMarkSets.length; j++) {
-				if (aProfileMarkSets[j] == null) {
-					continue;
-				}
-				Collection keys = (Collection) markSet.get(aProfileMarkSets[j].getRepo());
-				if (keys == null) {
-					if (addRepositories) {
-						keys = new HashSet();
-						markSet.put(aProfileMarkSets[j].getRepo(), keys);
-						addKeys(keys, aProfileMarkSets[j].getKeys());
-					}
-				} else {
-					addKeys(keys, aProfileMarkSets[j].getKeys());
-				}
-			}
-		}
-	}
-
-	private void addKeys(Collection keyList, IArtifactKey[] keyArray) {
-		for (int i = 0; i < keyArray.length; i++)
-			keyList.add(keyArray[i]);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/IMarkSetProvider.java b/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/IMarkSetProvider.java
deleted file mode 100644
index 3bf2004..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/IMarkSetProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.garbagecollector;
-
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-
-/** 
- * Any class which declares itself as an extension to the org.eclipse.equinox.internal.p2.garbagecollector.marksetproviders
- * extension point must implement this interface.  Given a Profile, implementors will need to provide an array of
- * MarkSet objects, each of which should contain an IArtifactRepository and the IArtifactKeys used by the given
- * Profile.
- */
-public interface IMarkSetProvider {
-
-	/**
-	 * Returns a MarkSet for each bundle pool used by a Profile p.  The MarkSet will contain
-	 * all of the IArtifactKeys found in p, as well as the IArtifactRepository over which the
-	 * root set of keys is being created.
-	 * @param profile A profile whose ArtifactRepositories require a garbage collection
-	 * @return An array of MarkSet object(s) containing p's IArtifactRepository and its root set of IArtifactKeys
-	 */
-	public MarkSet[] getMarkSets(IProfile profile);
-
-	/**
-	 * Returns the IArtifactRepository for which this IMarkSetProvider provides a MarkSet.
-	 * @param p The Profile whose IArtifactRepository is required
-	 * @return The IArtifactRepository for which this IMarkSetProvider provides a MarkSet.
-	 */
-	public IArtifactRepository getRepository(IProfile p);
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/MarkSet.java b/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/MarkSet.java
deleted file mode 100644
index d8b2446..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/MarkSet.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.garbagecollector;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-/**
- * Wrapper class used to store an IArtifactRepository and its root set of IArtifactKeys.
- */
-public class MarkSet {
-
-	/**
-	 * The root set for repo.  This is the set of keys that currently map to an artifact in repo.
-	 */
-	private IArtifactKey[] keys;
-
-	/**
-	 * The ArtifactRepository for which a root set is being stored.
-	 */
-	private IArtifactRepository repo;
-
-	public MarkSet(IArtifactKey[] inKeys, IArtifactRepository inRepo) {
-		Assert.isNotNull(inKeys);
-		Assert.isNotNull(inRepo);
-		keys = inKeys;
-		repo = inRepo;
-	}
-
-	public IArtifactKey[] getKeys() {
-		return keys;
-	}
-
-	public IArtifactRepository getRepo() {
-		return repo;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/Messages.java b/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/Messages.java
deleted file mode 100644
index cd0fea7..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/Messages.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.garbagecollector;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.garbagecollector.messages"; //$NON-NLS-1$
-
-	public static String Error_in_extension;
-	public static String Missing_bus;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/messages.properties b/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/messages.properties
deleted file mode 100644
index 1862311..0000000
--- a/bundles/org.eclipse.equinox.p2.garbagecollector/src/org/eclipse/equinox/internal/p2/garbagecollector/messages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Error_in_extension=An error occurred while calling to an IMarkSetProvider.
-Missing_bus=ProvisioningEventBus service could not be obtained, CoreGarbageCollector will not function properly.
diff --git a/bundles/org.eclipse.equinox.p2.installer/.classpath b/bundles/org.eclipse.equinox.p2.installer/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.installer/.project b/bundles/org.eclipse.equinox.p2.installer/.project
deleted file mode 100644
index eab7f40..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.installer</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 99a0b3d..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,341 +0,0 @@
-#Thu Oct 11 16:46:31 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index a14e009..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,59 +0,0 @@
-#Thu Oct 11 16:54:11 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=99
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.installer/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.installer/META-INF/MANIFEST.MF
deleted file mode 100644
index 0711f7e..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.installer;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.installer.InstallerActivator
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.osgi,
- org.eclipse.equinox.app,
- org.eclipse.equinox.common,
- org.eclipse.equinox.p2.director,
- org.eclipse.equinox.p2.metadata.repository,
- org.eclipse.equinox.p2.metadata,
- org.eclipse.equinox.p2.engine,
- org.eclipse.equinox.p2.core,
- org.eclipse.equinox.p2.artifact.repository,
- org.eclipse.swt
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.internal.p2.installer;x-internal:=true,
- org.eclipse.equinox.internal.p2.installer.ui;x-internal:=true,
- org.eclipse.equinox.internal.provisional.p2.installer
diff --git a/bundles/org.eclipse.equinox.p2.installer/README.txt b/bundles/org.eclipse.equinox.p2.installer/README.txt
deleted file mode 100644
index bafccac..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
- This is a simple install application that demonstrates use of p2.  See the class
- comment on the InstallDescription class for details.
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.installer/about.html b/bundles/org.eclipse.equinox.p2.installer/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.installer/build.properties b/bundles/org.eclipse.equinox.p2.installer/build.properties
deleted file mode 100644
index 913dc5f..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               product_lg.gif,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.installer/config.ini b/bundles/org.eclipse.equinox.p2.installer/config.ini
deleted file mode 100644
index 20755a3..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/config.ini
+++ /dev/null
@@ -1,90 +0,0 @@
-# Eclipse runtime configuration file
-# This file contains a number of key/value pairs that are merged into the 
-# System properties on system startup.  The values control the way the 
-# runtime is structured and runs.
-
-# Note:  Only platform:/base/ and file: URLs are supported.  In general the 
-# URLs given may include a version number (e.g., .../location_1.2.3).  
-# If a version is not specified, the system binds
-# to the location which matches exactly or to the versioned location with the
-# latest version number.  If a version number is given then only exact matches
-# are considered.
-
-# The URL for the runtime entry point.  The default value is
-# platform:/base/plugins/org.eclipse.osgi 
-#osgi.framework=platform:/base/plugins/org.eclipse.osgi
-
-# The classpath for the framework found at the osgi.framework location.  This 
-# comma-separated list contains either URLs or simple element names.  Simple
-# names are assumed to be relative to the framework's install directory.  
-# Typically this value need not be set as it is initialized by the framework itself.
-# Version match searching is not done for URLs listed here.
-#osgi.frameworkClassPath =
-
-# The comma-separated list of locations to search for the splash screen file (splash.bmp).
-# For each list element a subdirectory structure based on the pattern nl/<locale> is searched.
-# The system binds to the first matching file.  There is no default value.
-#osgi.splashPath=
-
-# The location of the splash screen file.  If this value is set at system startup it is used 
-# in favour of the osgi.splashPath searching outlined above.  If the value is not set 
-# the searching is done and this key is bound to the result of the search.
-#osgi.splashLocation =
-
-# The comma-separated list of bundles which are automatically installed and optionally started
-# once the system is up and running.  Each entry if of the form
-#     <URL | simple bundle location>[@ [<startlevel>] [":start"]]
-# If the startlevel is omitted then the framework will use the default start level for the bundle.
-# If the "start" tag is added then the bundle will be marked as started after being installed.
-# Simple bundle locations are interpreted as relative to the framework's parent directory.
-# The startlevel indicates the OSGi start level at which the bundle should run.
-osgi.bundles=\
-	org.eclipse.core.jobs,\
-	org.eclipse.ecf,\
-	org.eclipse.ecf.filetransfer,\
-	org.eclipse.ecf.identity,\
-	org.eclipse.ecf.provider.filetransfer,\
-	org.eclipse.equinox.app@start,\
-	org.eclipse.equinox.common,\
-	org.eclipse.equinox.frameworkadmin,\
-	org.eclipse.equinox.frameworkadmin.equinox@start,\
-	org.eclipse.equinox.preferences,\
-	org.eclipse.equinox.p2.artifact.repository,\
-	org.eclipse.equinox.p2.core,\
-	org.eclipse.equinox.p2.director,\
-	org.eclipse.equinox.p2.engine,\
-	org.eclipse.equinox.p2.exemplarysetup,\
-	org.eclipse.equinox.p2.garbagecollector,\
-	org.eclipse.equinox.p2.installer,\
-	org.eclipse.equinox.p2.metadata,\
-	org.eclipse.equinox.p2.metadata.repository,\
-	org.eclipse.equinox.p2.touchpoint.eclipse,\
-	org.eclipse.equinox.p2.touchpoint.natives,\
-	org.eclipse.equinox.registry,\
-	org.eclipse.equinox.simpleconfigurator,\
-	org.eclipse.equinox.simpleconfigurator.manipulator@start,\
-	org.eclipse.osgi.services,\
-	org.eclipse.swt,\
-	org.eclipse.swt.win32.win32.x86,\
-	org.eclipse.swt.gtk.linux.x86,\
-	org.eclipse.swt.carbon.macosx,\
-	org.sat4j.core,\
-	org.sat4j.pb
-
-org.eclipse.update.reconcile=false
-
-# The product to run.  A given Eclipse configuration may contain many products.
-# The product identified will supply the branding (window icons, title bar text) etc 
-# as well as define the default application to run.  
-eclipse.product=org.eclipse.equinox.p2.installer.product
-
-# The application to run.  The value specified here is the id of the application extension
-# the runtime will find, instantiate and execute once the system is up.  Note that typically 
-# the identified eclipse.product defines the default application to run.
-#eclipse.application=
-
-# The build identifier
-eclipse.buildId=@build@
-
-# End of file marker - must be here
-eof=eof
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.installer/installer.product b/bundles/org.eclipse.equinox.p2.installer/installer.product
deleted file mode 100644
index 9804d0f..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/installer.product
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="RCP Product" id="org.eclipse.equinox.p2.installer.product" application="org.eclipse.equinox.p2.installer.application" useFeatures="false">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         P2 Installer
-      </text>
-   </aboutInfo>
-
-   <configIni use="custom" path="/org.eclipse.equinox.p2.installer/config.ini"/>
-
-   <launcherArgs>
-      <vmArgs>-Dorg.eclipse.equinox.p2.installDescription=http://update.eclipse.org/testUpdates/sdk-installer.properties</vmArgs>
-   </launcherArgs>
-
-   <windowImages/>
-
-   <splash
-      location="org.eclipse.equinox.p2.installer" />
-   <launcher name="p2installer">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.ecf"/>
-      <plugin id="org.eclipse.ecf.filetransfer"/>
-      <plugin id="org.eclipse.ecf.identity"/>
-      <plugin id="org.eclipse.ecf.provider.filetransfer"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.frameworkadmin"/>
-      <plugin id="org.eclipse.equinox.frameworkadmin.equinox"/>
-      <plugin id="org.eclipse.equinox.launcher"/>
-      <plugin id="org.eclipse.equinox.launcher.carbon.macosx"/>
-      <plugin id="org.eclipse.equinox.launcher.gtk.linux.x86"/>
-      <plugin id="org.eclipse.equinox.launcher.win32.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.equinox.p2.artifact.repository"/>
-      <plugin id="org.eclipse.equinox.p2.core"/>
-      <plugin id="org.eclipse.equinox.p2.director"/>
-      <plugin id="org.eclipse.equinox.p2.engine"/>
-      <plugin id="org.eclipse.equinox.p2.exemplarysetup"/>
-      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
-      <plugin id="org.eclipse.equinox.p2.installer"/>
-      <plugin id="org.eclipse.equinox.p2.metadata"/>
-      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
-      <plugin id="org.eclipse.equinox.p2.touchpoint.natives"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
-      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.services"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.carbon.macosx"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
-      <plugin id="org.sat4j.core"/>
-      <plugin id="org.sat4j.pb"/>
-   </plugins>
-
-</product>
diff --git a/bundles/org.eclipse.equinox.p2.installer/plugin.properties b/bundles/org.eclipse.equinox.p2.installer/plugin.properties
deleted file mode 100644
index 43f2401..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Installer
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.installer/plugin.xml b/bundles/org.eclipse.equinox.p2.installer/plugin.xml
deleted file mode 100644
index da9f71b..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/plugin.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.equinox.internal.p2.installer.InstallApplication">
-         </run>
-      </application>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.equinox.p2.installer.application"
-            name="RCP Product">
-         <property
-               name="appName"
-               value="RCP Product">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-         <property
-               name="aboutText"
-               value="P2 Installer">
-         </property>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.installer/product_lg.gif b/bundles/org.eclipse.equinox.p2.installer/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.installer/sdk-installer.properties b/bundles/org.eclipse.equinox.p2.installer/sdk-installer.properties
deleted file mode 100644
index 7430422..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/sdk-installer.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.p2.metadata=http://update.eclipse.org/eclipse/testUpdates/
-eclipse.p2.artifacts=http://update.eclipse.org/eclipse/testUpdates/
-eclipse.p2.flavor=tooling
-eclipse.p2.profileName=Eclipse SDK
-eclipse.p2.launcherName=eclipse
-eclipse.p2.rootId=sdk
-eclipse.p2.autoStart=true
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/HeadlessInstallAdvisor.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/HeadlessInstallAdvisor.java
deleted file mode 100644
index d34d10c..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/HeadlessInstallAdvisor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.installer.*;
-
-/**
- * A headless install advisor that prints everything to a log.
- */
-public class HeadlessInstallAdvisor extends InstallAdvisor {
-	class HeadlessProgressMonitor implements IProgressMonitor {
-		private boolean canceled;
-
-		public void beginTask(String name, int totalWork) {
-			setResult(new Status(IStatus.INFO, InstallerActivator.PI_INSTALLER, name));
-		}
-
-		public void done() {
-			//nothing to do
-		}
-
-		public void internalWorked(double work) {
-			//nothing to do
-		}
-
-		public boolean isCanceled() {
-			return canceled;
-		}
-
-		public void setCanceled(boolean value) {
-			canceled = value;
-		}
-
-		public void setTaskName(String name) {
-			setResult(new Status(IStatus.INFO, InstallerActivator.PI_INSTALLER, name));
-		}
-
-		public void subTask(String name) {
-			//nothing to do
-		}
-
-		public void worked(int work) {
-			//nothing to do
-		}
-	}
-
-	public IStatus performInstall(IInstallOperation operation) {
-		return operation.install(new HeadlessProgressMonitor());
-	}
-
-	public InstallDescription prepareInstallDescription(InstallDescription description) {
-		// The headless advisor has no further input on the install location.
-		return description;
-	}
-
-	public boolean promptForLaunch(InstallDescription description) {
-		return false;
-	}
-
-	public void setResult(IStatus status) {
-		LogHelper.log(status);
-	}
-
-	public void start() {
-		//nothing to do
-	}
-
-	public void stop() {
-		//nothing to do
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallApplication.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallApplication.java
deleted file mode 100644
index e3b149d..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallApplication.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.installer.ui.SWTInstallAdvisor;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.installer.InstallAdvisor;
-import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-/**
- * This is a simple installer application built using P2.  The application must be given
- * an "install description" as a command line argument or system property 
- * ({@link #SYS_PROP_INSTALL_DESCRIPTION}).  The application reads this
- * install description, and looks for an existing profile in the local install registry that
- * matches it.  If no profile is found, it creates a new profile, and installs the root
- * IU in the install description into the profile. It may then launch the installed application,
- * depending on the specification in the install description.  If an existing profile is found,
- * the application instead performs an update on the existing profile with the new root
- * IU in the install description. Thus, an installed application can be updated by dropping
- * in a new install description file, and re-running this installer application.
- */
-public class InstallApplication implements IApplication {
-	/**
-	 * A property whose value is the URL of an install description. An install description is a file
-	 * that contains all the information required to complete the install.
-	 */
-	private static final String SYS_PROP_INSTALL_DESCRIPTION = "org.eclipse.equinox.p2.installDescription"; //$NON-NLS-1$
-
-	/**
-	 * The install advisor. This field is non null while the install application is running.
-	 */
-	private InstallAdvisor advisor;
-
-	/**
-	 * Throws an exception of severity error with the given error message.
-	 */
-	private static CoreException fail(String message) {
-		return fail(message, null);
-	}
-
-	/**
-	 * Throws an exception of severity error with the given error message.
-	 */
-	private static CoreException fail(String message, Throwable throwable) {
-		return new CoreException(new Status(IStatus.ERROR, InstallerActivator.PI_INSTALLER, message, throwable));
-	}
-
-	/**
-	 * Loads the install description, filling in any missing data if needed.
-	 */
-	private InstallDescription computeInstallDescription() throws CoreException {
-		InstallDescription description = fetchInstallDescription(SubMonitor.convert(null));
-		return advisor.prepareInstallDescription(description);
-	}
-
-	private InstallAdvisor createInstallContext() {
-		//TODO create an appropriate advisor depending on whether headless or GUI install is desired.
-		InstallAdvisor result = new SWTInstallAdvisor();
-		result.start();
-		return result;
-	}
-
-	/**
-	 * Fetch and return the install description to be installed.
-	 */
-	private InstallDescription fetchInstallDescription(SubMonitor monitor) throws CoreException {
-		String site = System.getProperty(SYS_PROP_INSTALL_DESCRIPTION);
-		if (site == null)
-			throw fail(Messages.App_NoSite);
-		try {
-			URL siteURL = new URL(site);
-			return InstallDescriptionParser.loadFromProperties(siteURL.openStream(), monitor);
-		} catch (MalformedURLException e) {
-			throw fail(Messages.App_InvalidSite + site, e);
-		} catch (IOException e) {
-			throw fail(Messages.App_InvalidSite + site, e);
-		}
-	}
-
-	private IStatus getStatus(final Exception failure) {
-		Throwable cause = failure;
-		//unwrap target exception if applicable
-		if (failure instanceof InvocationTargetException) {
-			cause = ((InvocationTargetException) failure).getTargetException();
-			if (cause == null)
-				cause = failure;
-		}
-		if (cause instanceof CoreException)
-			return ((CoreException) cause).getStatus();
-		return new Status(IStatus.ERROR, InstallerActivator.PI_INSTALLER, Messages.App_Error, cause);
-	}
-
-	private void launchProduct(InstallDescription description) throws CoreException {
-		IPath installLocation = description.getInstallLocation();
-		IPath toRun = installLocation.append(description.getLauncherName());
-		try {
-			Runtime.getRuntime().exec(toRun.toString(), null, installLocation.toFile());
-		} catch (IOException e) {
-			throw fail(Messages.App_LaunchFailed + toRun, e);
-		}
-		//wait a few seconds to give the user a chance to read the message
-		try {
-			Thread.sleep(3000);
-		} catch (InterruptedException e) {
-			//ignore
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext appContext) {
-		try {
-			appContext.applicationRunning();
-			advisor = createInstallContext();
-			//fetch description of what to install
-			InstallDescription description = null;
-			try {
-				description = computeInstallDescription();
-				startRequiredBundles(description);
-				//perform long running install operation
-				InstallUpdateProductOperation operation = new InstallUpdateProductOperation(InstallerActivator.getDefault().getContext(), description);
-				IStatus result = advisor.performInstall(operation);
-				if (!result.isOK()) {
-					LogHelper.log(result);
-					advisor.setResult(result);
-					return IApplication.EXIT_OK;
-				}
-				//just exit after a successful update
-				if (!operation.isFirstInstall())
-					return IApplication.EXIT_OK;
-				if (canAutoStart(description))
-					launchProduct(description);
-				else {
-					//notify user that the product was installed
-					//TODO present the user an option to immediately start the product
-					advisor.setResult(result);
-				}
-			} catch (OperationCanceledException e) {
-				advisor.setResult(Status.CANCEL_STATUS);
-			} catch (Exception e) {
-				IStatus error = getStatus(e);
-				advisor.setResult(error);
-				LogHelper.log(error);
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			advisor.stop();
-		}
-	}
-
-	/**
-	 * Returns whether the configuration described by the given install
-	 * description can be started automatically.
-	 */
-	private boolean canAutoStart(InstallDescription description) {
-		if (!description.isAutoStart())
-			return false;
-		//can't start if we don't know launcher name and path
-		if (description.getLauncherName() == null || description.getInstallLocation() == null)
-			return false;
-		return advisor.promptForLaunch(description);
-	}
-
-	/**
-	 * Starts the p2 bundles needed to continue with the install.
-	 */
-	private void startRequiredBundles(InstallDescription description) throws CoreException {
-		IPath installLocation = description.getInstallLocation();
-		if (installLocation == null)
-			throw fail(Messages.App_NoInstallLocation, null);
-		//set agent location if specified
-		IPath agentLocation = description.getAgentLocation();
-		if (agentLocation != null) {
-			String agentArea = System.getProperty("eclipse.p2.data.area"); //$NON-NLS-1$
-			if (agentArea == null || agentArea.length() == 0)
-				System.setProperty("eclipse.p2.data.area", agentLocation.toOSString()); //$NON-NLS-1$ 
-		}
-		//set bundle pool location if specified
-		IPath bundleLocation = description.getBundleLocation();
-		if (bundleLocation != null && System.getProperty(IProfile.PROP_CACHE) == null)
-			System.setProperty(IProfile.PROP_CACHE, bundleLocation.toString());
-
-		//start up p2
-		try {
-			InstallerActivator.getDefault().getBundle("org.eclipse.equinox.p2.exemplarysetup").start(Bundle.START_TRANSIENT); //$NON-NLS-1$
-		} catch (BundleException e) {
-			throw fail(Messages.App_FailedStart, e);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		//note this method can be called from another thread
-		InstallAdvisor tempContext = advisor;
-		if (tempContext != null) {
-			tempContext.stop();
-			advisor = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java
deleted file mode 100644
index 990f825..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription;
-import org.osgi.framework.Version;
-
-/**
- * This class is responsible for loading install descriptions from a stream.
- */
-public class InstallDescriptionParser {
-	private static final String PROP_AGENT_LOCATION = "eclipse.p2.agentLocation"; //$NON-NLS-1$
-	private static final String PROP_ARTIFACT_REPOSITORY = "eclipse.p2.artifacts";//$NON-NLS-1$
-	private static final String PROP_BUNDLE_LOCATION = "eclipse.p2.bundleLocation";//$NON-NLS-1$
-	private static final String PROP_INSTALL_LOCATION = "eclipse.p2.installLocation";//$NON-NLS-1$
-	private static final String PROP_IS_AUTO_START = "eclipse.p2.autoStart";//$NON-NLS-1$
-	private static final String PROP_LAUNCHER_NAME = "eclipse.p2.launcherName";//$NON-NLS-1$
-	private static final String PROP_METADATA_REPOSITORY = "eclipse.p2.metadata";//$NON-NLS-1$
-	private static final String PROP_PROFILE_NAME = "eclipse.p2.profileName";//$NON-NLS-1$
-	private static final String PROP_ROOT_ID = "eclipse.p2.rootId";//$NON-NLS-1$
-	private static final String PROP_ROOT_VERSION = "eclipse.p2.rootVersion";//$NON-NLS-1$
-
-	/**
-	 * Loads and returns an install description that is stored in a properties file.
-	 * 
-	 * @param stream The stream to load the install description from. The stream
-	 * will be closed prior to this method returning, whether the description is
-	 * read successfully or not.
-	 */
-	public static InstallDescription loadFromProperties(InputStream stream, SubMonitor monitor) throws IOException {
-		BufferedInputStream in = null;
-		try {
-			Properties properties = new Properties();
-			in = new BufferedInputStream(stream);
-			properties.load(in);
-			InstallDescription description = new InstallDescription(properties.getProperty(PROP_PROFILE_NAME));
-			description.setArtifactRepository(new URL(properties.getProperty(PROP_ARTIFACT_REPOSITORY)));
-			description.setMetadataRepository(new URL(properties.getProperty(PROP_METADATA_REPOSITORY)));
-			description.setAutoStart(Boolean.TRUE.toString().equalsIgnoreCase(properties.getProperty(PROP_IS_AUTO_START)));
-			description.setLauncherName(properties.getProperty(PROP_LAUNCHER_NAME));
-			String locationString = properties.getProperty(PROP_INSTALL_LOCATION);
-			if (locationString != null)
-				description.setInstallLocation(new Path(locationString));
-			locationString = properties.getProperty(PROP_AGENT_LOCATION);
-			if (locationString != null)
-				description.setAgentLocation(new Path(locationString));
-			locationString = properties.getProperty(PROP_BUNDLE_LOCATION);
-			if (locationString != null)
-				description.setBundleLocation(new Path(locationString));
-			description.setRootId(properties.getProperty(PROP_ROOT_ID));
-			String versionString = properties.getProperty(PROP_ROOT_VERSION);
-			Version version = versionString == null ? null : new Version(versionString);
-			description.setRootVersion(version);
-
-			//any remaining properties are profile properties
-			Map profileProperties = new HashMap(properties);
-			profileProperties.remove(PROP_PROFILE_NAME);
-			profileProperties.remove(PROP_ARTIFACT_REPOSITORY);
-			profileProperties.remove(PROP_METADATA_REPOSITORY);
-			profileProperties.remove(PROP_IS_AUTO_START);
-			profileProperties.remove(PROP_LAUNCHER_NAME);
-			profileProperties.remove(PROP_AGENT_LOCATION);
-			profileProperties.remove(PROP_BUNDLE_LOCATION);
-			profileProperties.remove(PROP_ROOT_ID);
-			profileProperties.remove(PROP_ROOT_VERSION);
-			description.setProfileProperties(profileProperties);
-			return description;
-		} finally {
-			safeClose(in);
-		}
-	}
-
-	private static void safeClose(InputStream in) {
-		try {
-			if (in != null)
-				in.close();
-		} catch (IOException e) {
-			//ignore secondary failure during close
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallUpdateProductOperation.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallUpdateProductOperation.java
deleted file mode 100644
index c0fcd51..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallUpdateProductOperation.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer;
-
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.installer.IInstallOperation;
-import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.*;
-
-/**
- * This operation performs installation or update of an Eclipse-based product.
- */
-public class InstallUpdateProductOperation implements IInstallOperation {
-
-	private IArtifactRepositoryManager artifactRepoMan;
-	private BundleContext bundleContext;
-	private IDirector director;
-	private final InstallDescription installDescription;
-	private boolean isInstall = true;
-	private IMetadataRepositoryManager metadataRepoMan;
-	private IProfileRegistry profileRegistry;
-	private IStatus result;
-
-	private ArrayList serviceReferences = new ArrayList();
-
-	public InstallUpdateProductOperation(BundleContext context, InstallDescription description) {
-		this.bundleContext = context;
-		this.installDescription = description;
-	}
-
-	/**
-	 * Determine what top level installable units should be installed by the director
-	 */
-	private IInstallableUnit[] computeUnitsToInstall() throws CoreException {
-		return new IInstallableUnit[] {findUnit(installDescription.getRootId(), installDescription.getRootVersion())};
-	}
-
-	/**
-	 * This profile is being updated; return the units to uninstall from the profile.
-	 */
-	private IInstallableUnit[] computeUnitsToUninstall(IProfile p) {
-		return (IInstallableUnit[]) p.query(InstallableUnitQuery.ANY, new Collector(), null).toArray(IInstallableUnit.class);
-	}
-
-	/**
-	 * Create and return the profile into which units will be installed.
-	 */
-	private IProfile createProfile() {
-		IProfile profile = getProfile();
-		if (profile == null) {
-			Map properties = new HashMap();
-			properties.put(IProfile.PROP_INSTALL_FOLDER, installDescription.getInstallLocation().toString());
-			EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(InstallerActivator.getDefault().getContext(), EnvironmentInfo.class.getName());
-			String env = "osgi.os=" + info.getOS() + ",osgi.ws=" + info.getWS() + ",osgi.arch=" + info.getOSArch(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			properties.put(IProfile.PROP_ENVIRONMENTS, env);
-			properties.putAll(installDescription.getProfileProperties());
-			profile = profileRegistry.addProfile(getProfileId(), properties);
-		}
-		return profile;
-	}
-
-	/**
-	 * Performs the actual product install or update.
-	 */
-	private void doInstall(SubMonitor monitor) throws CoreException {
-		prepareMetadataRepository();
-		prepareArtifactRepository();
-		IProfile p = createProfile();
-		IInstallableUnit[] toInstall = computeUnitsToInstall();
-		monitor.worked(5);
-
-		IStatus s;
-		ProfileChangeRequest request = new ProfileChangeRequest(p);
-		if (isInstall) {
-			monitor.setTaskName(NLS.bind(Messages.Op_Installing, installDescription.getProductName()));
-			request.addInstallableUnits(toInstall);
-			s = director.provision(request, null, monitor.newChild(90));
-		} else {
-			monitor.setTaskName(NLS.bind(Messages.Op_Updating, installDescription.getProductName()));
-			IInstallableUnit[] toUninstall = computeUnitsToUninstall(p);
-			request.removeInstallableUnits(toUninstall);
-			request.addInstallableUnits(toInstall);
-			s = director.provision(request, null, monitor.newChild(90));
-		}
-		if (!s.isOK())
-			throw new CoreException(s);
-	}
-
-	/**
-	 * Returns an exception of severity error with the given error message.
-	 */
-	private CoreException fail(String message) {
-		return fail(message, null);
-	}
-
-	/**
-	 * Returns an exception of severity error with the given error message.
-	 */
-	private CoreException fail(String message, Throwable throwable) {
-		return new CoreException(new Status(IStatus.ERROR, InstallerActivator.PI_INSTALLER, message, throwable));
-	}
-
-	/**
-	 * Finds and returns the installable unit with the given id, and optionally the
-	 * given version.
-	 */
-	private IInstallableUnit findUnit(String id, Version version) throws CoreException {
-		if (id == null)
-			throw fail(Messages.Op_NoId);
-		VersionRange range = VersionRange.emptyRange;
-		if (version != null && !version.equals(Version.emptyVersion))
-			range = new VersionRange(version, true, version, true);
-		Query query = new InstallableUnitQuery(id, range);
-		Collector collector = new Collector();
-		Iterator matches = metadataRepoMan.query(query, collector, null).iterator();
-		//pick the newest match
-		IInstallableUnit newest = null;
-		while (matches.hasNext()) {
-			IInstallableUnit candidate = (IInstallableUnit) matches.next();
-			if (newest == null || (newest.getVersion().compareTo(candidate.getVersion()) < 0))
-				newest = candidate;
-		}
-		if (newest == null)
-			throw fail(Messages.Op_IUNotFound + id);
-		return newest;
-	}
-
-	/**
-	 * Returns the profile being installed into.
-	 */
-	private IProfile getProfile() {
-		return profileRegistry.getProfile(getProfileId());
-	}
-
-	/**
-	 * Returns the id of the profile to use for install/update based on this operation's install description.
-	 */
-	private String getProfileId() {
-		IPath location = installDescription.getInstallLocation();
-		if (location != null)
-			return location.toString();
-		return installDescription.getProductName();
-	}
-
-	/**
-	 * Returns the result of the install operation, or <code>null</code> if
-	 * no install operation has been run.
-	 */
-	public IStatus getResult() {
-		return result;
-	}
-
-	private Object getService(String name) throws CoreException {
-		ServiceReference ref = bundleContext.getServiceReference(name);
-		if (ref == null)
-			throw fail(Messages.Op_NoService + name);
-		Object service = bundleContext.getService(ref);
-		if (service == null)
-			throw fail(Messages.Op_NoServiceImpl + name);
-		serviceReferences.add(ref);
-		return service;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.installer.IInstallOperation#install(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus install(IProgressMonitor pm) {
-		SubMonitor monitor = SubMonitor.convert(pm, Messages.Op_Preparing, 100);
-		try {
-			try {
-				preInstall();
-				isInstall = getProfile() == null;
-				doInstall(monitor);
-				result = new Status(IStatus.OK, InstallerActivator.PI_INSTALLER, isInstall ? Messages.Op_InstallComplete : Messages.Op_UpdateComplete, null);
-				monitor.setTaskName(Messages.Op_Cleanup);
-			} finally {
-				postInstall();
-			}
-		} catch (CoreException e) {
-			result = e.getStatus();
-		} finally {
-			monitor.done();
-		}
-		return result;
-	}
-
-	/**
-	 * Returns whether this operation represents the product being installed
-	 * for the first time, in a new profile.
-	 */
-	public boolean isFirstInstall() {
-		return isInstall;
-	}
-
-	private void postInstall() {
-		for (Iterator it = serviceReferences.iterator(); it.hasNext();) {
-			ServiceReference sr = (ServiceReference) it.next();
-			bundleContext.ungetService(sr);
-		}
-		serviceReferences.clear();
-	}
-
-	private void preInstall() throws CoreException {
-		//obtain required services
-		serviceReferences.clear();
-		director = (IDirector) getService(IDirector.class.getName());
-		metadataRepoMan = (IMetadataRepositoryManager) getService(IMetadataRepositoryManager.class.getName());
-		artifactRepoMan = (IArtifactRepositoryManager) getService(IArtifactRepositoryManager.class.getName());
-		profileRegistry = (IProfileRegistry) getService(IProfileRegistry.class.getName());
-	}
-
-	private void prepareArtifactRepository() throws ProvisionException {
-		URL artifactRepo = installDescription.getArtifactRepository();
-		if (artifactRepo != null)
-			artifactRepoMan.loadRepository(artifactRepo, null);
-	}
-
-	private void prepareMetadataRepository() throws ProvisionException {
-		URL metadataRepo = installDescription.getMetadataRepository();
-		if (metadataRepo != null)
-			metadataRepoMan.loadRepository(metadataRepo, null);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallerActivator.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallerActivator.java
deleted file mode 100644
index 57a66c2..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallerActivator.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer;
-
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class InstallerActivator implements BundleActivator {
-	// The plug-in ID
-	public static final String PI_INSTALLER = "org.eclipse.equinox.p2.installer"; //$NON-NLS-1$
-	// The shared instance
-	private static InstallerActivator plugin;
-
-	private BundleContext context;
-
-	private PackageAdmin packageAdmin = null;
-
-	private ServiceReference packageAdminRef = null;
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static InstallerActivator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * The constructor
-	 */
-	public InstallerActivator() {
-		//nothing to do
-	}
-
-	public Bundle getBundle(String symbolicName) {
-		if (packageAdmin == null)
-			return null;
-		Bundle[] bundles = packageAdmin.getBundles(symbolicName, null);
-		if (bundles == null)
-			return null;
-		//Return the first bundle that is not installed or uninstalled
-		for (int i = 0; i < bundles.length; i++) {
-			if ((bundles[i].getState() & (Bundle.INSTALLED | Bundle.UNINSTALLED)) == 0) {
-				return bundles[i];
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the bundle context for this bundle.
-	 * @return the bundle context
-	 */
-	public BundleContext getContext() {
-		return context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext aContext) throws Exception {
-		this.context = aContext;
-		plugin = this;
-		packageAdminRef = context.getServiceReference(PackageAdmin.class.getName());
-		packageAdmin = (PackageAdmin) context.getService(packageAdminRef);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext aContext) throws Exception {
-		context.ungetService(packageAdminRef);
-		packageAdmin = null;
-		packageAdminRef = null;
-		plugin = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/Messages.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/Messages.java
deleted file mode 100644
index 5d44051..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/Messages.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.installer.messages"; //$NON-NLS-1$
-	public static String Advisor_Canceled;
-	public static String Advisor_Preparing;
-	public static String App_Error;
-	public static String App_FailedStart;
-	public static String App_InvalidSite;
-	public static String App_LaunchFailed;
-	public static String App_Launching;
-	public static String App_NoInstallLocation;
-	public static String App_NoSite;
-	public static String Dialog_BrowseButton;
-	public static String Dialog_CancelButton;
-	public static String Dialog_CloseButton;
-	public static String Dialog_ExplainShared;
-	public static String Dialog_ExplainStandalone;
-	public static String Dialog_InstallButton;
-	public static String Dialog_InstalllingProgress;
-	public static String Dialog_InternalError;
-	public static String Dialog_LaunchButton;
-	public static String Dialog_LayoutGroup;
-	public static String Dialog_LocationField;
-	public static String Dialog_LocationLabel;
-	public static String Dialog_LocationPrompt;
-	public static String Dialog_PromptStart;
-	public static String Dialog_SelectLocation;
-	public static String Dialog_SharedButton;
-	public static String Dialog_ShellTitle;
-	public static String Dialog_StandaloneButton;
-	public static String Op_Cleanup;
-	public static String Op_InstallComplete;
-	public static String Op_Installing;
-	public static String Op_IUNotFound;
-	public static String Op_NoId;
-	public static String Op_NoService;
-	public static String Op_NoServiceImpl;
-	public static String Op_Preparing;
-	public static String Op_UpdateComplete;
-	public static String Op_Updating;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		//nothing to do
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/messages.properties b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/messages.properties
deleted file mode 100644
index 051c3fc..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/messages.properties
+++ /dev/null
@@ -1,47 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Advisor_Canceled=Install canceled
-Advisor_Preparing=Preparing to install
-App_Error=An error occurred during installation
-App_FailedStart=Unable to start provisioning infrastructure
-App_InvalidSite=Invalid install site: 
-App_LaunchFailed=Failed to launch the product: 
-App_Launching=Launching {0}
-App_NoInstallLocation=Install failed because the install location was not set
-App_NoSite=No install site provided
-Dialog_BrowseButton=&Browse...
-Dialog_CancelButton=&Cancel
-Dialog_CloseButton=&Close
-Dialog_ExplainShared=In a shared install, common components are stored together, allowing them to be shared across multiple products.
-Dialog_ExplainStandalone=In a stand-alone install, each product is installed in its own directory without any sharing between products
-Dialog_InstallButton=&Install
-Dialog_InstalllingProgress=Installing...
-Dialog_InternalError=An internal error has occurred
-Dialog_LaunchButton=&Launch
-Dialog_LayoutGroup=Layout
-Dialog_LocationField=Location
-Dialog_LocationLabel=Select the product install directory:
-Dialog_LocationPrompt=Select where you want {0} to be installed
-Dialog_PromptStart=Install complete. Do you want to start {0} immediately?
-Dialog_SelectLocation=Select the install location
-Dialog_SharedButton=&Shared install
-Dialog_ShellTitle=Installer
-Dialog_StandaloneButton=Stand-&alone install
-Op_Cleanup=Some final housekeeping
-Op_InstallComplete=Install complete
-Op_Installing=Installing {0}
-Op_IUNotFound=Installable unit not found: 
-Op_NoId=Installable unit id not specified
-Op_NoService=Install requires a service that is not available: 
-Op_NoServiceImpl=Install requires a service implementation that is not available: 
-Op_Preparing=Preparing to install
-Op_UpdateComplete=Update complete
-Op_Updating=Updating {0}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/InstallDialog.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/InstallDialog.java
deleted file mode 100644
index 4f805c5..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/InstallDialog.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer.ui;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.installer.InstallerActivator;
-import org.eclipse.equinox.internal.p2.installer.Messages;
-import org.eclipse.equinox.internal.provisional.p2.installer.IInstallOperation;
-import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * The install wizard that drives the install. This dialog is used for user input
- * prior to the install, progress feedback during the install, and displaying results
- * at the end of the install.
- */
-public class InstallDialog {
-	/**
-	 * A progress monitor implementation that asynchronously updates the progress bar.
-	 */
-	class Monitor implements IProgressMonitor {
-
-		boolean canceled = false, running = false;
-		String subTaskName = ""; //$NON-NLS-1$
-		double totalWork, usedWork;
-
-		public void beginTask(final String name, final int work) {
-			totalWork = work;
-			running = true;
-			update();
-		}
-
-		public void done() {
-			running = false;
-			usedWork = totalWork;
-			update();
-		}
-
-		public void internalWorked(double work) {
-			usedWork = Math.min(usedWork + work, totalWork);
-			update();
-		}
-
-		public boolean isCanceled() {
-			return returnCode == CANCEL;
-		}
-
-		public void setCanceled(boolean value) {
-			returnCode = CANCEL;
-		}
-
-		public void setTaskName(String name) {
-			subTaskName = name == null ? "" : name; //$NON-NLS-1$
-			update();
-		}
-
-		public void subTask(String name) {
-			subTaskName = name == null ? "" : name; //$NON-NLS-1$
-			update();
-		}
-
-		void update() {
-			Display display = getDisplay();
-			if (display == null)
-				return;
-			display.asyncExec(new Runnable() {
-				public void run() {
-					Shell theShell = getShell();
-					if (theShell == null || theShell.isDisposed())
-						return;
-					progressSubTask.setText(shorten(subTaskName));
-					if (progressBar.isDisposed())
-						return;
-					progressBar.setVisible(running);
-					progressBar.setMaximum(1000);
-					progressBar.setMinimum(0);
-					int value = (int) (usedWork / totalWork * 1000);
-					if (progressBar.getSelection() < value)
-						progressBar.setSelection(value);
-				}
-
-				private String shorten(String text) {
-					if (text.length() <= 64)
-						return text;
-					int len = text.length();
-					return text.substring(0, 30) + "..." + text.substring(len - 30, len); //$NON-NLS-1$
-				}
-			});
-		}
-
-		public void worked(int work) {
-			internalWorked(work);
-		}
-	}
-
-	/**
-	 * Encapsulates a result passed from an operation running in a background
-	 * thread to the UI thread.
-	 */
-	static class Result {
-		private boolean done;
-		private IStatus status;
-
-		synchronized void done() {
-			done = true;
-		}
-
-		synchronized void failed(Throwable t) {
-			String msg = Messages.Dialog_InternalError;
-			status = new Status(IStatus.ERROR, InstallerActivator.PI_INSTALLER, msg, t);
-		}
-
-		synchronized IStatus getStatus() {
-			return status;
-		}
-
-		synchronized boolean isDone() {
-			return done;
-		}
-
-		public void setStatus(IStatus status) {
-			this.status = status;
-		}
-	}
-
-	private static final int BUTTON_WIDTH = 100;
-	private static final int CANCEL = 1;
-	private static final int OK = 0;
-
-	private Button cancelButton;
-	private Composite contents;
-	private Button okButton;
-
-	ProgressBar progressBar;
-	Label progressSubTask;
-	Label progressTask;
-
-	int returnCode = -1;
-
-	private Button settingsBrowse;
-	private Label settingsExplain;
-	private Composite settingsGroup;
-	private Text settingsLocation;
-	private Label settingsLocationLabel;
-	private Button settingsShared;
-	private Button settingsStandalone;
-
-	private Shell shell;
-
-	private boolean waitingForClose = false;
-
-	/**
-	 * Creates and opens a progress monitor dialog.
-	 */
-	public InstallDialog() {
-		createShell();
-		progressTask = new Label(contents, SWT.WRAP | SWT.LEFT);
-		progressTask.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		createInstallSettingsControls();
-		createProgressControls();
-		createButtonBar();
-
-		shell.layout();
-		shell.open();
-	}
-
-	protected void browsePressed() {
-		DirectoryDialog dirDialog = new DirectoryDialog(shell);
-		dirDialog.setMessage(Messages.Dialog_SelectLocation);
-		String location = dirDialog.open();
-		if (location == null)
-			location = ""; //$NON-NLS-1$
-		settingsLocation.setText(location);
-		validateInstallSettings();
-	}
-
-	protected void buttonPressed(int code) {
-		returnCode = code;
-		if (waitingForClose)
-			close();
-		//grey out the cancel button to indicate the request was heard
-		if (code == CANCEL && !cancelButton.isDisposed())
-			cancelButton.setEnabled(false);
-	}
-
-	public void close() {
-		if (shell == null)
-			return;
-		if (!shell.isDisposed())
-			shell.dispose();
-		shell = null;
-	}
-
-	private void createButtonBar() {
-		Composite buttonBar = new Composite(contents, SWT.NONE);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalAlignment = SWT.RIGHT;
-		buttonBar.setLayoutData(data);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = true;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		buttonBar.setLayout(layout);
-
-		okButton = new Button(buttonBar, SWT.PUSH);
-		data = new GridData(BUTTON_WIDTH, SWT.DEFAULT);
-		okButton.setLayoutData(data);
-		okButton.setText(Messages.Dialog_InstallButton);
-		okButton.setEnabled(false);
-		okButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				buttonPressed(OK);
-			}
-		});
-
-		cancelButton = new Button(buttonBar, SWT.PUSH);
-		data = new GridData(BUTTON_WIDTH, SWT.DEFAULT);
-		cancelButton.setLayoutData(data);
-		cancelButton.setText(Messages.Dialog_CancelButton);
-		cancelButton.setEnabled(false);
-		cancelButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				buttonPressed(CANCEL);
-			}
-		});
-	}
-
-	/**
-	 * Creates the controls to prompt for the agent and install locations.
-	 */
-	private void createInstallSettingsControls() {
-		settingsGroup = new Composite(contents, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		settingsGroup.setLayout(layout);
-		settingsGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Listener validateListener = new Listener() {
-			public void handleEvent(Event event) {
-				validateInstallSettings();
-			}
-		};
-
-		//The group asking for the product install directory
-		Group installLocationGroup = new Group(settingsGroup, SWT.NONE);
-		installLocationGroup.setLayout(new GridLayout());
-		installLocationGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-		installLocationGroup.setText(Messages.Dialog_LocationField);
-		settingsLocationLabel = new Label(installLocationGroup, SWT.NONE);
-		settingsLocationLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		settingsLocationLabel.setText(Messages.Dialog_LocationLabel);
-
-		//The sub-group with text entry field and browse button
-		Composite locationFieldGroup = new Composite(installLocationGroup, SWT.NONE);
-		locationFieldGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-		layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = false;
-		locationFieldGroup.setLayout(layout);
-		settingsLocation = new Text(locationFieldGroup, SWT.SINGLE | SWT.BORDER);
-		settingsLocation.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		settingsLocation.addListener(SWT.Modify, validateListener);
-		settingsBrowse = new Button(locationFieldGroup, SWT.PUSH);
-		settingsBrowse.setLayoutData(new GridData(BUTTON_WIDTH, SWT.DEFAULT));
-		settingsBrowse.setText(Messages.Dialog_BrowseButton);
-		settingsBrowse.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				browsePressed();
-			}
-		});
-
-		//Create the radio button group asking for the kind of install (shared vs. standalone)
-		Group installKindGroup = new Group(settingsGroup, SWT.NONE);
-		installKindGroup.setText(Messages.Dialog_LayoutGroup);
-		installKindGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-		installKindGroup.setLayout(new GridLayout());
-		settingsStandalone = new Button(installKindGroup, SWT.RADIO);
-		settingsStandalone.setText(Messages.Dialog_StandaloneButton);
-		settingsStandalone.addListener(SWT.Selection, validateListener);
-		settingsStandalone.setSelection(true);
-		settingsShared = new Button(installKindGroup, SWT.RADIO);
-		settingsShared.setText(Messages.Dialog_SharedButton);
-		settingsShared.addListener(SWT.Selection, validateListener);
-		settingsExplain = new Label(installKindGroup, SWT.WRAP);
-		GridData data = new GridData(SWT.DEFAULT, 40);
-		data.grabExcessHorizontalSpace = true;
-		data.horizontalAlignment = GridData.FILL;
-		settingsExplain.setLayoutData(data);
-		settingsExplain.setText(Messages.Dialog_ExplainStandalone);
-
-		//make the entire group invisible until we actually need to prompt for locations
-		settingsGroup.setVisible(false);
-	}
-
-	private void createProgressControls() {
-		progressBar = new ProgressBar(contents, SWT.HORIZONTAL | SWT.SMOOTH);
-		progressBar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		progressBar.setVisible(false);
-		progressSubTask = new Label(contents, SWT.WRAP | SWT.LEFT);
-		progressSubTask.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	}
-
-	private void createShell() {
-		shell = new Shell(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.MIN | SWT.RESIZE);
-		shell.setBounds(300, 200, 600, 400);
-		shell.setText(Messages.Dialog_ShellTitle);
-		shell.setLayout(new FillLayout());
-		contents = new Composite(shell, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 15;
-		layout.marginHeight = 15;
-		contents.setLayout(layout);
-	}
-
-	public Display getDisplay() {
-		Shell theShell = shell;
-		if (theShell == null || theShell.isDisposed())
-			return null;
-		return theShell.getDisplay();
-	}
-
-	public Shell getShell() {
-		return shell;
-	}
-
-	/**
-	 * Asks the user to close the dialog, and returns once the dialog is closed.
-	 */
-	public void promptForClose(String message) {
-		Display display = getDisplay();
-		if (display == null)
-			return;
-		progressTask.setText(message);
-		progressSubTask.setText(""); //$NON-NLS-1$
-		progressBar.setVisible(false);
-		okButton.setVisible(false);
-		cancelButton.setText(Messages.Dialog_CloseButton);
-		cancelButton.setEnabled(true);
-		waitingForClose = true;
-		while (shell != null && !shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-	}
-
-	public boolean promptForLaunch(InstallDescription description) {
-		Display display = getDisplay();
-		if (display == null)
-			return false;
-		progressTask.setText(NLS.bind(Messages.Dialog_PromptStart, description.getProductName()));
-		progressSubTask.setText(""); //$NON-NLS-1$
-		progressBar.setVisible(false);
-		okButton.setText(Messages.Dialog_LaunchButton);
-		okButton.setVisible(true);
-		cancelButton.setText(Messages.Dialog_CloseButton);
-		cancelButton.setVisible(true);
-		waitingForClose = true;
-		while (shell != null && !shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		return returnCode == OK;
-	}
-
-	/**
-	 * Prompts the user for the install location, and whether the install should
-	 * be shared or standalone.
-	 */
-	public void promptForLocations(InstallDescription description) {
-		progressTask.setText(NLS.bind(Messages.Dialog_LocationPrompt, description.getProductName()));
-		okButton.setText(Messages.Dialog_InstallButton);
-		okButton.setVisible(true);
-		cancelButton.setText(Messages.Dialog_CancelButton);
-		cancelButton.setEnabled(true);
-		settingsGroup.setVisible(true);
-		validateInstallSettings();
-		Display display = getDisplay();
-		returnCode = -1;
-		while (returnCode == -1 && shell != null && !shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		if (returnCode == CANCEL)
-			close();
-		if (shell == null || shell.isDisposed())
-			throw new OperationCanceledException();
-		setInstallSettingsEnablement(false);
-		Path location = new Path(settingsLocation.getText());
-		description.setInstallLocation(location);
-		if (settingsStandalone.getSelection()) {
-			//force everything to be co-located regardless of what values were set in the install description
-			description.setAgentLocation(location.append("p2")); //$NON-NLS-1$
-			description.setBundleLocation(location);
-		} else {
-			if (description.getAgentLocation() == null)
-				description.setAgentLocation(new Path(System.getProperty("user.home")).append(".p2/")); //$NON-NLS-1$ //$NON-NLS-2$
-			//use bundle pool location specified in install description
-			//by default this will be null, causing the bundle pool to be nested in the agent location
-		}
-		okButton.setVisible(false);
-	}
-
-	/**
-	 * This method runs the given operation in the context of a progress dialog.
-	 * The dialog is opened automatically prior to starting the operation, and closed
-	 * automatically upon completion.
-	 * <p>
-	 * This method must be called from the UI thread. The operation will be
-	 * executed outside the UI thread.
-	 * 
-	 * @param operation The operation to run
-	 * @return The result of the operation
-	 */
-	public IStatus run(final IInstallOperation operation) {
-		final Result result = new Result();
-		Thread thread = new Thread() {
-			public void run() {
-				try {
-					result.setStatus(operation.install(new Monitor()));
-				} catch (ThreadDeath t) {
-					//must rethrow or the thread won't die
-					throw t;
-				} catch (RuntimeException t) {
-					result.failed(t);
-				} catch (Error t) {
-					result.failed(t);
-				} finally {
-					Display display = getDisplay();
-					//ensure all events from the operation have run
-					if (display != null) {
-						display.syncExec(new Runnable() {
-							public void run() {
-								//do nothing
-							}
-						});
-					}
-					result.done();
-					//wake the event loop
-					if (display != null)
-						display.wake();
-				}
-			}
-		};
-		waitingForClose = false;
-		progressTask.setText(Messages.Dialog_InstalllingProgress);
-		cancelButton.setText(Messages.Dialog_CancelButton);
-		thread.start();
-		Display display = getDisplay();
-		while (!result.isDone()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		return result.getStatus();
-	}
-
-	private void setInstallSettingsEnablement(boolean value) {
-		settingsLocation.setEnabled(value);
-		settingsShared.setEnabled(value);
-		settingsStandalone.setEnabled(value);
-		settingsGroup.setEnabled(value);
-		settingsExplain.setEnabled(value);
-		settingsBrowse.setEnabled(value);
-		settingsLocationLabel.setEnabled(value);
-	}
-
-	public void setMessage(String message) {
-		if (progressTask != null && !progressTask.isDisposed())
-			progressTask.setText(message);
-	}
-
-	/**
-	 * Validates that the user has correctly entered all required install settings.
-	 */
-	void validateInstallSettings() {
-		boolean enabled = settingsStandalone.getSelection() || settingsShared.getSelection();
-		enabled &= Path.ROOT.isValidPath(settingsLocation.getText());
-		if (enabled) {
-			//make sure the install location is an absolute path
-			IPath location = new Path(settingsLocation.getText());
-			enabled &= location.isAbsolute();
-		}
-		okButton.setEnabled(enabled);
-
-		if (settingsStandalone.getSelection())
-			settingsExplain.setText(Messages.Dialog_ExplainStandalone);
-		else
-			settingsExplain.setText(Messages.Dialog_ExplainShared);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/SWTInstallAdvisor.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/SWTInstallAdvisor.java
deleted file mode 100644
index 2360615..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/SWTInstallAdvisor.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.installer.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.installer.Messages;
-import org.eclipse.equinox.internal.provisional.p2.installer.*;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Install context that creates a simple SWT-based UI and interacts with a user.
- */
-public class SWTInstallAdvisor extends InstallAdvisor {
-	private InstallDialog dialog;
-	private boolean started = false;
-	private boolean stopped = false;
-
-	public IStatus performInstall(IInstallOperation operation) {
-		return dialog.run(operation);
-	}
-
-	public InstallDescription prepareInstallDescription(InstallDescription description) {
-		if (description.getInstallLocation() == null)
-			dialog.promptForLocations(description);
-		return description;
-	}
-
-	public boolean promptForLaunch(InstallDescription description) {
-		return dialog.promptForLaunch(description);
-	}
-
-	public void setResult(IStatus status) {
-		String message;
-		if (status.getSeverity() == IStatus.CANCEL) {
-			message = Messages.Advisor_Canceled;
-		} else {
-			message = status.getMessage();
-		}
-		dialog.promptForClose(message);
-	}
-
-	public synchronized void start() {
-		if (stopped || started)
-			return;
-		started = true;
-		Display display = Display.getCurrent();
-		if (display == null)
-			display = new Display();
-		dialog = new InstallDialog();
-		dialog.setMessage(Messages.Advisor_Preparing);
-	}
-
-	public synchronized void stop() {
-		if (stopped || !started)
-			return;
-		stopped = true;
-		final InstallDialog activeDialog = dialog;
-		if (activeDialog == null)
-			return;
-		//clear the window now, so the reference is gone no matter what happens during cleanup
-		dialog = null;
-		final Display display = activeDialog.getDisplay();
-		if (display == null || display.isDisposed())
-			return;
-		display.syncExec(new Runnable() {
-			public void run() {
-				activeDialog.close();
-			}
-		});
-		display.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/IInstallOperation.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/IInstallOperation.java
deleted file mode 100644
index 8bdd9b2..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/IInstallOperation.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.installer;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * The operation that will perform the install. This interface exists to allow
- * the install advisor to act as the runnable context for the install, handling
- * progress monitoring and cancelation.
- * <p>
- * This interface is not intended to be implemented by clients.
- */
-public interface IInstallOperation {
-	/**
-	 * Performs the install.
-	 * <p>
-	 * The provided monitor can be used to report progress and respond to 
-	 * cancellation.  If the progress monitor has been canceled, the job
-	 * should finish its execution at the earliest convenience and return a result
-	 * status of severity {@link IStatus#CANCEL}.  The singleton
-	 * cancel status {@link Status#CANCEL_STATUS} can be used for
-	 * this purpose.  The monitor is only valid for the duration of the invocation
-	 * of this method.
-	 * 
-	 * @param monitor the monitor to be used for reporting progress and
-	 * responding to cancelation, or <code>null</code> if progress reporting
-	 * and cancelation are not desired.
-	 * @return resulting status of the run. The result must not be <code>null</code>
-	 */
-	public IStatus install(IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallAdvisor.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallAdvisor.java
deleted file mode 100644
index 76eacc5..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallAdvisor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.installer;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * The install advisor helps to make decisions during install, and is the conduit
- * for reporting progress and results back to an end user or log.
- */
-public abstract class InstallAdvisor {
-	/**
-	 * Performs the actual install. The advisor is responsible for handling progress
-	 * monitoring and cancelation. The advisor may perform the install in
-	 * another thread, but must block the calling thread until the install
-	 * completes.
-	 * 
-	 * @param operation The install operation to run
-	 * @return IStatus The result of the install operation. This is typically
-	 * just the return value of {@link IInstallOperation#install(IProgressMonitor)},
-	 * but the advisor may alter the result status if desired.
-	 */
-	public abstract IStatus performInstall(IInstallOperation operation);
-
-	/**
-	 * Allows the advisor to modify or fill in missing values in the install description.  
-	 * @param description The initial install description
-	 * @return The install description to be used for the install.
-	 * @exception OperationCanceledException if the install should be canceled.
-	 */
-	public abstract InstallDescription prepareInstallDescription(InstallDescription description);
-
-	/**
-	 * Prompts for whether the installed application should be launched immediately.
-	 * This method is only called after a successful install.
-	 * 
-	 * @param description The initial install description
-	 * @return <code>true</code> if the product should be launched, and 
-	 * <code>false</code> otherwise.
-	 */
-	public abstract boolean promptForLaunch(InstallDescription description);
-
-	/**
-	 * Reports some result information to the context.  The status may be
-	 * information, warning, or an error.
-	 */
-	public abstract void setResult(IStatus status);
-
-	/**
-	 * Initializes the install advisor.  This method must be called before calling any 
-	 * other methods on the advisor are called.  Subsequent invocations of this
-	 * method are ignored.
-	 */
-	public abstract void start();
-
-	/**
-	 * Stops the install advisor. The advisor becomes invalid after it has been
-	 * stopped; a stopped advisor cannot be restarted.
-	 */
-	public abstract void stop();
-}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallDescription.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallDescription.java
deleted file mode 100644
index b59fe5d..0000000
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/provisional/p2/installer/InstallDescription.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.installer;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.runtime.IPath;
-import org.osgi.framework.Version;
-
-/**
- * An install information captures all the data needed to perform a product install.
- * This includes information on where the installed product comes from, what will
- * be installed, and where it will be installed.
- */
-public class InstallDescription {
-	private URL artifactRepo;
-	private IPath installLocation, agentLocation, bundleLocation;
-	private boolean isAutoStart;
-	private String launcherName;
-	private URL metadataRepo;
-	private String productName;
-	private String rootId;
-	private Version rootVersion;
-	private final Map profileProperties = new HashMap();
-
-	public InstallDescription(String name) {
-		this.productName = name;
-	}
-
-	/**
-	 * Returns the p2 agent location, or <code>null</code> to indicate
-	 * the default agent location.
-	 */
-	public IPath getAgentLocation() {
-		return agentLocation;
-	}
-
-	/**
-	 * Returns the location of the artifact repository to install from
-	 * @return an artifact repository URL
-	 */
-	public URL getArtifactRepository() {
-		return artifactRepo;
-	}
-
-	/**
-	 * Returns the bundle pool location, or <code>null</code> to
-	 * indicate the default bundle pool location.
-	 */
-	public IPath getBundleLocation() {
-		return bundleLocation;
-	}
-
-	/**
-	 * Returns the local file system location to install into.
-	 * @return a local file system location
-	 */
-	public IPath getInstallLocation() {
-		return installLocation;
-	}
-
-	/**
-	 * Returns the name of the product's launcher executable
-	 * @return the name of the launcher executable
-	 */
-	public String getLauncherName() {
-		return launcherName;
-	}
-
-	/**
-	 * Returns the location of the metadata repository to install from
-	 * @return a metadata repository URL
-	 */
-	public URL getMetadataRepository() {
-		return metadataRepo;
-	}
-
-	/**
-	 * Returns the profile properties for this install.
-	 */
-	public Map getProfileProperties() {
-		return profileProperties;
-	}
-
-	/**
-	 * Returns a human-readable name for this install.
-	 * @return the name of the product
-	 */
-	public String getProductName() {
-		return productName;
-	}
-
-	/**
-	 * Returns the id of the root installable unit
-	 * @return the id of the root installable unit
-	 */
-	public String getRootId() {
-		return rootId;
-	}
-
-	/**
-	 * Returns the version of the root installable unit
-	 * @return the version of the root installable unit
-	 */
-	public Version getRootVersion() {
-		return rootVersion;
-	}
-
-	/**
-	 * Returns whether the installed product should be started upon successful
-	 * install.
-	 * @return <code>true</code> if the product should be started upon successful
-	 * install, and <code>false</code> otherwise
-	 */
-	public boolean isAutoStart() {
-		return isAutoStart;
-	}
-
-	public void setAgentLocation(IPath agentLocation) {
-		this.agentLocation = agentLocation;
-	}
-
-	public void setArtifactRepository(URL repository) {
-		this.artifactRepo = repository;
-	}
-
-	public void setAutoStart(boolean value) {
-		this.isAutoStart = value;
-	}
-
-	public void setBundleLocation(IPath bundleLocation) {
-		this.bundleLocation = bundleLocation;
-	}
-
-	public void setInstallLocation(IPath location) {
-		this.installLocation = location;
-	}
-
-	public void setLauncherName(String name) {
-		this.launcherName = name;
-	}
-
-	public void setMetadataRepository(URL repository) {
-		this.metadataRepo = repository;
-	}
-
-	/**
-	 * Supplies a set of profile properties to be added when the profile is created.
-	 * @param properties the profile properties to be added
-	 */
-	public void setProfileProperties(Map properties) {
-		profileProperties.putAll(properties);
-	}
-
-	public void setRootId(String root) {
-		this.rootId = root;
-	}
-
-	public void setRootVersion(Version version) {
-		this.rootVersion = version;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/.classpath b/bundles/org.eclipse.equinox.p2.jarprocessor/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/.project b/bundles/org.eclipse.equinox.p2.jarprocessor/.project
deleted file mode 100644
index b3a3e9e..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.jarprocessor</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index dfcc592..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,340 +0,0 @@
-#Wed Aug 29 00:45:32 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9dc4051..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Wed Aug 29 00:45:32 EDT 2007
-eclipse.preferences.version=1
-formatter_profile=_core
-formatter_settings_version=11
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 69a2717..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Tue Aug 28 11:19:59 EDT 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.jarprocessor/META-INF/MANIFEST.MF
deleted file mode 100644
index 23be04d..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.jarprocessor;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.internal.p2.jarprocessor;x-friends:="org.eclipse.equinox.p2.artifact.processors",
- org.eclipse.equinox.internal.p2.jarprocessor.verifier;x-internal:=true,
- org.eclipse.internal.provisional.equinox.p2.jarprocessor
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/about.html b/bundles/org.eclipse.equinox.p2.jarprocessor/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/build.properties b/bundles/org.eclipse.equinox.p2.jarprocessor/build.properties
deleted file mode 100644
index a6b8330..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/plugin.properties b/bundles/org.eclipse.equinox.p2.jarprocessor/plugin.properties
deleted file mode 100644
index 76899ad..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning JAR Processor
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/CommandStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/CommandStep.java
deleted file mode 100644
index f5652ae..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/CommandStep.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.File;
-import java.util.List;
-import java.util.Properties;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.IProcessStep;
-
-/**
- * @author aniefer@ca.ibm.com
- *
- */
-public abstract class CommandStep implements IProcessStep {
-	protected String command = null;
-	protected String extension = null;
-	private  Properties options = null;
-	protected boolean verbose = false;
-	
-	public CommandStep(Properties options, String command, String extension, boolean verbose) {
-		this.command = command;
-		this.extension = extension;
-		this.options = options;
-		this.verbose = verbose;
-	}
-
-	protected static int execute(String[] cmd) {
-		return execute(cmd, false);
-	}
-	
-	protected static int execute(String[] cmd, boolean verbose) {
-		Runtime runtime = Runtime.getRuntime();
-		Process proc = null;
-		try {
-			proc = runtime.exec(cmd);
-			StreamProcessor errorStreamProcessor = new StreamProcessor(proc.getErrorStream(), StreamProcessor.STDERR, verbose); 
-			StreamProcessor outputStreamProcessor = new StreamProcessor(proc.getInputStream(), StreamProcessor.STDOUT, verbose); 
-			errorStreamProcessor.start();
-			outputStreamProcessor.start();
-		} catch (Exception e) {
-			if(verbose) {
-				System.out.println("Error executing command " + Utils.concat(cmd)); //$NON-NLS-1$
-				e.printStackTrace();
-			}
-			return -1;
-		}
-		try {
-			int result = proc.waitFor();
-			return result;
-		} catch (InterruptedException e) {
-			if(verbose)
-				e.printStackTrace();
-		}
-		return -1;
-	}
-	
-	public Properties getOptions() {
-		if(options == null)
-			options = new Properties();
-		return options;
-	}
-	
-	public void adjustInf(File input, Properties inf, List containers) {
-		//nothing
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Main.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Main.java
deleted file mode 100644
index 23df70d..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Main.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.File;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor;
-
-public class Main {
-
-	private static void printUsage() {
-		System.out.println("[-option ...]... input"); //$NON-NLS-1$
-		System.out.println("The following options are supported:"); //$NON-NLS-1$
-		System.out.println("-processAll     process all jars, regardless of whether they were previously normalized"); //$NON-NLS-1$
-		System.out.println("                By default only normalized jars will be processed."); //$NON-NLS-1$
-		System.out.println("-repack         normalize jars "); //$NON-NLS-1$
-		System.out.println("-sign <command> sign jars using <command>"); //$NON-NLS-1$
-		System.out.println("-pack           pack the jars.  pack and repack are redundant unless"); //$NON-NLS-1$
-		System.out.println("                sign is also specified."); //$NON-NLS-1$
-		System.out.println("-unpack         unpack pack.gz files. Unpack is mutually exclusive"); //$NON-NLS-1$
-		System.out.println("                with repack, sign and pack."); //$NON-NLS-1$
-		System.out.println();
-		System.out.println("-outputDir <dir>  the output directory"); //$NON-NLS-1$
-		System.out.println("-verbose        verbose mode "); //$NON-NLS-1$
-	}
-
-	public static JarProcessorExecutor.Options processArguments(String[] args) {
-		if (args.length == 0) {
-			printUsage();
-			return null;
-		}
-
-		JarProcessorExecutor.Options options = new JarProcessorExecutor.Options();
-		int i = 0;
-		for (; i < args.length - 1; i++) {
-			if (args[i].equals("-pack")) {//$NON-NLS-1$
-				options.pack = true;
-			} else if (args[i].equals("-unpack")) { //$NON-NLS-1$
-				options.unpack = true;
-			} else if (args[i].equals("-sign") && i < args.length - 2) { //$NON-NLS-1$
-				if (args[i + 1].startsWith("-")) { //$NON-NLS-1$
-					printUsage();
-					return null;
-				}
-				options.signCommand = args[++i];
-			} else if (args[i].equals("-repack")) { //$NON-NLS-1$
-				options.repack = true;
-			} else if (args[i].equals("-outputDir") && i < args.length - 2) { //$NON-NLS-1$
-				if (args[i + 1].startsWith("-")) { //$NON-NLS-1$
-					printUsage();
-					return null;
-				}
-				options.outputDir = args[++i];
-			} else if (args[i].equals("-verbose")) { //$NON-NLS-1$
-				options.verbose = true;
-			}  else if (args[i].equals("-processAll")) { //$NON-NLS-1$
-				options.processAll = true;
-			} 
-		}
-
-		options.input = new File(args[i]);
-
-		String problemMessage = null;
-		String inputName = options.input.getName();
-		if (options.unpack) {
-			if (!JarProcessor.canPerformUnpack()) {
-				problemMessage = "The unpack200 command cannot be found."; //$NON-NLS-1$
-			} else 	if (options.input.isFile() && !inputName.endsWith(".zip") && !inputName.endsWith(".pack.gz")) { //$NON-NLS-1$ //$NON-NLS-2$
-				problemMessage = "Input file is not a pack.gz file."; //$NON-NLS-1$
-			} else 	if (options.pack || options.repack || options.signCommand != null) {
-				problemMessage = "Pack, repack or sign cannot be specified with unpack."; //$NON-NLS-1$
-			}
-		} else {
-			if (options.input.isFile() && !inputName.endsWith(".zip") && !inputName.endsWith(".jar")) { //$NON-NLS-1$ //$NON-NLS-2$
-				problemMessage = "Input file is not a jar file."; //$NON-NLS-1$
-			} else	if ((options.pack || options.repack) && !JarProcessor.canPerformPack()) {
-				problemMessage = "The pack200 command can not be found."; //$NON-NLS-1$
-			}
-		}
-		if(problemMessage != null){
-			System.out.println(problemMessage);
-			System.out.println();
-			printUsage();
-			return null;
-		}
-
-		return options;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		JarProcessorExecutor.Options options = processArguments(args);
-		if (options == null)
-			return;
-		new JarProcessorExecutor().runJarProcessor(options);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java
deleted file mode 100644
index 1006dbe..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackStep.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-public class PackStep extends CommandStep {
-
-	protected static String packCommand = null;
-	private static Boolean canPack = null;
-
-	private String arguments = null;
-	private Set exclusions = Collections.EMPTY_SET;
-
-	public static boolean canPack() {
-		if (canPack != null)
-			return canPack.booleanValue();
-
-		String[] locations = Utils.getPack200Commands("pack200"); //$NON-NLS-1$
-		if (locations == null) {
-			canPack = Boolean.FALSE;
-			packCommand = null;
-			return false;
-		}
-
-		int result;
-		for (int i = 0; i < locations.length; i++) {
-			if (locations[i] == null)
-				continue;
-			result = execute(new String[] {locations[i], "-V"}); //$NON-NLS-1$
-			if (result == 0) {
-				packCommand = locations[i];
-				canPack = Boolean.TRUE;
-				return true;
-			}
-		}
-
-		canPack = Boolean.FALSE;
-		return false;
-	}
-
-	public PackStep(Properties options) {
-		super(options, null, null, false);
-		exclusions = Utils.getPackExclusions(options);
-	}
-
-	public PackStep(Properties options, boolean verbose) {
-		super(options, null, null, verbose);
-		exclusions = Utils.getPackExclusions(options);
-	}
-
-	public String recursionEffect(String entryName) {
-		if (canPack() && entryName.endsWith(".jar") && !exclusions.contains(entryName)) { //$NON-NLS-1$
-			return entryName + Utils.PACKED_SUFFIX;
-		}
-		return null;
-	}
-
-	public File preProcess(File input, File workingDirectory, List containers) {
-		return null;
-	}
-
-	public File postProcess(File input, File workingDirectory, List containers) {
-		if (canPack() && packCommand != null) {
-			Properties inf = Utils.getEclipseInf(input, verbose);
-			if (!shouldPack(input, containers, inf))
-				return null;
-			File outputFile = new File(workingDirectory, input.getName() + Utils.PACKED_SUFFIX);
-			try {
-				String[] cmd = getCommand(input, outputFile, inf, containers);
-				int result = execute(cmd, verbose);
-				if (result != 0 && verbose)
-					System.out.println("Error: " + result + " was returned from command: " + Utils.concat(cmd)); //$NON-NLS-1$ //$NON-NLS-2$
-			} catch (IOException e) {
-				if (verbose)
-					e.printStackTrace();
-				return null;
-			}
-			return outputFile;
-		}
-		return null;
-	}
-
-	protected boolean shouldPack(File input, List containers, Properties inf) {
-		//1: exclude by containers
-		// innermost jar is first on the list, it can override outer jars
-		for (Iterator iterator = containers.iterator(); iterator.hasNext();) {
-			Properties container = (Properties) iterator.next();
-			if (container.containsKey(Utils.MARK_EXCLUDE_CHILDREN_PACK)) {
-				if (Boolean.valueOf(container.getProperty(Utils.MARK_EXCLUDE_CHILDREN_PACK)).booleanValue()) {
-					if (verbose)
-						System.out.println(input.getName() + " is excluded from pack200 by its containers.");
-					return false;
-				}
-				break;
-			}
-		}
-
-		//2: excluded by self
-		if (inf != null && inf.containsKey(Utils.MARK_EXCLUDE_PACK) && Boolean.valueOf(inf.getProperty(Utils.MARK_EXCLUDE_PACK)).booleanValue()) {
-			if (verbose)
-				System.out.println("Excluding " + input.getName() + " from " + getStepName()); //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		}
-
-		return true;
-	}
-
-	protected String[] getCommand(File input, File outputFile, Properties inf, List containers) throws IOException {
-		String[] cmd = null;
-		String arguments = getArguments(input, inf, containers);
-		if (arguments != null && arguments.length() > 0) {
-			String[] args = Utils.toStringArray(arguments, ","); //$NON-NLS-1$
-			cmd = new String[3 + args.length];
-			cmd[0] = packCommand;
-			System.arraycopy(args, 0, cmd, 1, args.length);
-			cmd[cmd.length - 2] = outputFile.getCanonicalPath();
-			cmd[cmd.length - 1] = input.getCanonicalPath();
-		} else {
-			cmd = new String[] {packCommand, outputFile.getCanonicalPath(), input.getCanonicalPath()};
-		}
-		return cmd;
-	}
-
-	protected String getArguments(File input, Properties inf, List containers) {
-		if (arguments != null)
-			return arguments;
-		//1: Explicitly marked in our .inf file
-		if (inf != null && inf.containsKey(Utils.PACK_ARGS)) {
-			arguments = inf.getProperty(Utils.PACK_ARGS);
-			return arguments;
-		}
-
-		//2: Defaults set in one of our containing jars
-		for (Iterator iterator = containers.iterator(); iterator.hasNext();) {
-			Properties container = (Properties) iterator.next();
-			if (container.containsKey(Utils.DEFAULT_PACK_ARGS)) {
-				arguments = container.getProperty(Utils.DEFAULT_PACK_ARGS);
-				return arguments;
-			}
-		}
-
-		//3: Set by name in outside pack.properties file
-		Properties options = getOptions();
-		String argsKey = input.getName() + Utils.PACK_ARGS_SUFFIX;
-		if (options.containsKey(argsKey)) {
-			arguments = options.getProperty(argsKey);
-			return arguments;
-		}
-
-		//4: Set by default in outside pack.properties file
-		if (options.containsKey(Utils.DEFAULT_PACK_ARGS)) {
-			arguments = options.getProperty(Utils.DEFAULT_PACK_ARGS);
-			return arguments;
-		}
-
-		if (arguments == null)
-			arguments = "";
-		return arguments;
-	}
-
-	public String getStepName() {
-		return "Pack"; //$NON-NLS-1$
-	}
-
-	public void adjustInf(File input, Properties inf, List containers) {
-		if (input == null || inf == null)
-			return;
-
-		//don't be verbose to check if we should mark the inf
-		boolean v = verbose;
-		verbose = false;
-		if (!shouldPack(input, containers, inf)) {
-			verbose = v;
-			return;
-		}
-		verbose = v;
-
-		//mark as conditioned
-		inf.put(Utils.MARK_PROPERTY, "true"); //$NON-NLS-1$
-
-		//record arguments used
-		String arguments = inf.getProperty(Utils.PACK_ARGS);
-		if (arguments == null) {
-			arguments = getArguments(input, inf, containers);
-			if (arguments != null && arguments.length() > 0)
-				inf.put(Utils.PACK_ARGS, arguments);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java
deleted file mode 100644
index 79707a6..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/PackUnpackStep.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * @author aniefer@ca.ibm.com
- *
- */
-public class PackUnpackStep extends PackStep {
-	private Set exclusions = null;
-
-	public PackUnpackStep(Properties options) {
-		super(options);
-		exclusions = Utils.getPackExclusions(options);
-	}
-
-	public PackUnpackStep(Properties options, boolean verbose) {
-		super(options, verbose);
-		exclusions = Utils.getPackExclusions(options);
-	}
-
-	public String recursionEffect(String entryName) {
-		if (canPack() && entryName.endsWith(".jar") && !exclusions.contains(entryName)) { //$NON-NLS-1$
-			return entryName;
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.internal.jarprocessor.PackStep#postProcess(java.io.File, java.io.File, java.util.LinkedList)
-	 */
-	public File postProcess(File input, File workingDirectory, List containers) {
-		if (canPack() && packCommand != null && input != null) {
-			Properties inf = Utils.getEclipseInf(input, verbose);
-			if (!shouldPack(input, containers, inf))
-				return null;
-			File tempFile = new File(workingDirectory, "temp_" + input.getName()); //$NON-NLS-1$
-			try {
-				String[] tmp = getCommand(input, tempFile, inf, containers);
-				String[] cmd = new String[tmp.length + 1];
-				cmd[0] = tmp[0];
-				cmd[1] = "-r"; //$NON-NLS-1$
-				System.arraycopy(tmp, 1, cmd, 2, tmp.length - 1);
-
-				int result = execute(cmd, verbose);
-				if (result == 0 && tempFile.exists()) {
-					File finalFile = new File(workingDirectory, input.getName());
-					if (finalFile.exists())
-						finalFile.delete();
-					tempFile.renameTo(finalFile);
-					return finalFile;
-				} else if (verbose) {
-					System.out.println("Error: " + result + " was returned from command: " + Utils.concat(cmd)); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			} catch (IOException e) {
-				if (verbose)
-					e.printStackTrace();
-				return null;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.internal.jarprocessor.PackStep#preProcess(java.io.File, java.io.File, java.util.LinkedList)
-	 */
-	public File preProcess(File input, File workingDirectory, List containers) {
-		return null;
-	}
-
-	public String getStepName() {
-		return "Repack"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/SignCommandStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/SignCommandStep.java
deleted file mode 100644
index e648808..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/SignCommandStep.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-public class SignCommandStep extends CommandStep {
-	private Set exclusions = null;
-
-	public SignCommandStep(Properties options, String command) {
-		super(options, command, ".jar", false); //$NON-NLS-1$
-		exclusions = Utils.getSignExclusions(options);
-	}
-
-	public SignCommandStep(Properties options, String command, boolean verbose) {
-		super(options, command, ".jar", verbose); //$NON-NLS-1$
-		exclusions = Utils.getSignExclusions(options);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.jarprocessor.IProcessStep#recursionEffect(java.lang.String)
-	 */
-	public String recursionEffect(String entryName) {
-		if (entryName.endsWith(extension) && !exclusions.contains(entryName))
-			return entryName;
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.jarprocessor.IProcessStep#preProcess(java.io.File, java.io.File)
-	 */
-	public File preProcess(File input, File workingDirectory, List containers) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.jarprocessor.IProcessStep#postProcess(java.io.File, java.io.File)
-	 */
-	public File postProcess(File input, File workingDirectory, List containers) {
-		if (command != null && input != null && shouldSign(input, containers)) {
-			try {
-				String[] cmd = new String[] {command, input.getCanonicalPath()};
-				int result = execute(cmd, verbose);
-				if (result == 0) {
-					return input;
-				} else if (verbose) {
-					System.out.println("Error: " + result + " was returned from command: " + Utils.concat(cmd)); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			} catch (IOException e) {
-				if (verbose) {
-					e.printStackTrace();
-				}
-			}
-		}
-		return null;
-	}
-
-	public boolean shouldSign(File input, List containers) {
-		Properties inf = null;
-
-		//1: Are we excluded from signing by our parents?
-		//innermost jar is first on the list, it overrides outer jars
-		for (Iterator iterator = containers.iterator(); iterator.hasNext();) {
-			inf = (Properties) iterator.next();
-			if (inf.containsKey(Utils.MARK_EXCLUDE_CHILDREN_SIGN)){
-				if(Boolean.valueOf(inf.getProperty(Utils.MARK_EXCLUDE_CHILDREN_SIGN)).booleanValue()) {
-					if (verbose)
-						System.out.println(input.getName() + "is excluded from signing by its containers."); //$NON-NLS-1$ 
-					return false;
-				}
-				break;
-			}
-		}
-
-		//2: Is this jar itself marked as exclude?
-		inf = Utils.getEclipseInf(input, verbose);
-		if (inf != null && inf.containsKey(Utils.MARK_EXCLUDE_SIGN) && Boolean.valueOf(inf.getProperty(Utils.MARK_EXCLUDE_SIGN)).booleanValue()) {
-			if (verbose)
-				System.out.println("Excluding " + input.getName() + " from signing."); //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		}
-		return true;
-	}
-
-	public String getStepName() {
-		return "Sign"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/StreamProcessor.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/StreamProcessor.java
deleted file mode 100644
index cdab812..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/StreamProcessor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.*;
-
-public class StreamProcessor extends Thread {
-	public static final String STDERR = "STDERR"; //$NON-NLS-1$
-	public static final String STDOUT = "STDOUT"; //$NON-NLS-1$
-
-	private InputStream inputStream;
-	private String name;
-	private boolean verbose;
-
-	public StreamProcessor(InputStream is, String name, boolean verbose) {
-		this.inputStream = is;
-		this.name = name;
-		this.verbose = verbose;
-	}
-
-	public void run() {
-		try {
-			InputStreamReader isr = new InputStreamReader(inputStream);
-			BufferedReader br = new BufferedReader(isr);
-			while (true) {
-				String s = br.readLine();
-				if (s == null) {
-					break;
-				}
-				if (verbose) {
-					if (STDERR.equals(name))
-						System.err.println(name + ": " + s); //$NON-NLS-1$
-					else
-						System.out.println(name + ": " + s); //$NON-NLS-1$
-				}
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java
deleted file mode 100644
index a6c84bf..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/UnpackStep.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.Properties;
-
-/**
- * @author aniefer
- *
- */
-public class UnpackStep extends CommandStep {
-	public static final String UNPACKER_PROPERTY = "org.eclipse.update.jarprocessor.Unpacker"; //$NON-NLS-1$
-	private static Boolean canUnpack = null;
-	private static String unpackCommand = null;
-
-	public static boolean canUnpack() {
-		if (canUnpack != null)
-			return canUnpack.booleanValue();
-
-		String[] locations = Utils.getPack200Commands("unpack200"); //$NON-NLS-1$
-		if (locations == null) {
-			canUnpack = Boolean.FALSE;
-			unpackCommand = null;
-			return false;
-		}
-
-		int result;
-		for (int i = 0; i < locations.length; i++) {
-			if (locations[i] == null)
-				continue;
-			result = execute(new String[] {locations[i], "-V"}); //$NON-NLS-1$
-			if (result == 0) {
-				unpackCommand = locations[i];
-				canUnpack = Boolean.TRUE;
-				return true;
-			}
-		}
-
-		canUnpack = Boolean.FALSE;
-		return false;
-	}
-
-	public UnpackStep(Properties options) {
-		super(options, null, null, false);
-	}
-
-	public UnpackStep(Properties options, boolean verbose) {
-		super(options, null, null, verbose);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.jarprocessor.IProcessStep#recursionEffect(java.lang.String)
-	 */
-	public String recursionEffect(String entryName) {
-		if (canUnpack() && entryName.endsWith(Utils.PACKED_SUFFIX)) {
-			return entryName.substring(0, entryName.length() - Utils.PACKED_SUFFIX.length());
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.jarprocessor.IProcessStep#preProcess(java.io.File, java.io.File)
-	 */
-	public File preProcess(File input, File workingDirectory, List containers) {
-		if (canUnpack() && unpackCommand != null) {
-			String name = input.getName();
-			if (name.endsWith(Utils.PACKED_SUFFIX)) {
-				name = name.substring(0, name.length() - Utils.PACKED_SUFFIX.length());
-
-				File unpacked = new File(workingDirectory, name);
-				File parent = unpacked.getParentFile();
-				if (!parent.exists())
-					parent.mkdirs();
-				try {
-					String options = getOptions().getProperty(input.getName() + ".unpack.args"); //$NON-NLS-1$
-					String[] cmd = null;
-					if (options != null) {
-						cmd = new String[] {unpackCommand, options, input.getCanonicalPath(), unpacked.getCanonicalPath()};
-					} else {
-						cmd = new String[] {unpackCommand, input.getCanonicalPath(), unpacked.getCanonicalPath()};
-					}
-					int result = execute(cmd, verbose);
-					if (result != 0 && verbose)
-						System.out.println("Error: " + result + " was returned from command: " + Utils.concat(cmd)); //$NON-NLS-1$ //$NON-NLS-2$
-				} catch (IOException e) {
-					if (verbose)
-						e.printStackTrace();
-					return null;
-				}
-				return unpacked;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.update.jarprocessor.IProcessStep#postProcess(java.io.File, java.io.File)
-	 */
-	public File postProcess(File input, File workingDirectory, List containers) {
-		return null;
-	}
-
-	public String getStepName() {
-		return "Unpack"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java
deleted file mode 100644
index 9cf22bc..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/Utils.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.zip.ZipException;
-
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor;
-
-/**
- * @author aniefer@ca.ibm.com
- *
- */
-public class Utils {
-	public static final String MARK_FILE_NAME = "META-INF/eclipse.inf"; //$NON-NLS-1$
-
-	/*
-	 * Properties found in outer pack.properties file
-	 */
-	//comma separated list of jars to exclude from sigining
-	public static final String SIGN_EXCLUDES = "sign.excludes"; //$NON-NLS-1$
-	//comma separated list of jars to exlclude from packing
-	public static final String PACK_EXCLUDES = "pack.excludes"; //$NON-NLS-1$
-	//Suffix used when specifying arguments to use when running pack200 on a jar
-	public static final String PACK_ARGS_SUFFIX = ".pack.args"; //$NON-NLS-1$
-
-	/*
-	 * Properties found in both pack.properties and eclipse.inf
-	 */
-	//	Default arguments to use when running pack200.
-	// Affects all jars when specified in pack.properties, affects children when specified in eclipse.inf
-	public static final String DEFAULT_PACK_ARGS = "pack200.default.args"; //$NON-NLS-1$
-
-	/*
-	 * Properties found in eclipse.inf file
-	 */
-	//This jar has been conditioned with pack200
-	public static final String MARK_PROPERTY = "pack200.conditioned"; //$NON-NLS-1$
-	//Exclude this jar from processing
-	public static final String MARK_EXCLUDE = "jarprocessor.exclude"; //$NON-NLS-1$
-	//Exclude this jar from pack200
-	public static final String MARK_EXCLUDE_PACK = "jarprocessor.exclude.pack"; //$NON-NLS-1$
-	//Exclude this jar from signing
-	public static final String MARK_EXCLUDE_SIGN = "jarprocessor.exclude.sign"; //$NON-NLS-1$
-	//Exclude this jar's children from processing
-	public static final String MARK_EXCLUDE_CHILDREN = "jarprocessor.exclude.children"; //$NON-NLS-1$
-	//Exclude this jar's children from pack200
-	public static final String MARK_EXCLUDE_CHILDREN_PACK = "jarprocessor.exclude.children.pack"; //$NON-NLS-1$
-	//Exclude this jar's children from signing
-	public static final String MARK_EXCLUDE_CHILDREN_SIGN = "jarprocessor.exclude.children.sign"; //$NON-NLS-1$
-	//Arguments used in pack200 for this jar
-	public static final String PACK_ARGS = "pack200.args"; //$NON-NLS-1$
-
-	public static final String PACK200_PROPERTY = "org.eclipse.update.jarprocessor.pack200"; //$NON-NLS-1$
-	public static final String JRE = "@jre"; //$NON-NLS-1$
-	public static final String PATH = "@path"; //$NON-NLS-1$
-	public static final String NONE = "@none"; //$NON-NLS-1$
-
-	public static final String PACKED_SUFFIX = ".pack.gz"; //$NON-NLS-1$
-	public static final String JAR_SUFFIX = ".jar"; //$NON-NLS-1$
-
-	public static final FileFilter JAR_FILTER = new FileFilter() {
-		public boolean accept(File pathname) {
-			return pathname.isFile() && pathname.getName().endsWith(".jar"); //$NON-NLS-1$
-		}
-	};
-
-	public static final FileFilter PACK_GZ_FILTER = new FileFilter() {
-		public boolean accept(File pathname) {
-			return pathname.isFile() && pathname.getName().endsWith(JarProcessor.PACKED_SUFFIX);
-		}
-	};
-
-	public static void close(Object stream) {
-		if (stream != null) {
-			try {
-				if (stream instanceof InputStream)
-					((InputStream) stream).close();
-				else if (stream instanceof OutputStream)
-					((OutputStream) stream).close();
-				else if (stream instanceof JarFile)
-					((JarFile) stream).close();
-			} catch (IOException e) {
-				//ignore
-			}
-		}
-	}
-
-	/**
-	 * get the set of commands to try to execute pack/unpack 
-	 * @param cmd the command, either "pack200" or "unpack200"
-	 * @return String [] or null
-	 */
-	public static String[] getPack200Commands(String cmd) {
-		String[] locations = null;
-		String prop = System.getProperty(PACK200_PROPERTY);
-		String javaHome = System.getProperty("java.home"); //$NON-NLS-1$
-		if (NONE.equals(prop)) {
-			return null;
-		} else if (JRE.equals(prop)) {
-			locations = new String[] {javaHome + "/bin/" + cmd}; //$NON-NLS-1$
-		} else if (PATH.equals(prop)) {
-			locations = new String[] {cmd};
-		} else if (prop == null) {
-			locations = new String[] {javaHome + "/bin/" + cmd, cmd}; //$NON-NLS-1$ 
-		} else {
-			locations = new String[] {prop + "/" + cmd}; //$NON-NLS-1$
-		}
-		return locations;
-	}
-
-	/**
-	 * Transfers all available bytes from the given input stream to the given
-	 * output stream. Closes both streams if close == true, regardless of failure. 
-	 * Flushes the destination stream if close == false
-	 * 
-	 * @param source
-	 * @param destination
-	 * @param close 
-	 * @throws IOException
-	 */
-	public static void transferStreams(InputStream source, OutputStream destination, boolean close) throws IOException {
-		source = new BufferedInputStream(source);
-		destination = new BufferedOutputStream(destination);
-		try {
-			byte[] buffer = new byte[8192];
-			while (true) {
-				int bytesRead = -1;
-				if ((bytesRead = source.read(buffer)) == -1)
-					break;
-				destination.write(buffer, 0, bytesRead);
-			}
-		} finally {
-			if (close) {
-				close(source);
-				close(destination);
-			} else {
-				destination.flush();
-			}
-		}
-	}
-
-	/**
-	 * Deletes all the files and directories from the given root down (inclusive).
-	 * Returns false if we could not delete some file or an exception occurred
-	 * at any point in the deletion.
-	 * Even if an exception occurs, a best effort is made to continue deleting.
-	 */
-	public static boolean clear(java.io.File root) {
-		boolean result = clearChildren(root);
-		try {
-			if (root.exists())
-				result &= root.delete();
-		} catch (Exception e) {
-			result = false;
-		}
-		return result;
-	}
-
-	/**
-	 * Deletes all the files and directories from the given root down, except for 
-	 * the root itself.
-	 * Returns false if we could not delete some file or an exception occurred
-	 * at any point in the deletion.
-	 * Even if an exception occurs, a best effort is made to continue deleting.
-	 */
-	public static boolean clearChildren(java.io.File root) {
-		boolean result = true;
-		if (root.isDirectory()) {
-			String[] list = root.list();
-			// for some unknown reason, list() can return null.  
-			// Just skip the children If it does.
-			if (list != null)
-				for (int i = 0; i < list.length; i++)
-					result &= clear(new java.io.File(root, list[i]));
-		}
-		return result;
-	}
-
-	public static Set getPackExclusions(Properties properties) {
-		if (properties == null)
-			return Collections.EMPTY_SET;
-
-		String packExcludes = properties.getProperty(PACK_EXCLUDES);
-		if (packExcludes != null) {
-			String[] excludes = toStringArray(packExcludes, ","); //$NON-NLS-1$
-			Set packExclusions = new HashSet();
-			for (int i = 0; i < excludes.length; i++) {
-				packExclusions.add(excludes[i]);
-			}
-			return packExclusions;
-		}
-		return Collections.EMPTY_SET;
-	}
-
-	public static Set getSignExclusions(Properties properties) {
-		if (properties == null)
-			return Collections.EMPTY_SET;
-		String signExcludes = properties.getProperty(SIGN_EXCLUDES);
-		if (signExcludes != null) {
-			String[] excludes = toStringArray(signExcludes, ","); //$NON-NLS-1$
-			Set signExclusions = new HashSet();
-			for (int i = 0; i < excludes.length; i++) {
-				signExclusions.add(excludes[i]);
-			}
-			return signExclusions;
-		}
-		return Collections.EMPTY_SET;
-	}
-
-	public static String concat(String[] array) {
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < array.length; i++) {
-			if (i > 0)
-				buffer.append(' ');
-			buffer.append(array[i]);
-		}
-		return buffer.toString();
-	}
-
-	public static String[] toStringArray(String input, String separator) {
-		StringTokenizer tokenizer = new StringTokenizer(input, separator);
-		int count = tokenizer.countTokens();
-		String[] result = new String[count];
-		for (int i = 0; i < count; i++) {
-			result[i] = tokenizer.nextToken().trim();
-		}
-		return result;
-	}
-
-	/**
-	 * Get the properties from the eclipse.inf file from the given jar.  If the file is not a jar, null is returned.
-	 * If the file is a jar, but does not contain an eclipse.inf file, an empty Properties object is returned.
-	 * @param jarFile
-	 * @return The eclipse.inf properties for the given jar file
-	 */
-	public static Properties getEclipseInf(File jarFile, boolean verbose) {
-		if (jarFile == null || !jarFile.exists()) {
-			if (verbose)
-				System.out.println("Failed to obtain eclipse.inf due to missing jar file: " + jarFile); //$NON-NLS-1$
-			return null;
-		}
-		JarFile jar = null;
-		try {
-			jar = new JarFile(jarFile, false);
-		} catch (ZipException e) {
-			//not a jar, don't bother logging this.
-			return null;
-		} catch (IOException e) {
-			if (verbose) {
-				System.out.println("Failed to obtain eclipse.inf due to IOException: " + jarFile); //$NON-NLS-1$
-				e.printStackTrace();
-			}
-			return null;
-		}
-		try {
-			JarEntry mark = jar.getJarEntry(MARK_FILE_NAME);
-			if (mark != null) {
-				InputStream in = jar.getInputStream(mark);
-				Properties props = new Properties();
-				props.load(in);
-				in.close();
-				return props;
-			}
-			return new Properties();
-		} catch (IOException e) {
-			if (verbose) {
-				System.out.println("Failed to obtain eclipse.inf due to IOException: " + jarFile); //$NON-NLS-1$
-				e.printStackTrace();
-			}
-			return null;
-		} finally {
-			close(jar);
-		}
-	}
-
-	public static boolean shouldSkipJar(File input, boolean processAll, boolean verbose) {
-		Properties inf = getEclipseInf(input, verbose);
-		if (inf == null) {
-			//not a jar, could be a pack.gz
-			return false;
-		}
-		String exclude = inf.getProperty(MARK_EXCLUDE);
-
-		//was marked as exclude, we should skip
-		if (exclude != null && Boolean.valueOf(exclude).booleanValue())
-			return true;
-
-		//process all was set, don't skip
-		if (processAll)
-			return false;
-
-		//otherwise, we skip if not marked marked
-		String marked = inf.getProperty(MARK_PROPERTY);
-		return !Boolean.valueOf(marked).booleanValue();
-	}
-
-	/**
-	 * Stores the given properties in the output stream.  We store the properties 
-	 * in sorted order so that the signing hash doesn't change if the properties didn't change. 
-	 * @param props
-	 * @param stream
-	 */
-	public static void storeProperties(Properties props, OutputStream stream) {
-		PrintStream printStream = new PrintStream(stream);
-		printStream.print("#Processed using Jarprocessor\n"); //$NON-NLS-1$
-		SortedMap sorted = new TreeMap(props);
-		for (Iterator iter = sorted.keySet().iterator(); iter.hasNext();) {
-			String key = (String) iter.next();
-			printStream.print(key);
-			printStream.print(" = "); //$NON-NLS-1$
-			printStream.print(sorted.get(key));
-			printStream.print("\n"); //$NON-NLS-1$
-
-		}
-		printStream.flush();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor.java
deleted file mode 100644
index 92a1cf8..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/ZipProcessor.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.jarprocessor;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.*;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.IProcessStep;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor;
-
-/**
- * @author aniefer@ca.ibm.com
- *
- */
-public class ZipProcessor {
-
-	private IProcessStep signStep = null;
-	private IProcessStep packStep = null;
-	private IProcessStep packUnpackStep = null;
-	private IProcessStep unpackStep = null;
-
-	private String workingDirectory = null;
-	private Properties properties = null;
-	private Set packExclusions = null;
-	private Set signExclusions = null;
-	private String command = null;
-	private boolean packing = false;
-	private boolean signing = false;
-	private boolean repacking = false;
-	private boolean unpacking = false;
-	private boolean verbose = false;
-	private boolean processAll = false;
-
-	public void setWorkingDirectory(String dir) {
-		workingDirectory = dir;
-	}
-
-	public String getWorkingDirectory() {
-		if (workingDirectory == null)
-			workingDirectory = "."; //$NON-NLS-1$
-		return workingDirectory;
-	}
-
-	public void setSignCommand(String command) {
-		this.command = command;
-		this.signing = (command != null);
-	}
-
-	public void setPack(boolean pack) {
-		this.packing = pack;
-	}
-
-	public void setRepack(boolean repack) {
-		this.repacking = repack;
-	}
-
-	public void setUnpack(boolean unpack) {
-		this.unpacking = unpack;
-	}
-
-	public void setVerbose(boolean verbose) {
-		this.verbose = verbose;
-	}
-
-	public void setProcessAll(boolean all) {
-		this.processAll = all;
-	}
-
-	public void processZip(File zipFile) throws ZipException, IOException {
-		if (verbose)
-			System.out.println("Processing " + zipFile.getPath()); //$NON-NLS-1$
-		ZipFile zip = new ZipFile(zipFile);
-		initialize(zip);
-
-		String extension = unpacking ? "pack.gz" : ".jar"; //$NON-NLS-1$ //$NON-NLS-2$
-		File tempDir = new File(getWorkingDirectory(), "temp_" + zipFile.getName()); //$NON-NLS-1$
-		JarProcessor processor = new JarProcessor();
-		processor.setVerbose(verbose);
-		processor.setProcessAll(processAll);
-		processor.setWorkingDirectory(tempDir.getCanonicalPath());
-		if (unpacking) {
-			processor.addProcessStep(unpackStep);
-		}
-
-		File outputFile = new File(getWorkingDirectory(), zipFile.getName() + ".temp"); //$NON-NLS-1$
-		File parent = outputFile.getParentFile();
-		if (!parent.exists())
-			parent.mkdirs();
-		ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(outputFile));
-		Enumeration entries = zip.entries();
-		if (entries.hasMoreElements()) {
-			for (ZipEntry entry = (ZipEntry) entries.nextElement(); entry != null; entry = entries.hasMoreElements() ? (ZipEntry) entries.nextElement() : null) {
-				String name = entry.getName();
-
-				InputStream entryStream = zip.getInputStream(entry);
-
-				boolean pack = packing && !packExclusions.contains(name);
-				boolean sign = signing && !signExclusions.contains(name);
-				boolean repack = repacking && !packExclusions.contains(name);
-
-				File extractedFile = null;
-
-				if (entry.getName().endsWith(extension) && (pack || sign || repack || unpacking)) {
-					extractedFile = new File(tempDir, name);
-					parent = extractedFile.getParentFile();
-					if (!parent.exists())
-						parent.mkdirs();
-					if (verbose)
-						System.out.println("Extracting " + entry.getName()); //$NON-NLS-1$
-					FileOutputStream extracted = new FileOutputStream(extractedFile);
-					Utils.transferStreams(entryStream, extracted, true); // this will close the stream
-					entryStream = null;
-
-					boolean skip = Utils.shouldSkipJar(extractedFile, processAll, verbose);
-					if (skip) {
-						//skipping this file 
-						entryStream = new FileInputStream(extractedFile);
-						if (verbose)
-							System.out.println(entry.getName() + " is not marked, skipping."); //$NON-NLS-1$
-					} else {
-						if (unpacking) {
-							File result = processor.processJar(extractedFile);
-							name = name.substring(0, name.length() - extractedFile.getName().length()) + result.getName();
-							extractedFile = result;
-						} else {
-							if (repack || sign) {
-								processor.clearProcessSteps();
-								if (repack)
-									processor.addProcessStep(packUnpackStep);
-								if (sign)
-									processor.addProcessStep(signStep);
-								extractedFile = processor.processJar(extractedFile);
-							}
-							if (pack) {
-								processor.clearProcessSteps();
-								processor.addProcessStep(packStep);
-								File modifiedFile = processor.processJar(extractedFile);
-								if (modifiedFile.exists()) {
-									try {
-										String newName = name.substring(0, name.length() - extractedFile.getName().length()) + modifiedFile.getName();
-										if (verbose) {
-											System.out.println("Adding " + newName + " to " + outputFile.getPath()); //$NON-NLS-1$ //$NON-NLS-2$
-											System.out.println();
-										}
-										ZipEntry zipEntry = new ZipEntry(newName);
-										entryStream = new FileInputStream(modifiedFile);
-										zipOut.putNextEntry(zipEntry);
-										Utils.transferStreams(entryStream, zipOut, false); //we want to keep zipOut open
-										entryStream.close();
-										Utils.clear(modifiedFile);
-									} catch (IOException e) {
-										Utils.close(entryStream);
-										if (verbose) {
-											e.printStackTrace();
-											System.out.println("Warning: Problem reading " + modifiedFile.getPath() + ".");
-										}
-									}
-									entryStream = null;
-								} else if (verbose) {
-									System.out.println("Warning: " + modifiedFile.getPath() + " not found.");
-								}
-							}
-						}
-						if (extractedFile.exists()) {
-							try {
-								entryStream = new FileInputStream(extractedFile);
-							} catch (IOException e) {
-								if (verbose) {
-									e.printStackTrace();
-									System.out.println("Warning: Problem reading " + extractedFile.getPath() + ".");
-								}
-							}
-						}
-
-						if (verbose && entryStream != null) {
-							System.out.println("Adding " + name + " to " + outputFile.getPath()); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-					}
-				}
-				if (entryStream != null) {
-					ZipEntry newEntry = new ZipEntry(name);
-					try {
-						zipOut.putNextEntry(newEntry);
-						Utils.transferStreams(entryStream, zipOut, false);
-						zipOut.closeEntry();
-					} catch (ZipException e) {
-						if(verbose) {
-							System.out.println("Warning: " + name + " already exists in " + outputFile.getName() + ".  Skipping.");
-						}
-					}
-					entryStream.close();
-				}
-
-				if (extractedFile != null)
-					Utils.clear(extractedFile);
-				
-				if (verbose) {
-					System.out.println();
-					System.out.println("Processing " + zipFile.getPath()); //$NON-NLS-1$
-				}
-			}
-		}
-		zipOut.close();
-		zip.close();
-
-		File finalFile = new File(getWorkingDirectory(), zipFile.getName());
-		if (finalFile.exists())
-			finalFile.delete();
-		outputFile.renameTo(finalFile);
-		Utils.clear(tempDir);
-	}
-
-	private void initialize(ZipFile zip) {
-		ZipEntry entry = zip.getEntry("pack.properties"); //$NON-NLS-1$
-		properties = new Properties();
-		if (entry != null) {
-			InputStream stream = null;
-			try {
-				stream = zip.getInputStream(entry);
-				properties.load(stream);
-			} catch (IOException e) {
-				if (verbose)
-					e.printStackTrace();
-			} finally {
-				Utils.close(stream);
-			}
-		}
-
-		packExclusions = Utils.getPackExclusions(properties);
-		signExclusions = Utils.getSignExclusions(properties);
-
-		packUnpackStep = new PackUnpackStep(properties, verbose);
-		packStep = new PackStep(properties, verbose);
-		signStep = new SignCommandStep(properties, command, verbose);
-		unpackStep = new UnpackStep(properties, verbose);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html
deleted file mode 100644
index ef5fe5e..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/pack-readme.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Eclipse update packing tool readme</title>
-</head>
-<body>
-<h1>Eclipse update packing tool</h1>
-
-<h3>Overview</h3>
-The update packing tool processes a hierarchy of arbitrarily nested
-JARs and ZIP files.  It is a generic utility that performs a depth first traversal of 
-a nested hierarchy of ZIPs and JARs, performs various commands on
-each of the JARs in the hierarchy, and then rebuilds the same hierarchy
-of ZIPs and JARs again.  Currently its main functions are:
-<ul>
-	<li>Packing JARs using the Java 1.5 <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/pack200.html">pack200</a>
-	 command.</li>
-	 <li>Unpacking PACK.GZs using the Java 1.5 <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/unpack200.html">unpack200</a>
-	 command.</li>
-	 <li>Normalizing JARs for future compression by pack200. This is accomplished
-	 by running the pack200 command with the <tt>--repack</tt> command line argument.</li>
-	 <li>Signing JARs to allow for authentication of the origin of JARs. This is accomplished by
-	 running a supplied command (typically the command will just be a wrapper around
-	 the Java <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/jarsigner.html">jarsigner</a> tool).</li>
-</ul>
-The packing tool is used in the following contexts:
-<ul>
-	<li>During a PDE build, to prepare JARs for uploading to an Eclipse
-	update site.  In this usage, it is used to both nomalize JAR contents
-	(pack200 -repack), and sign JARs.</li>
-	<li>On an update site, to convert traditional JAR content into the 
-	compressed pack200 format.</li>
-	<li>From an Eclipse client application during update, to convert
-	compressed pack200 format content into executable JAR files.</li>
-</ul>
-<h3>Tool usage</h3>
-To run the packing tool, you need a 1.5 JRE installed. The tool is run
-by invoking Java as follows:
-
-<pre>
-	java jarprocessor.jar [options] input
-</pre>
-
-Where <tt>input</tt> is either a zip file, a directory, or a JAR (or a pack.gz file). All files ending 
-in ".jar" or ".pack.gz" in the provided zip or directory hierarchy
-will be processed. 
-The following additional command line arguments are supported:
-<ul>
-<li>-repack : Normalize the jars using pack200 <tt>--repack</tt></li>
-<li>-sign &lt;cmd&gt; : signs the jars by executing the provided command.  
-The command will be provided a single argument that will be the full path of the JAR to process.
-</li>
-<li>-pack : for each input in JAR form, produce a corresponding output
-in packed form.  For an input "a.jar", the output is a.jar.pack.gz.  
-</li>
-<li>-unpack : for each input in packed form, produce a corresponding output
-in unpacked form.  For an input "a.jar.pack.gz", the output is "a.jar". -unpack is mutually exclusive with -repack, -pack and -sign.</li>
-<li>-outputDir &lt;dir&gt; : The directory to put the tool's output into.  If the input was a zip file, then an output zip file will be
-created containg all the output files.  If the input was a directory, for each input file there is a corresponding output file in the output directory. By default the current working directory is used.  If the input is in the same
-directory as the output, the input files may be overwritten.</li>
-</ul>
-
-Additionally, when the input is a zip file, it may contain a file called
-<tt>pack.properties</tt>.  The pack.properties file supports the following values:
-<ul>
-<li>pack.excludes =  jarName[, jarName]* : A comma-delimited list of JARs that should not be packed or repacked.
-</li>
-<li>sign.excludes =  jarName[, jarName]* : A comma-delimited list of JARs that should not be signed.
-</li>
-<li>&lt;jarname&gt;.pack.args = option[, option]* : A comma-delimited list of additional arguments that should
-be passed to pack200 when packing any jar with name &lt;jarname&gt;.
-</ul>
-</p>
-<p>
-<font size=-1>
-Copyright (c) IBM Corporation and others 2006. All rights reserved. This program and the accompanying materials
-are made available under the terms of the 
-<a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License v1.0</a>.
-</font>
-</body>
-</html>
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java
deleted file mode 100644
index 075d88b..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/Verifier.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.jarprocessor.verifier;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.Properties;
-
-import org.eclipse.equinox.internal.p2.jarprocessor.UnpackStep;
-import org.eclipse.equinox.internal.p2.jarprocessor.Utils;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessor;
-import org.eclipse.internal.provisional.equinox.p2.jarprocessor.JarProcessorExecutor;
-
-public class Verifier extends JarProcessorExecutor {
-
-	private static void printUsage() {
-		System.out.println("This tool verifies that unpacking a pack.gz file with the jarprocessor results in a valid jar file."); //$NON-NLS-1$
-		System.out.println("Usage: java -cp jarprocessor.jar org.eclipse.update.internal.jarprocessor.verifier.Verifier -dir <workingDirectory> input [input]"); //$NON-NLS-1$
-		System.out.println(""); //$NON-NLS-1$
-		System.out.println("-dir : specifies a working directory where pack.gz files can be temporarily unpacked"); //$NON-NLS-1$
-		System.out.println("input : a list of directories and/or pack.gz files to verify."); //$NON-NLS-1$
-
-	}
-
-	public static void main(String[] args) {
-		if (!VerifyStep.canVerify()) {
-			System.out.println("Can't find jarsigner.  Please adjust your system path or use a jdk."); //$NON-NLS-1$
-			printUsage();
-			return;
-		}
-
-		String workingDirectory = null;
-		String [] input;
-		
-		if(args.length == 0) {
-			workingDirectory = "."; //$NON-NLS-1$
-			input = new String[] {"."}; //$NON-NLS-1$
-		}else {
-			int idx = 0;
-			if(args[0] == "-help"){ //$NON-NLS-1$
-				printUsage();
-				return;
-			}
-			if (args[idx] == "-dir") { //$NON-NLS-1$
-				workingDirectory = args[++idx];
-				idx++;
-			} else {
-				workingDirectory = "temp"; //$NON-NLS-1$
-			}
-
-			input = new String[args.length - idx];
-			System.arraycopy(args, idx, input, 0, args.length - idx);
-		}
-		
-		File workingDir = new File(workingDirectory);
-		boolean clear = false;
-		if( workingDir.exists()) {
-			workingDir = new File( workingDir, "jarprocessor.verifier.temp"); //$NON-NLS-1$
-			clear = true;
-		}
-		
-		Verifier verifier = new Verifier();
-		verifier.verify(workingDir, input);
-		
-		if(clear)
-			workingDir.deleteOnExit();
-	}
-
-	public void verify(final File workingDirectory, String[] input) {
-		Properties options = new Properties();
-
-		JarProcessor unpacker = new JarProcessor();
-		unpacker.addProcessStep(new UnpackStep(options, false));
-		unpacker.setWorkingDirectory(workingDirectory.getAbsolutePath());
-
-		/* There is no need to use a full processor to do the verification unless we want to verify nested jars as well.
-		 * So for now, use a custom processor to just call the verify step directly.
-		 */
-		final VerifyStep verifyStep = new VerifyStep(options, false);
-		JarProcessor verifier = new JarProcessor() {
-			public File processJar(File inputFile) {
-				return verifyStep.postProcess(inputFile, workingDirectory, null);
-			}
-		};
-
-		for (int i = 0; i < input.length; i++) {
-			File inputFile = new File(input[i]);
-			if (inputFile.exists()) {
-				try {
-					process(inputFile, Utils.PACK_GZ_FILTER, true, unpacker, verifier);
-				} catch (FileNotFoundException e) {
-					e.printStackTrace();
-				}
-			}
-		}
-		Utils.clear(workingDirectory);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/VerifyStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/VerifyStep.java
deleted file mode 100644
index 7e63698..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/equinox/internal/p2/jarprocessor/verifier/VerifyStep.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM - Initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.jarprocessor.verifier;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.equinox.internal.p2.jarprocessor.CommandStep;
-import org.eclipse.equinox.internal.p2.jarprocessor.Utils;
-
-public class VerifyStep extends CommandStep {
-
-	static String verifyCommand = "jarsigner"; //$NON-NLS-1$
-	static Boolean canVerify = null;
-
-	public static boolean canVerify() {
-		if (canVerify != null)
-			return canVerify.booleanValue();
-
-		String javaHome = System.getProperty("java.home"); //$NON-NLS-1$
-		String command = javaHome + "/../bin/jarsigner"; //$NON-NLS-1$
-		int result = execute(new String[] {command});
-		if (result < 0) {
-			command = "jarsigner"; //$NON-NLS-1$
-			result = execute(new String[] {command});
-			if (result < 0) {
-				canVerify = Boolean.FALSE;
-				return false;
-			}
-		}
-		verifyCommand = command;
-		canVerify = Boolean.TRUE;
-		return true;
-	}
-
-	public VerifyStep(Properties options, boolean verbose) {
-		super(options, verifyCommand, ".jar", verbose); //$NON-NLS-1$
-	}
-
-	public String getStepName() {
-		return "Verify"; //$NON-NLS-1$
-	}
-
-	public File postProcess(File input, File workingDirectory, List containers) {
-		if (canVerify() && verifyCommand != null) {
-			try {
-				System.out.print("Verifying " + input.getName() + ":  "); //$NON-NLS-1$ //$NON-NLS-2$
-				String[] cmd = new String[] {verifyCommand, "-verify", input.getCanonicalPath()}; //$NON-NLS-1$
-				int result = execute(cmd, true);
-				if (result != 0 && verbose)
-					System.out.println("Error: " + result + " was returned from command: " + Utils.concat(cmd)); //$NON-NLS-1$ //$NON-NLS-2$
-			} catch (IOException e) {
-				if (verbose)
-					e.printStackTrace();
-				return null;
-			}
-			return input;
-		}
-		return null;
-	}
-
-	public File preProcess(File input, File workingDirectory, List containers) {
-		return null;
-	}
-
-	public String recursionEffect(String entryName) {
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/IProcessStep.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/IProcessStep.java
deleted file mode 100644
index 1479c4c..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/IProcessStep.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.internal.provisional.equinox.p2.jarprocessor;
-
-import java.io.File;
-import java.util.List;
-import java.util.Properties;
-
-/**
- * @author aniefer@ca.ibm.com
- *
- */
-public interface IProcessStep {
-
-	/**
-	 * The effect of this processing step if the JarProcessor was to recurse on this entry.
-	 * Return null if this step will not do anything with this entry.
-	 * Return the new entryName if this step will modify this entry on recursion.
-	 * @param entryName
-	 * @return The new entry name, or <code>null</code>
-	 */
-	public String recursionEffect(String entryName);
-
-	/**
-	 * Perform some processing on the input file before the JarProcessor considers the entries for recursion.
-	 * @param input
-	 * @param workingDirectory
-	 * @param containers inf properties for containing jars, innermost jar is first on the list
-	 * @return the file containing the result of the processing
-	 */
-	public File preProcess(File input, File workingDirectory, List containers);
-
-	/**
-	 * Perform some processing on the input file after the JarProcessor returns from recursion.
-	 *
-	 * @param input
-	 * @param workingDirectory
-	 * @param containers inf properties for containing jars, innermost jar is first on the list
-	 * @return the file containing the result of the processing
-	 */
-	public File postProcess(File input, File workingDirectory, List containers);
-
-	/**
-	 * Return the name of this process step
-	 * @return the name of this process step
-	 */
-	public String getStepName();
-
-	/**
-	 * Adjust any properties in the eclipse.inf as appropriate for this step
-	 * @param input
-	 * @param inf
-	 * @param containers inf properties for containing jars, innermost jar is first on the list
-	 */
-	public void adjustInf(File input, Properties inf, List containers);
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java
deleted file mode 100644
index 0badecc..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessor.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.internal.provisional.equinox.p2.jarprocessor;
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.*;
-import org.eclipse.equinox.internal.p2.jarprocessor.*;
-
-public class JarProcessor {
-	public static final String PACKED_SUFFIX = "pack.gz"; //$NON-NLS-1$
-	
-	private List steps = new ArrayList();
-	private String workingDirectory = ""; //$NON-NLS-1$
-	private int depth = -1;
-	private boolean verbose = false;
-	private boolean processAll = false;
-	private LinkedList containingInfs = new LinkedList();
-
-	static public JarProcessor getUnpackProcessor(Properties properties) {
-		if (!canPerformUnpack())
-			throw new UnsupportedOperationException();
-		JarProcessor processor = new JarProcessor();
-		processor.addProcessStep(new UnpackStep(properties));
-		return processor;
-	}
-
-	static public JarProcessor getPackProcessor(Properties properties) {
-		if (!canPerformPack())
-			throw new UnsupportedOperationException();
-		JarProcessor processor = new JarProcessor();
-		processor.addProcessStep(new PackStep(properties));
-		return processor;
-	}
-
-	static public boolean canPerformPack() {
-		return PackStep.canPack();
-	}
-
-	static public boolean canPerformUnpack() {
-		return UnpackStep.canUnpack();
-	}
-
-	public String getWorkingDirectory() {
-		return workingDirectory;
-	}
-
-	public void setWorkingDirectory(String dir) {
-		if(dir != null)
-			workingDirectory = dir;
-	}
-	
-	public void setVerbose(boolean verbose) {
-		this.verbose = verbose;
-	}
-	
-	public void setProcessAll(boolean all){
-		this.processAll = all;
-	}
-
-	public void addProcessStep(IProcessStep step) {
-		steps.add(step);
-	}
-
-	public void clearProcessSteps() {
-		steps.clear();
-	}
-
-	/**
-	 * Recreate a jar file.  The replacements map specifies entry names to be replaced, the replacements are
-	 * expected to be found in directory.
-	 * 
-	 * @param jar - The input jar
-	 * @param outputJar - the output
-	 * @param replacements - map of entryName -> new entryName
-	 * @param directory - location to find file for new entryName
-	 * @throws IOException
-	 */
-	private void recreateJar(JarFile jar, JarOutputStream outputJar, Map replacements, File directory, Properties inf) throws IOException {
-		InputStream in = null;
-		boolean marked = false;
-		try {
-			Enumeration entries = jar.entries();
-			for (JarEntry entry = (JarEntry) entries.nextElement(); entry != null; entry = entries.hasMoreElements() ? (JarEntry) entries.nextElement() : null) {
-				File replacement = null;
-				JarEntry newEntry = null;
-				if (replacements.containsKey(entry.getName())) {
-					String name = (String) replacements.get(entry.getName());
-					replacement = new File(directory, name);
-					if (name != null) {
-						if (replacement.exists()) {
-							try {
-								in = new BufferedInputStream(new FileInputStream(replacement));
-								newEntry = new JarEntry(name);
-							} catch (Exception e) {
-								if (verbose) {
-									e.printStackTrace();
-									System.out.println("Warning: Problem reading " +replacement.getPath() + ", using " + jar.getName() + File.separator + entry.getName()  + " instead."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-								}
-							}
-						} else if (verbose) {
-							System.out.println("Warning: " + replacement.getPath() + " not found, using " + jar.getName() + File.separator + entry.getName() + " instead.");	 //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						}
-					}
-				}
-				if (newEntry == null) {
-					try {
-						in = new BufferedInputStream(jar.getInputStream(entry));
-						newEntry = new JarEntry(entry.getName());
-					} catch( Exception e ) {
-						if(verbose) {
-							e.printStackTrace();
-							System.out.println("ERROR: problem reading " + entry.getName() + " from " + jar.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-						continue;
-					}
-				}
-				newEntry.setTime(entry.getTime());
-				outputJar.putNextEntry(newEntry);
-				if (entry.getName().equals(Utils.MARK_FILE_NAME)) {
-					//The eclipse.inf file was read in earlier, don't need to reread it, just write it out now
-					Utils.storeProperties(inf, outputJar);
-					marked = true;
-				} else {
-					Utils.transferStreams(in, outputJar, false);
-				}
-				outputJar.closeEntry();
-				in.close();
-
-				//delete the nested jar file
-				if (replacement != null) {
-					replacement.delete();
-				}
-			}
-			if (!marked) {
-				JarEntry entry = new JarEntry(Utils.MARK_FILE_NAME);
-				outputJar.putNextEntry(entry);
-				Utils.storeProperties(inf, outputJar);
-				outputJar.closeEntry();
-			}
-		} finally {
-			Utils.close(outputJar);
-			Utils.close(jar);
-			Utils.close(in);
-		}
-	}
-
-	private String recursionEffect(String entryName) {
-		String result = null;
-		for (Iterator iter = steps.iterator(); iter.hasNext();) {
-			IProcessStep step = (IProcessStep) iter.next();
-
-			result = step.recursionEffect(entryName);
-			if (result != null)
-				entryName = result;
-		}
-		return result;
-	}
-
-	private void extractEntries(JarFile jar, File tempDir, Map data, Properties inf) throws IOException {
-		if(inf != null ) {
-			//skip if excluding children
-			if(inf.containsKey(Utils.MARK_EXCLUDE_CHILDREN)){
-				String excludeChildren = inf.getProperty(Utils.MARK_EXCLUDE_CHILDREN);
-				if( Boolean.valueOf(excludeChildren).booleanValue() )
-					if(verbose){
-						for(int i = 0; i <= depth; i++)
-							System.out.print("  "); //$NON-NLS-1$
-						System.out.println("Children of " + jar.getName() + "are excluded from processing."); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					return;
-			}
-		}
-		
-		Enumeration entries = jar.entries();
-		if (entries.hasMoreElements()) {
-			for (JarEntry entry = (JarEntry) entries.nextElement(); entry != null; entry = entries.hasMoreElements() ? (JarEntry) entries.nextElement() : null) {
-				String name = entry.getName();
-				String newName = recursionEffect(name);
-				if (newName != null) {
-					if(verbose){
-						for(int i = 0; i <= depth; i++)
-							System.out.print("  "); //$NON-NLS-1$
-						System.out.println("Processing nested file: " + name); //$NON-NLS-1$
-					}
-					//extract entry to temp directory
-					File extracted = new File(tempDir, name);
-					File parentDir = extracted.getParentFile();
-					if (!parentDir.exists())
-						parentDir.mkdirs();
-
-					InputStream in = null;
-					OutputStream out = null;
-					try {
-						in = jar.getInputStream(entry);
-						out = new BufferedOutputStream(new FileOutputStream(extracted));
-						Utils.transferStreams(in, out, true); //this will close both streams
-					} finally {
-						Utils.close(in);
-						Utils.close(out);
-					}
-					extracted.setLastModified(entry.getTime());
-
-					//recurse
-					containingInfs.addFirst(inf);
-					String dir = getWorkingDirectory();
-					setWorkingDirectory(parentDir.getCanonicalPath());
-					File result = processJar(extracted);
-
-					newName = name.substring(0, name.length() - extracted.getName().length()) + result.getName();
-					data.put(name, newName);
-
-					setWorkingDirectory(dir);
-					containingInfs.removeFirst();
-
-					//delete the extracted item leaving the recursion result
-					if (!name.equals(newName))
-						extracted.delete();
-				}
-			}
-		}
-	}
-
-	private File preProcess(File input, File tempDir) {
-		File result = null;
-		for (Iterator iter = steps.iterator(); iter.hasNext();) {
-			IProcessStep step = (IProcessStep) iter.next();
-			result = step.preProcess(input, tempDir, containingInfs);
-			if (result != null)
-				input = result;
-		}
-		return input;
-	}
-
-	private File postProcess(File input, File tempDir) {
-		File result = null;
-		for (Iterator iter = steps.iterator(); iter.hasNext();) {
-			IProcessStep step = (IProcessStep) iter.next();
-			result = step.postProcess(input, tempDir, containingInfs);
-			if (result != null)
-				input = result;
-		}
-		return input;
-	}
-
-	private void adjustInf(File input, Properties inf) {
-		for (Iterator iter = steps.iterator(); iter.hasNext();) {
-			IProcessStep step = (IProcessStep) iter.next();
-			step.adjustInf(input, inf, containingInfs);
-		}
-	}
-
-	public File processJar(File input) throws IOException {
-		++depth;
-		long lastModified = input.lastModified();
-		File workingDir = new File(getWorkingDirectory());
-		if (!workingDir.exists())
-			workingDir.mkdirs();
-
-		boolean skip = Utils.shouldSkipJar(input, processAll, verbose);
-		if (depth == 0 && verbose) {
-			if (skip)
-				System.out.println("Skipping " + input.getPath()); //$NON-NLS-1$
-			else {
-				System.out.print("Running "); //$NON-NLS-1$ 
-				for (Iterator iter = steps.iterator(); iter.hasNext();) {
-					IProcessStep step = (IProcessStep) iter.next();
-					System.out.print(step.getStepName() + " "); //$NON-NLS-1$
-				}
-				System.out.println("on " + input.getPath()); //$NON-NLS-1$
-			}
-		}
-
-		if (skip) {
-			//This jar was not marked as conditioned, and we are only processing conditioned jars, so do nothing
-			--depth;
-			return input;
-		}
-
-		//pre
-		File workingFile = preProcess(input, workingDir);
-
-		//Extract entries from jar and recurse on them
-		File tempDir = null;
-		if (depth == 0) {
-			tempDir = new File(workingDir, "temp." + workingFile.getName()); //$NON-NLS-1$
-		} else {
-			File parent = workingDir.getParentFile();
-			tempDir = new File(parent, "temp_" + depth + '_' + workingFile.getName()); //$NON-NLS-1$
-		}
-
-		JarFile jar = new JarFile(workingFile, false);
-		Map replacements = new HashMap();
-		Properties inf = Utils.getEclipseInf(workingFile, verbose);
-		extractEntries(jar, tempDir, replacements, inf);
-
-		if (inf != null)
-			adjustInf(workingFile, inf);
-
-		//Recreate the jar with replacements. 
-		//TODO: This is not strictly necessary if we didn't change the inf file and didn't change any content
-		File tempJar = null;
-		tempJar = new File(tempDir, workingFile.getName());
-		File parent = tempJar.getParentFile();
-		if (!parent.exists())
-			parent.mkdirs();
-		JarOutputStream jarOut = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(tempJar)));
-		recreateJar(jar, jarOut, replacements, tempDir, inf);
-
-		jar.close();
-		if (tempJar != null) {
-			if (!workingFile.equals(input)) {
-				workingFile.delete();
-			}
-			workingFile = tempJar;
-		}
-
-		//post
-		File result = postProcess(workingFile, workingDir);
-		
-		//have to normalize after the post steps
-		normalize(result, workingDir);
-		
-		if (!result.equals(workingFile) && !workingFile.equals(input))
-			workingFile.delete();
-		if (!result.getParentFile().equals(workingDir)) {
-			File finalFile = new File(workingDir, result.getName());
-			if (finalFile.exists())
-				finalFile.delete();
-			result.renameTo(finalFile);
-			result = finalFile;
-		}
-
-		if (tempDir.exists())
-			Utils.clear(tempDir);
-
-		result.setLastModified(lastModified);
-		--depth;
-		return result;
-	}
-	
-	private void normalize(File input, File directory) {
-		if(input.getName().endsWith(JarProcessor.PACKED_SUFFIX)) {
-			//not a jar
-			return;
-		}
-		try {
-			File tempJar = new File(directory, "temp_" + input.getName()); //$NON-NLS-1$
-			JarFile jar = null;
-			try {
-				jar = new JarFile(input, false);
-			} catch (JarException e) {
-				//not a jar
-				return ;
-			}
-			JarOutputStream jarOut = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(tempJar)));
-			InputStream in = null;
-			try {
-				Enumeration entries = jar.entries();
-				for (JarEntry entry = (JarEntry) entries.nextElement(); entry != null; entry = entries.hasMoreElements() ? (JarEntry) entries.nextElement() : null) {
-					JarEntry newEntry = new JarEntry(entry.getName());
-					newEntry.setTime(entry.getTime());
-					in = new BufferedInputStream(jar.getInputStream(entry));
-					jarOut.putNextEntry(newEntry);
-					Utils.transferStreams(in, jarOut, false);
-					jarOut.closeEntry();
-					in.close();
-				}
-			} finally {
-				Utils.close(jarOut);
-				Utils.close(jar);
-				Utils.close(in);
-			}
-			tempJar.setLastModified(input.lastModified());
-			input.delete();
-			tempJar.renameTo(input);
-		} catch (IOException e) {
-			if (verbose) {
-				System.out.println("Error normalizing jar " + input.getName()); //$NON-NLS-1$
-				e.printStackTrace();
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor.java b/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor.java
deleted file mode 100644
index 29a560e..0000000
--- a/bundles/org.eclipse.equinox.p2.jarprocessor/src/org/eclipse/internal/provisional/equinox/p2/jarprocessor/JarProcessorExecutor.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.internal.provisional.equinox.p2.jarprocessor;
-
-import java.io.*;
-import java.util.Properties;
-import java.util.zip.ZipException;
-import org.eclipse.equinox.internal.p2.jarprocessor.*;
-
-public class JarProcessorExecutor {
-	public static class Options {
-		public String outputDir = "."; //$NON-NLS-1$
-		public String signCommand = null;
-		public boolean pack = false;
-		public boolean repack = false;
-		public boolean unpack = false;
-		public boolean verbose = false;
-		public boolean processAll = false;
-		public File input = null;
-	}
-
-	public void runJarProcessor(Options options) {
-		if (options.input.isFile() && options.input.getName().endsWith(".zip")) { //$NON-NLS-1$
-			ZipProcessor processor = new ZipProcessor();
-			processor.setWorkingDirectory(options.outputDir);
-			processor.setSignCommand(options.signCommand);
-			processor.setPack(options.pack);
-			processor.setRepack(options.repack || (options.pack && options.signCommand != null));
-			processor.setUnpack(options.unpack);
-			processor.setVerbose(options.verbose);
-			processor.setProcessAll(options.processAll);
-			try {
-				processor.processZip(options.input);
-			} catch (ZipException e) {
-				if (options.verbose)
-					e.printStackTrace();
-			} catch (IOException e) {
-				if (options.verbose)
-					e.printStackTrace();
-			}
-		} else {
-			JarProcessor processor = new JarProcessor();
-			JarProcessor packProcessor = null;
-
-			processor.setWorkingDirectory(options.outputDir);
-			processor.setProcessAll(options.processAll);
-			processor.setVerbose(options.verbose);
-
-			//load options file
-			Properties properties = new Properties();
-			if (options.input.isDirectory()) {
-				File packProperties = new File(options.input, "pack.properties"); //$NON-NLS-1$
-				if (packProperties.exists() && packProperties.isFile()) {
-					InputStream in = null;
-					try {
-						in = new BufferedInputStream(new FileInputStream(packProperties));
-						properties.load(in);
-					} catch (IOException e) {
-						if (options.verbose)
-							e.printStackTrace();
-					} finally {
-						Utils.close(in);
-					}
-				}
-			}
-
-			if (options.unpack)
-				addUnpackStep(processor, properties, options);
-
-			if (options.repack || (options.pack && options.signCommand != null))
-				addPackUnpackStep(processor, properties, options);
-
-			if (options.signCommand != null)
-				addSignStep(processor, properties, options);
-
-			if (options.pack) {
-				packProcessor = new JarProcessor();
-				packProcessor.setWorkingDirectory(options.outputDir);
-				packProcessor.setProcessAll(options.processAll);
-				packProcessor.setVerbose(options.verbose);
-				addPackStep(packProcessor, properties, options);
-			}
-
-			try {
-				process(options.input, options.unpack ? Utils.PACK_GZ_FILTER : Utils.JAR_FILTER, options.verbose, processor, packProcessor);
-			} catch (FileNotFoundException e) {
-				if (options.verbose)
-					e.printStackTrace();
-			}
-		}
-	}
-
-	protected void process(File input, FileFilter filter, boolean verbose, JarProcessor processor, JarProcessor packProcessor) throws FileNotFoundException {
-		if (!input.exists())
-			throw new FileNotFoundException();
-
-		File[] files = null;
-		if (input.isDirectory()) {
-			files = input.listFiles();
-		} else if (filter.accept(input)) {
-			files = new File[] {input};
-		} else
-			return;
-		for (int i = 0; i < files.length; i++) {
-			if (files[i].isDirectory()) {
-				String dir = processor.getWorkingDirectory();
-				processor.setWorkingDirectory(dir + "/" + files[i].getName()); //$NON-NLS-1$
-				if (packProcessor != null)
-					packProcessor.setWorkingDirectory(dir + "/" + files[i].getName()); //$NON-NLS-1$
-				process(files[i], filter, verbose, processor, packProcessor);
-				processor.setWorkingDirectory(dir);
-				if (packProcessor != null)
-					packProcessor.setWorkingDirectory(dir);
-			} else if (filter.accept(files[i])) {
-				try {
-					File result = processor.processJar(files[i]);
-					if (packProcessor != null && result != null && result.exists()) {
-						packProcessor.processJar(result);
-					}
-				} catch (IOException e) {
-					if (verbose)
-						e.printStackTrace();
-				}
-			}
-		}
-	}
-
-	public void addPackUnpackStep(JarProcessor processor, Properties properties, JarProcessorExecutor.Options options) {
-		processor.addProcessStep(new PackUnpackStep(properties, options.verbose));
-	}
-
-	public void addSignStep(JarProcessor processor, Properties properties, JarProcessorExecutor.Options options) {
-		processor.addProcessStep(new SignCommandStep(properties, options.signCommand, options.verbose));
-	}
-
-	public void addPackStep(JarProcessor processor, Properties properties, JarProcessorExecutor.Options options) {
-		processor.addProcessStep(new PackStep(properties, options.verbose));
-	}
-
-	public void addUnpackStep(JarProcessor processor, Properties properties, JarProcessorExecutor.Options options) {
-		processor.addProcessStep(new UnpackStep(properties, options.verbose));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/.classpath b/bundles/org.eclipse.equinox.p2.metadata.generator/.classpath
deleted file mode 100644
index ef37949..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" output="bin_ant" path="src_ant"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/.cvsignore b/bundles/org.eclipse.equinox.p2.metadata.generator/.cvsignore
deleted file mode 100644
index e17d879..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-org.eclipse.equinox.simpleconfigurator.jar
-org.eclipse.update.configurator.jar
-bin
-ant_tasks
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch b/bundles/org.eclipse.equinox.p2.metadata.generator/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch
deleted file mode 100644
index ec9c3e8..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.metadata.generator"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.metadata.generator"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.metadata.generator/scripts/buildExtraJAR.xml}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value=""/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/.project b/bundles/org.eclipse.equinox.p2.metadata.generator/.project
deleted file mode 100644
index 6e83cc2..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.metadata.generator</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>
-			<triggers>full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9c85103..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,344 +0,0 @@
-#Thu Feb 21 15:21:23 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f873868..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,60 +0,0 @@
-#Thu Jan 24 12:13:40 EST 2008
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.0_Foundation-1.0.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.0_Foundation-1.0.profile
deleted file mode 100644
index 1157a29..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.0_Foundation-1.0.profile
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.microedition.io
-org.osgi.framework.bootdelegation = \
- javax.microedition.io
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- CDC-1.0/Foundation-1.0
-osgi.java.profile.name = CDC-1.0/Foundation-1.0
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.1_Foundation-1.1.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.1_Foundation-1.1.profile
deleted file mode 100644
index 374300a..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/CDC-1.1_Foundation-1.1.profile
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.microedition.io,\
- javax.microedition.pki,\
- javax.security.auth.x500
-org.osgi.framework.bootdelegation = \
- javax.microedition.io,\
- javax.microedition.pki,\
- javax.security.auth.x500
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- CDC-1.0/Foundation-1.0,\
- CDC-1.1/Foundation-1.1
-osgi.java.profile.name = CDC-1.1/Foundation-1.1
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.2.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.2.profile
deleted file mode 100644
index 28f973a..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.2.profile
+++ /dev/null
@@ -1,42 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- org.omg.CORBA,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextPackage
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- JRE-1.1,\
- J2SE-1.2
-osgi.java.profile.name = J2SE-1.2
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.3.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.3.profile
deleted file mode 100644
index b7dbdfa..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.3.profile
+++ /dev/null
@@ -1,63 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.omg.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3
-osgi.java.profile.name = J2SE-1.3
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.4.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.4.profile
deleted file mode 100644
index b307c97..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.4.profile
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.crypto,\
- javax.crypto.interfaces,\
- javax.crypto.spec,\
- javax.imageio,\
- javax.imageio.event,\
- javax.imageio.metadata,\
- javax.imageio.plugins.jpeg,\
- javax.imageio.spi,\
- javax.imageio.stream,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.net,\
- javax.net.ssl,\
- javax.print,\
- javax.print.attribute,\
- javax.print.attribute.standard,\
- javax.print.event,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.security.auth,\
- javax.security.auth.callback,\
- javax.security.auth.kerberos,\
- javax.security.auth.login,\
- javax.security.auth.spi,\
- javax.security.auth.x500,\
- javax.security.cert,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.sql,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- javax.transaction.xa,\
- javax.xml.parsers,\
- javax.xml.transform,\
- javax.xml.transform.dom,\
- javax.xml.transform.sax,\
- javax.xml.transform.stream,\
- org.ietf.jgss,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextExtPackage,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.Dynamic,\
- org.omg.DynamicAny,\
- org.omg.DynamicAny.DynAnyFactoryPackage,\
- org.omg.DynamicAny.DynAnyPackage,\
- org.omg.IOP,\
- org.omg.IOP.CodecFactoryPackage,\
- org.omg.IOP.CodecPackage,\
- org.omg.Messaging,\
- org.omg.PortableInterceptor,\
- org.omg.PortableInterceptor.ORBInitInfoPackage,\
- org.omg.PortableServer,\
- org.omg.PortableServer.CurrentPackage,\
- org.omg.PortableServer.POAManagerPackage,\
- org.omg.PortableServer.POAPackage,\
- org.omg.PortableServer.portable,\
- org.omg.PortableServer.ServantLocatorPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi,\
- org.w3c.dom,\
- org.xml.sax,\
- org.xml.sax.ext,\
- org.xml.sax.helpers
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.ietf.jgss,\
- org.omg.*,\
- org.w3c.*,\
- org.xml.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3,\
- J2SE-1.4
-osgi.java.profile.name = J2SE-1.4
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.5.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.5.profile
deleted file mode 100644
index d23d6ca..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/J2SE-1.5.profile
+++ /dev/null
@@ -1,146 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.activity,\
- javax.crypto,\
- javax.crypto.interfaces,\
- javax.crypto.spec,\
- javax.imageio,\
- javax.imageio.event,\
- javax.imageio.metadata,\
- javax.imageio.plugins.bmp,\
- javax.imageio.plugins.jpeg,\
- javax.imageio.spi,\
- javax.imageio.stream,\
- javax.management,\
- javax.management.loading,\
- javax.management.modelmbean,\
- javax.management.monitor,\
- javax.management.openmbean,\
- javax.management.relation,\
- javax.management.remote,\
- javax.management.remote.rmi,\
- javax.management.timer,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.net,\
- javax.net.ssl,\
- javax.print,\
- javax.print.attribute,\
- javax.print.attribute.standard,\
- javax.print.event,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.rmi.ssl,\
- javax.security.auth,\
- javax.security.auth.callback,\
- javax.security.auth.kerberos,\
- javax.security.auth.login,\
- javax.security.auth.spi,\
- javax.security.auth.x500,\
- javax.security.cert,\
- javax.security.sasl,\
- javax.servlet,\
- javax.servlet.http,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.sql,\
- javax.sql.rowset,\
- javax.sql.rowset.serial,\
- javax.sql.rowset.spi,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.plaf.synth,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- javax.transaction.xa,\
- javax.xml,\
- javax.xml.datatype,\
- javax.xml.namespace,\
- javax.xml.parsers,\
- javax.xml.transform,\
- javax.xml.transform.dom,\
- javax.xml.transform.sax,\
- javax.xml.transform.stream,\
- javax.xml.validation,\
- javax.xml.xpath,\
- org.ietf.jgss,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextExtPackage,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.Dynamic,\
- org.omg.DynamicAny,\
- org.omg.DynamicAny.DynAnyFactoryPackage,\
- org.omg.DynamicAny.DynAnyPackage,\
- org.omg.IOP,\
- org.omg.IOP.CodecFactoryPackage,\
- org.omg.IOP.CodecPackage,\
- org.omg.Messaging,\
- org.omg.PortableInterceptor,\
- org.omg.PortableInterceptor.ORBInitInfoPackage,\
- org.omg.PortableServer,\
- org.omg.PortableServer.CurrentPackage,\
- org.omg.PortableServer.POAManagerPackage,\
- org.omg.PortableServer.POAPackage,\
- org.omg.PortableServer.portable,\
- org.omg.PortableServer.ServantLocatorPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi,\
- org.w3c.dom,\
- org.w3c.dom.bootstrap,\
- org.w3c.dom.events,\
- org.w3c.dom.ls,\
- org.xml.sax,\
- org.xml.sax.ext,\
- org.xml.sax.helpers
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.ietf.jgss,\
- org.omg.*,\
- org.w3c.*,\
- org.xml.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3,\
- J2SE-1.4,\
- J2SE-1.5
-osgi.java.profile.name = J2SE-1.5
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/JRE-1.1.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/JRE-1.1.profile
deleted file mode 100644
index 9a8d8fd..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/JRE-1.1.profile
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = 
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- JRE-1.1
-osgi.java.profile.name = JRE-1.1
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/JavaSE-1.6.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/JavaSE-1.6.profile
deleted file mode 100644
index 1c7abcb..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/JavaSE-1.6.profile
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.activity,\
- javax.crypto,\
- javax.crypto.interfaces,\
- javax.crypto.spec,\
- javax.imageio,\
- javax.imageio.event,\
- javax.imageio.metadata,\
- javax.imageio.plugins.bmp,\
- javax.imageio.plugins.jpeg,\
- javax.imageio.spi,\
- javax.imageio.stream,\
- javax.management,\
- javax.management.loading,\
- javax.management.modelmbean,\
- javax.management.monitor,\
- javax.management.openmbean,\
- javax.management.relation,\
- javax.management.remote,\
- javax.management.remote.rmi,\
- javax.management.timer,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.net,\
- javax.net.ssl,\
- javax.print,\
- javax.print.attribute,\
- javax.print.attribute.standard,\
- javax.print.event,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.rmi.ssl,\
- javax.security.auth,\
- javax.security.auth.callback,\
- javax.security.auth.kerberos,\
- javax.security.auth.login,\
- javax.security.auth.spi,\
- javax.security.auth.x500,\
- javax.security.cert,\
- javax.security.sasl,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.sql,\
- javax.sql.rowset,\
- javax.sql.rowset.serial,\
- javax.sql.rowset.spi,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.plaf.synth,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- javax.transaction.xa,\
- javax.xml,\
- javax.xml.datatype,\
- javax.xml.namespace,\
- javax.xml.parsers,\
- javax.xml.transform,\
- javax.xml.transform.dom,\
- javax.xml.transform.sax,\
- javax.xml.transform.stream,\
- javax.xml.validation,\
- javax.xml.xpath,\
- org.ietf.jgss,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextExtPackage,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.Dynamic,\
- org.omg.DynamicAny,\
- org.omg.DynamicAny.DynAnyFactoryPackage,\
- org.omg.DynamicAny.DynAnyPackage,\
- org.omg.IOP,\
- org.omg.IOP.CodecFactoryPackage,\
- org.omg.IOP.CodecPackage,\
- org.omg.Messaging,\
- org.omg.PortableInterceptor,\
- org.omg.PortableInterceptor.ORBInitInfoPackage,\
- org.omg.PortableServer,\
- org.omg.PortableServer.CurrentPackage,\
- org.omg.PortableServer.POAManagerPackage,\
- org.omg.PortableServer.POAPackage,\
- org.omg.PortableServer.portable,\
- org.omg.PortableServer.ServantLocatorPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi,\
- org.w3c.dom,\
- org.w3c.dom.bootstrap,\
- org.w3c.dom.events,\
- org.w3c.dom.ls,\
- org.xml.sax,\
- org.xml.sax.ext,\
- org.xml.sax.helpers
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.ietf.jgss,\
- org.omg.*,\
- org.w3c.*,\
- org.xml.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3,\
- J2SE-1.4,\
- J2SE-1.5,\
- JavaSE-1.6
-osgi.java.profile.name = JavaSE-1.6
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.metadata.generator/META-INF/MANIFEST.MF
deleted file mode 100644
index 58fc842..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,31 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.metadata.generator;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Require-Bundle: org.eclipse.equinox.p2.core,
- org.eclipse.osgi,
- org.eclipse.equinox.common
-Import-Package: javax.xml.parsers,
- org.eclipse.equinox.app;version="1.0.0",
- org.eclipse.equinox.internal.frameworkadmin.equinox,
- org.eclipse.equinox.internal.p2.artifact.repository,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.frameworkadmin,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.w3c.dom,
- org.xml.sax,
- org.xml.sax.helpers
-Bundle-Activator: org.eclipse.equinox.internal.p2.metadata.generator.Activator
-Export-Package: org.eclipse.equinox.internal.p2.metadata.generator;x-internal:=true,
- org.eclipse.equinox.internal.p2.metadata.generator.features;x-friends:="org.eclipse.equinox.p2.updatesite, org.eclipse.equinox.p2.directorywatcher",
- org.eclipse.equinox.internal.provisional.p2.metadata.generator
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/Metadata Generator SDK.launch b/bundles/org.eclipse.equinox.p2.metadata.generator/Metadata Generator SDK.launch
deleted file mode 100644
index 2fd1986..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/Metadata Generator SDK.launch
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Metadata Generator SDK"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/j2sdk1.4.2_08"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console &#13;&#10;-consolelog&#13;&#10;-application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator&#13;&#10;-metadataRepository file:C:/equinox.p2/servers/&#13;&#10;-artifactRepository file:C:/equinox.p2/servers/&#13;&#10;-source c:\eclipse\latest\eclipse&#13;&#10;-root sdk&#13;&#10;-rootVersion 3.4.0.I20080212withcopyrightlicensechanges&#13;&#10;-flavor tooling&#13;&#10;-publishArtifacts&#13;&#10;-append"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="com.ibm.icu@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net@default:default,org.eclipse.core.runtime@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:false,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default,org.eclipse.update.configurator@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:true,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.p2.metadata.repository@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.0.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.0.profile
deleted file mode 100644
index d8c2d3f..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.0.profile
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = 
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0
-osgi.java.profile.name = OSGi/Minimum-1.0
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.1.profile b/bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.1.profile
deleted file mode 100644
index 2d8b661..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/OSGi_Minimum-1.1.profile
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = 
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1
-osgi.java.profile.name = OSGi/Minimum-1.1
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/about.html b/bundles/org.eclipse.equinox.p2.metadata.generator/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/build.properties b/bundles/org.eclipse.equinox.p2.metadata.generator/build.properties
deleted file mode 100644
index ca56ce6..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/build.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-source.ant_tasks/generator-ant.jar=src_ant/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               OSGi_Minimum-1.1.profile,\
-               OSGi_Minimum-1.0.profile,\
-               JavaSE-1.6.profile,\
-               JRE-1.1.profile,\
-               J2SE-1.5.profile,\
-               J2SE-1.4.profile,\
-               J2SE-1.3.profile,\
-               J2SE-1.2.profile,\
-               CDC-1.1_Foundation-1.1.profile,\
-               CDC-1.0_Foundation-1.0.profile,\
-               plugin.xml,\
-               ant_tasks/generator-ant.jar,\
-               plugin.properties
-src.includes = about.html
-jars.compile.order=.,ant_tasks/generator-ant.jar
-extra.ant_tasks/generator-ant.jar = platform:/plugin/org.apache.ant
-jars.extra.classpath = platform:/plugin/org.apache.ant/lib/ant.jar
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/config.ini b/bundles/org.eclipse.equinox.p2.metadata.generator/config.ini
deleted file mode 100644
index ec13298..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/config.ini
+++ /dev/null
@@ -1,57 +0,0 @@
-# Eclipse runtime configuration file
-# This file contains a number of key/value pairs that are merged into the 
-# System properties on system startup.  The values control the way the 
-# runtime is structured and runs.
-
-# Note:  Only platform:/base/ and file: URLs are supported.  In general the 
-# URLs given may include a version number (e.g., .../location_1.2.3).  
-# If a version is not specified, the system binds
-# to the location which matches exactly or to the versioned location with the
-# latest version number.  If a version number is given then only exact matches
-# are considered.
-
-# The URL for the runtime entry point.  The default value is
-# platform:/base/plugins/org.eclipse.osgi 
-#osgi.framework=platform:/base/plugins/org.eclipse.osgi
-
-# The classpath for the framework found at the osgi.framework location.  This 
-# comma-separated list contains either URLs or simple element names.  Simple
-# names are assumed to be relative to the framework's install directory.  
-# Typically this value need not be set as it is initialized by the framework itself.
-# Version match searching is not done for URLs listed here.
-#osgi.frameworkClassPath =
-
-# The comma-separated list of locations to search for the splash screen file (splash.bmp).
-# For each list element a subdirectory structure based on the pattern nl/<locale> is searched.
-# The system binds to the first matching file.  There is no default value.
-#osgi.splashPath=
-
-# The location of the splash screen file.  If this value is set at system startup it is used 
-# in favour of the osgi.splashPath searching outlined above.  If the value is not set 
-# the searching is done and this key is bound to the result of the search.
-#osgi.splashLocation =
-
-# The comma-separated list of bundles which are automatically installed and optionally started
-# once the system is up and running.  Each entry if of the form
-#     <URL | simple bundle location>[@ [<startlevel>] [":start"]]
-# If the startlevel is omitted then the framework will use the default start level for the bundle.
-# If the "start" tag is added then the bundle will be marked as started after being installed.
-# Simple bundle locations are interepreted as relative to the framework's parent directory.
-# The startlevel indicates the OSGi start level at which the bundle should run.
-osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start,org.eclipse.equinox.frameworkadmin.equinox@start
-
-# The product to run.  A given Eclipse configuration may contain many products.
-# The product identified will supply the branding (window icons, title bar text) etc 
-# as well as define the default application to run.  
-#eclipse.product=
-
-# The application to run.  The value specified here is the id of the application extension
-# the runtime will find, instantiate and execute once the system is up.  Note that typically 
-# the identified eclipse.product defines the default application to run.
-#eclipse.application=
-
-# The build identifier
-eclipse.buildId=@build@
-
-# End of file marker - must be here
-eof=eof
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/generator.product b/bundles/org.eclipse.equinox.p2.metadata.generator/generator.product
deleted file mode 100644
index 1e313cd..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/generator.product
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="Equinox Provisioning Metadata Generator" id="org.eclipse.equinox.p2.metadata.generator.product" application="org.eclipse.equinox.p2.metadata.generator.EclipseGenerator" useFeatures="true">
-
-   <configIni use="custom" path="/org.eclipse.equinox.p2.metadata.generator/config.ini"/>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <launcher name="eclipse">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <vm>
-   </vm>
-
-   <plugins>
-   </plugins>
-
-   <features>
-      <feature id="org.eclipse.equinox.p2.generator.feature" version="0.0.0"/>
-      <feature id="org.eclipse.rcp" version="0.0.0"/>
-   </features>
-
-</product>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/p2-izer update site.launch b/bundles/org.eclipse.equinox.p2.metadata.generator/p2-izer update site.launch
deleted file mode 100644
index 7ad55f2..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/p2-izer update site.launch
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/p2-izer update site"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console &#13;&#10;-consolelog&#13;&#10;-application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator&#13;&#10;-metadataRepository file:d:/ganymedeM5/&#13;&#10;-artifactRepository file:d:/ganymedeM5/&#13;&#10;-updateSite d:/ganymedeM5/&#13;&#10;-site file:d:/ganymedeM5/site.xml&#13;&#10;-flavor tooling&#13;&#10;-append&#13;&#10;-reusePack200Files&#13;&#10;-compress"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.equinox.app*1.0.100.v20080303@default:true,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,org.eclipse.update.configurator*3.2.200.v20080107@default:default,org.eclipse.core.runtime.compatibility.registry*3.2.200.v20070717@default:false,org.eclipse.core.runtime*3.4.0.v20080303@default:default,org.eclipse.core.jobs*3.3.100.v20080224@default:default,org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,com.ibm.icu*3.8.1.v20080103@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default,org.eclipse.equinox.common*3.4.0.v20080201@default:default,org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.osgi*3.4.0.v20080304@:,org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,org.eclipse.equinox.registry*3.4.0.v20080201@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.p2.metadata.generator*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default,org.eclipse.ecf*1.4.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.ecf.identity*1.3.0.qualifier@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/plugin.properties b/bundles/org.eclipse.equinox.p2.metadata.generator/plugin.properties
deleted file mode 100644
index 00ebd73..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Metadata Generator
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/plugin.xml b/bundles/org.eclipse.equinox.p2.metadata.generator/plugin.xml
deleted file mode 100644
index b73a51f..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/plugin.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<plugin>
-   <extension
-         id="EclipseGenerator"
-         point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="1"
-            thread="main"
-            visible="true">
-         <run
-               class="org.eclipse.equinox.internal.p2.metadata.generator.EclipseGeneratorApplication">
-         </run>
-      </application>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.equinox.p2.metadata.generator.EclipseGenerator"
-            name="Equinox Provisioning Metadata Generator">
-      </product>
-   </extension>
-
-	<extension point="org.eclipse.ant.core.antTasks">
-		<antTask
-			library="ant_tasks/generator-ant.jar"
-			name="p2.generator"
-			class="org.eclipse.equinox.internal.p2.metadata.generator.ant.GeneratorTask">
-		</antTask>
-	</extension>
-
-	<extension point="org.eclipse.ant.core.extraClasspathEntries">
-		<extraClasspathEntry library="ant_tasks/generator-ant.jar"/>
-	</extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/scripts/buildExtraJAR.xml b/bundles/org.eclipse.equinox.p2.metadata.generator/scripts/buildExtraJAR.xml
deleted file mode 100644
index 7820664..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/scripts/buildExtraJAR.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.core.resources" default="main" basedir="..">
-
-	<target name="main" depends="clean, ant_tasks/generator-ant.jar">
-	</target>
-
-	<target name="init" depends="properties">
-		<property name="plugin" value="org.eclipse.equinox.p2.generator.app"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}/ant_tasks"/>
-		<property name="version.suffix" value="_3.1.0"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-	<target name="ant_tasks/generator-ant.jar" depends="init" unless="ant_tasks/generator-ant.jar">
-		<property name="destdir" value="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<delete dir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<mkdir dir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/ant_tasks/generator-ant.jar.bin" failonerror="true" verbose="true" debug="on">
-			<classpath>
-				<dirset dir="${basedir}/..">
-					<include name="org.eclipse.equinox.p2.metadata.generator/bin"/>
-					<include name="org.eclipse.osgi/bin"/>
-				</dirset>
-				<fileset dir="${eclipse.home}">
-					<include name="plugins/org.eclipse.equinox.p2.metadata.generator*.jar"/>
-					<include name="plugins/org.eclipse.osgi*.jar"/>
-				</fileset>
-			</classpath>
-			<src path="src_ant/"/>
-		</javac>
-		<!-- copy necessary resources -->
-		<copy todir="${temp.folder}/ant_tasks/generator-ant.jar.bin">
-			<fileset dir="src_ant/" excludes="**/*.java"/>
-		</copy>
-		<mkdir dir="${build.result.folder}"/>
-		<jar jarfile="${build.result.folder}/generator-ant.jar" basedir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<delete dir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${build.result.folder}/generator-ant.jar"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Activator.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Activator.java
deleted file mode 100644
index 5c2cb2c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Activator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-	public static BundleContext context = null;
-	public static String ID = "org.eclipse.equinox.p2.metadata.generator"; //$NON-NLS-1$
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		Activator.context = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java
deleted file mode 100644
index dbf31d2..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager;
-import org.eclipse.equinox.internal.p2.core.ProvisioningEventBus;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.EclipseInstallGeneratorInfoProvider;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Generator;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.ServiceRegistration;
-
-public class EclipseGeneratorApplication implements IApplication {
-
-	// The mapping rules for in-place generation need to construct paths into the structure
-	// of an eclipse installation; in the future the default artifact mapping declared in
-	// SimpleArtifactRepository may change, for example, to not have a 'bundles' directory
-	// instead of a 'plugins' directory, so a separate constant is defined and used here.
-	static final private String[][] INPLACE_MAPPING_RULES = { {"(& (classifier=osgi.bundle) (format=packed)", "${repoUrl}/features/${id}_${version}.jar.pack.gz"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=org.eclipse.update.feature))", "${repoUrl}/features/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=osgi.bundle))", "${repoUrl}/plugins/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=binary))", "${repoUrl}/binary/${id}_${version}"}}; //$NON-NLS-1$//$NON-NLS-2$
-
-	static final public String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$
-
-	private ArtifactRepositoryManager defaultArtifactManager;
-	private ServiceRegistration registrationDefaultArtifactManager;
-	private MetadataRepositoryManager defaultMetadataManager;
-	private ServiceRegistration registrationDefaultMetadataManager;
-	private IProvisioningEventBus bus;
-	private ServiceRegistration registrationBus;
-	private Generator.GeneratorResult incrementalResult = null;
-	private boolean generateRootIU = true;
-	private String metadataLocation;
-	private String metadataRepoName;
-	private String artifactLocation;
-	private String artifactRepoName;
-	private String operation;
-	private String argument;
-	private String features;
-	private String bundles;
-	private String base;
-	//whether repository xml files should be compressed
-	private String compress = "false"; //$NON-NLS-1$
-
-	private File getExecutableName(String base, EclipseInstallGeneratorInfoProvider provider) {
-		File location = provider.getExecutableLocation();
-		if (location == null)
-			return new File(base, EclipseInstallGeneratorInfoProvider.getDefaultExecutableName(null));
-		if (location.isAbsolute())
-			return location;
-		return new File(base, location.getPath());
-	}
-
-	private void initialize(EclipseInstallGeneratorInfoProvider provider) throws ProvisionException {
-		if ("-source".equalsIgnoreCase(operation)) //$NON-NLS-1$
-			provider.initialize(new File(argument));
-		else if ("-inplace".equalsIgnoreCase(operation)) { //$NON-NLS-1$
-			provider.initialize(new File(argument));
-			initializeForInplace(provider);
-		} else if ("-config".equalsIgnoreCase(operation)) { //$NON-NLS-1$
-			provider.initialize(new File(argument), new File(argument, "configuration"), getExecutableName(argument, provider), null, null); //$NON-NLS-1$
-		} else if ("-updateSite".equalsIgnoreCase(operation)) { //$NON-NLS-1$
-			provider.setAddDefaultIUs(false);
-			provider.initialize(new File(argument), null, null, new File[] {new File(argument, "plugins")}, new File(argument, "features")); //$NON-NLS-1$ //$NON-NLS-2$
-			initializeForInplace(provider);
-		} else {
-			if (base != null && bundles != null && features != null)
-				provider.initialize(new File(base), null, null, new File[] {new File(bundles)}, new File(features));
-		}
-		initializeRepositories(provider);
-	}
-
-	private void initializeArtifactRepository(EclipseInstallGeneratorInfoProvider provider) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.context, IArtifactRepositoryManager.class.getName());
-		URL location;
-		try {
-			location = new URL(artifactLocation);
-		} catch (MalformedURLException e) {
-			throw new IllegalArgumentException(NLS.bind(Messages.exception_artifactRepoLocationURL, artifactLocation));
-		}
-		try {
-			IArtifactRepository repository = manager.loadRepository(location, null);
-			if (!repository.isModifiable())
-				throw new IllegalArgumentException(NLS.bind(Messages.exception_artifactRepoNotWritable, location));
-			provider.setArtifactRepository(repository);
-			if (provider.reuseExistingPack200Files())
-				repository.setProperty(PUBLISH_PACK_FILES_AS_SIBLINGS, "true"); //$NON-NLS-1$
-			if (!provider.append())
-				repository.removeAll();
-			return;
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-
-		// 	the given repo location is not an existing repo so we have to create something
-		// TODO for now create a Simple repo by default.
-		String repositoryName = artifactRepoName != null ? artifactRepoName : artifactLocation + " - artifacts"; //$NON-NLS-1$
-		IArtifactRepository result = manager.createRepository(location, repositoryName, IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(result.getLocation());
-		provider.setArtifactRepository(result);
-		result.setProperty(IRepository.PROP_COMPRESSED, compress);
-		if (provider.reuseExistingPack200Files())
-			result.setProperty(PUBLISH_PACK_FILES_AS_SIBLINGS, "true"); //$NON-NLS-1$
-		if (artifactRepoName != null)
-			result.setName(artifactRepoName);
-	}
-
-	public void initializeForInplace(EclipseInstallGeneratorInfoProvider provider) {
-		File location = provider.getBaseLocation();
-		if (location == null)
-			location = provider.getBundleLocations()[0];
-		try {
-			metadataLocation = location.toURL().toExternalForm();
-			artifactLocation = location.toURL().toExternalForm();
-		} catch (MalformedURLException e) {
-			// ought not happen...
-		}
-		provider.setPublishArtifactRepository(true);
-		provider.setPublishArtifacts(false);
-		provider.setMappingRules(INPLACE_MAPPING_RULES);
-	}
-
-	private void initializeMetadataRepository(EclipseInstallGeneratorInfoProvider provider) throws ProvisionException {
-		URL location;
-		try {
-			location = new URL(metadataLocation);
-		} catch (MalformedURLException e) {
-			throw new IllegalArgumentException(NLS.bind(Messages.exception_metadataRepoLocationURL, artifactLocation));
-		}
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.context, IMetadataRepositoryManager.class.getName());
-		try {
-			IMetadataRepository repository = manager.loadRepository(location, null);
-			if (repository != null) {
-				// don't set the compress flag here because we don't want to change the format
-				// of an already existing repository
-				if (!repository.isModifiable())
-					throw new IllegalArgumentException(NLS.bind(Messages.exception_metadataRepoNotWritable, location));
-				provider.setMetadataRepository(repository);
-				if (!provider.append())
-					repository.removeAll();
-				return;
-			}
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-
-		// 	the given repo location is not an existing repo so we have to create something
-		// TODO for now create a random repo by default.
-		String repositoryName = metadataRepoName == null ? metadataLocation + " - metadata" : metadataRepoName; //$NON-NLS-1$
-		IMetadataRepository result = manager.createRepository(location, repositoryName, IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(result.getLocation());
-		if (result != null) {
-			result.setProperty(IRepository.PROP_COMPRESSED, compress);
-			if (metadataRepoName != null)
-				result.setName(metadataRepoName);
-			provider.setMetadataRepository(result);
-		}
-	}
-
-	private void initializeRepositories(EclipseInstallGeneratorInfoProvider provider) throws ProvisionException {
-		initializeArtifactRepository(provider);
-		initializeMetadataRepository(provider);
-	}
-
-	public void setCompress(String value) {
-		if (Boolean.valueOf(value).booleanValue())
-			compress = "true";
-	}
-
-	public void processCommandLineArguments(String[] args, EclipseInstallGeneratorInfoProvider provider) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-
-			if (args[i].equalsIgnoreCase("-publishArtifacts") || args[i].equalsIgnoreCase("-pa")) //$NON-NLS-1$ //$NON-NLS-2$
-				provider.setPublishArtifacts(true);
-
-			if (args[i].equalsIgnoreCase("-publishArtifactRepository") || args[i].equalsIgnoreCase("-par")) //$NON-NLS-1$ //$NON-NLS-2$
-				provider.setPublishArtifactRepository(true);
-
-			if (args[i].equalsIgnoreCase("-append")) //$NON-NLS-1$
-				provider.setAppend(true);
-
-			if (args[i].equalsIgnoreCase("-noDefaultIUs")) //$NON-NLS-1$
-				provider.setAddDefaultIUs(false);
-
-			if (args[i].equalsIgnoreCase("-compress")) //$NON-NLS-1$
-				compress = "true"; //$NON-NLS-1$
-
-			if (args[i].equalsIgnoreCase("-reusePack200Files")) //$NON-NLS-1$
-				provider.reuseExistingPack200Files(true);
-
-			// 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];
-
-			if (args[i - 1].equalsIgnoreCase("-source")) { //$NON-NLS-1$
-				operation = args[i - 1];
-				argument = arg;
-			}
-
-			if (args[i - 1].equalsIgnoreCase("-inplace")) { //$NON-NLS-1$
-				operation = args[i - 1];
-				argument = arg;
-			}
-
-			if (args[i - 1].equalsIgnoreCase("-config")) { //$NON-NLS-1$
-				operation = args[i - 1];
-				argument = arg;
-			}
-			if (args[i - 1].equalsIgnoreCase("-updateSite")) { //$NON-NLS-1$
-				operation = args[i - 1];
-				argument = arg;
-			}
-
-			if (args[i - 1].equalsIgnoreCase("-exe")) //$NON-NLS-1$
-				provider.setExecutableLocation(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-launcherConfig")) //$NON-NLS-1$
-				provider.setLauncherConfig(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-metadataRepository") || args[i - 1].equalsIgnoreCase("-mr")) //$NON-NLS-1$ //$NON-NLS-2$
-				metadataLocation = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-metadataRepositoryName")) //$NON-NLS-1$
-				metadataRepoName = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-artifactRepository") | args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$
-				artifactLocation = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-artifactRepositoryName")) //$NON-NLS-1$
-				artifactRepoName = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-flavor")) //$NON-NLS-1$
-				provider.setFlavor(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-productFile")) //$NON-NLS-1$
-				provider.setProductFile(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-features")) //$NON-NLS-1$
-				features = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-bundles")) //$NON-NLS-1$
-				bundles = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-base")) //$NON-NLS-1$
-				base = arg;
-
-			if (args[i - 1].equalsIgnoreCase("-root")) //$NON-NLS-1$
-				provider.setRootId(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-rootVersion")) //$NON-NLS-1$
-				provider.setRootVersion(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-p2.os")) //$NON-NLS-1$
-				provider.setOS(arg);
-
-			if (args[i - 1].equalsIgnoreCase("-site")) //$NON-NLS-1$
-				provider.setSiteLocation(new URL(arg));
-		}
-	}
-
-	private void registerDefaultArtifactRepoManager() {
-		if (ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName()) == null) {
-			defaultArtifactManager = new ArtifactRepositoryManager();
-			registrationDefaultArtifactManager = Activator.getContext().registerService(IArtifactRepositoryManager.class.getName(), defaultArtifactManager, null);
-		}
-	}
-
-	private void registerDefaultMetadataRepoManager() {
-		if (ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName()) == null) {
-			defaultMetadataManager = new MetadataRepositoryManager();
-			registrationDefaultMetadataManager = Activator.getContext().registerService(IMetadataRepositoryManager.class.getName(), defaultMetadataManager, null);
-		}
-	}
-
-	private void registerEventBus() {
-		if (ServiceHelper.getService(Activator.getContext(), IProvisioningEventBus.SERVICE_NAME) == null) {
-			bus = new ProvisioningEventBus();
-			registrationBus = Activator.getContext().registerService(IProvisioningEventBus.SERVICE_NAME, bus, null);
-		}
-	}
-
-	public Object run(String args[]) throws Exception {
-		EclipseInstallGeneratorInfoProvider provider = new EclipseInstallGeneratorInfoProvider();
-		processCommandLineArguments(args, provider);
-		Object result = run(provider);
-		if (result != IApplication.EXIT_OK)
-			for (int i = 0; i < args.length; i++)
-				System.out.println(args[i]);
-		return result;
-	}
-
-	public Object run(EclipseInstallGeneratorInfoProvider provider) throws Exception {
-		registerEventBus();
-		registerDefaultMetadataRepoManager();
-		registerDefaultArtifactRepoManager();
-		initialize(provider);
-
-		if (provider.getBaseLocation() == null && provider.getProductFile() == null) {
-			System.out.println(Messages.exception_baseLocationNotSpecified);
-			return new Integer(-1);
-		}
-		System.out.println(NLS.bind(Messages.message_generatingMetadata, provider.getBaseLocation()));
-
-		long before = System.currentTimeMillis();
-
-		Generator generator = new Generator(provider);
-
-		if (incrementalResult != null)
-			generator.setIncrementalResult(incrementalResult);
-		generator.setGenerateRootIU(generateRootIU);
-		IStatus result = generator.generate();
-
-		incrementalResult = null;
-		long after = System.currentTimeMillis();
-		if (result.isOK()) {
-			System.out.println(NLS.bind(Messages.message_generationCompleted, String.valueOf((after - before) / 1000)));
-			return IApplication.EXIT_OK;
-		}
-		System.out.println(result);
-		return new Integer(1);
-	}
-
-	public Object start(IApplicationContext context) throws Exception {
-		return run((String[]) context.getArguments().get("application.args")); //$NON-NLS-1$
-	}
-
-	public void stop() {
-		if (registrationDefaultMetadataManager != null) {
-			registrationDefaultMetadataManager.unregister();
-			registrationDefaultMetadataManager = null;
-		}
-		if (registrationDefaultArtifactManager != null) {
-			registrationDefaultArtifactManager.unregister();
-			registrationDefaultArtifactManager = null;
-		}
-		if (registrationBus != null) {
-			registrationBus.unregister();
-			registrationBus = null;
-		}
-	}
-
-	public void setBase(String base) {
-		this.base = base;
-	}
-
-	public void setArtifactLocation(String location) {
-		this.artifactLocation = location;
-	}
-
-	public void setBundles(String bundles) {
-		this.bundles = bundles;
-	}
-
-	public void setOperation(String operation, String argument) {
-		this.operation = operation;
-		this.argument = argument;
-	}
-
-	public void setFeatures(String features) {
-		this.features = features;
-	}
-
-	public void setMetadataLocation(String location) {
-		this.metadataLocation = location;
-	}
-
-	public void setIncrementalResult(Generator.GeneratorResult ius) {
-		this.incrementalResult = ius;
-	}
-
-	public void setGeneratorRootIU(boolean b) {
-		this.generateRootIU = b;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Messages.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Messages.java
deleted file mode 100644
index c28acd1..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/Messages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.metadata.generator.messages";//$NON-NLS-1$
-
-	public static String exception_errorConverting;
-	public static String exception_outputStream;
-	public static String exception_errorParsingUpdateSite;
-	public static String exception_stateAddition;
-	public static String exception_sourceDirectoryInvalid;
-	public static String exception_artifactRepoLocationURL;
-	public static String exception_artifactRepoNotWritable;
-	public static String exception_metadataRepoLocationURL;
-	public static String exception_metadataRepoNotWritable;
-	public static String exception_baseLocationNotSpecified;
-
-	public static String message_generatingMetadata;
-	public static String message_generationCompleted;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/ProductQuery.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/ProductQuery.java
deleted file mode 100644
index 8486d52..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/ProductQuery.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator;
-
-import java.io.*;
-import java.util.*;
-import org.eclipse.equinox.internal.p2.metadata.generator.features.ProductFile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.MetadataGeneratorHelper;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Generator.GeneratorResult;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class ProductQuery extends Query {
-	private static final String EQUINOX_LAUNCHER = "org.eclipse.equinox.launcher"; //$NON-NLS-1$
-
-	private final ProductFile product;
-	private final String flavor;
-	private final Map children = new HashMap();
-	private final String versionAdvice;
-
-	// Collector collects the largest version of each IU
-	private final Collector collector = new Collector() {
-		private final HashMap elements = new HashMap();
-
-		public boolean accept(Object object) {
-			if (!(object instanceof IInstallableUnit))
-				return true;
-			IInstallableUnit iu = (IInstallableUnit) object;
-			if (elements.containsKey(iu.getId())) {
-				IInstallableUnit existing = (IInstallableUnit) elements.get(iu.getId());
-				if (existing.getVersion().compareTo(iu.getVersion()) >= 0)
-					return true;
-				getList().remove(existing);
-			}
-			elements.put(iu.getId(), iu);
-			return super.accept(object);
-		}
-	};
-
-	public ProductQuery(ProductFile product, String flavor, Map configIUs, String versionAdvice) {
-		this.product = product;
-		this.flavor = flavor;
-		this.versionAdvice = versionAdvice;
-		initialize(configIUs);
-	}
-
-	public Collector getCollector() {
-		return this.collector;
-	}
-
-	private Properties loadVersions(String location) {
-		Properties properties = new Properties();
-		if (location == null)
-			return properties;
-		File file = new File(location);
-		if (file.exists()) {
-			InputStream stream = null;
-			try {
-				stream = new BufferedInputStream(new FileInputStream(file));
-				properties.load(stream);
-			} catch (IOException e) {
-				// nothing
-			} finally {
-				if (stream != null)
-					try {
-						stream.close();
-					} catch (IOException e) {
-						//nothing
-					}
-			}
-		}
-		return properties;
-	}
-
-	private void initialize(Map configIUs) {
-		boolean features = product.useFeatures();
-		Properties versions = loadVersions(versionAdvice);
-
-		List contents = features ? product.getFeatures() : product.getPlugins();
-		for (Iterator iterator = contents.iterator(); iterator.hasNext();) {
-			String item = (String) iterator.next();
-
-			VersionRange range = VersionRange.emptyRange;
-			if (versions.containsKey(item)) {
-				Version value = new Version(versions.getProperty(item));
-				range = new VersionRange(value, true, value, true);
-			}
-
-			if (features) // for features we want the group
-				item = MetadataGeneratorHelper.getTransformedId(item, false, true);
-
-			children.put(item, range);
-			if (configIUs.containsKey(item)) {
-				for (Iterator ius = ((Set) configIUs.get(item)).iterator(); ius.hasNext();) {
-					IInstallableUnit object = (IInstallableUnit) ius.next();
-					children.put(object.getId(), new VersionRange(object.getVersion(), true, object.getVersion(), true));
-				}
-			}
-		}
-
-		//also include the launcher CU fragments as a workaround to bug 218890
-		String launcherPrefix = product.getId() + ".launcher"; //$NON-NLS-1$
-		if (configIUs.containsKey(launcherPrefix)) {
-			for (Iterator ius = ((Set) configIUs.get(launcherPrefix)).iterator(); ius.hasNext();) {
-				IInstallableUnit object = (IInstallableUnit) ius.next();
-				children.put(object.getId(), new VersionRange(object.getVersion(), true, object.getVersion(), true));
-			}
-		}
-
-		//also add the launcher.jar
-		if (!children.containsKey(EQUINOX_LAUNCHER)) {
-			children.put(EQUINOX_LAUNCHER, VersionRange.emptyRange);
-			children.put(flavor + EQUINOX_LAUNCHER, VersionRange.emptyRange);
-		}
-
-		// and launcher fragment CUs
-		if (configIUs.containsKey(EQUINOX_LAUNCHER)) {
-			for (Iterator ius = ((Set) configIUs.get(EQUINOX_LAUNCHER)).iterator(); ius.hasNext();) {
-				IInstallableUnit object = (IInstallableUnit) ius.next();
-				children.put(object.getId(), new VersionRange(object.getVersion(), true, object.getVersion(), true));
-			}
-		}
-
-		// feature based product, individual bundle config CUs are under CONFIGURATION_CUS for convenience
-		if (features && configIUs.containsKey(GeneratorResult.CONFIGURATION_CUS)) {
-			for (Iterator ius = ((Set) configIUs.get(GeneratorResult.CONFIGURATION_CUS)).iterator(); ius.hasNext();) {
-				IInstallableUnit object = (IInstallableUnit) ius.next();
-				children.put(object.getId(), new VersionRange(object.getVersion(), true, object.getVersion(), true));
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.query.Query#isMatch(java.lang.Object)
-	 */
-	public boolean isMatch(Object object) {
-		if (!(object instanceof IInstallableUnit))
-			return false;
-
-		IInstallableUnit candidate = (IInstallableUnit) object;
-		VersionRange range = (VersionRange) children.get(candidate.getId());
-		if (range != null) {
-			return range.isIncluded(candidate.getVersion());
-		}
-
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DefaultSiteParser.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DefaultSiteParser.java
deleted file mode 100644
index 8bda05c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DefaultSiteParser.java
+++ /dev/null
@@ -1,851 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import java.io.*;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.Tracing;
-import org.eclipse.equinox.internal.p2.metadata.repository.Activator;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.URLEntry;
-import org.eclipse.osgi.util.NLS;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Parses a site.xml file.
- * This class was initially copied from org.eclipse.update.core.model.DefaultSiteParser.
- */
-public class DefaultSiteParser extends DefaultHandler {
-
-	private static final String ARCHIVE = "archive"; //$NON-NLS-1$
-	private static final String CATEGORY = "category"; //$NON-NLS-1$
-	private static final String CATEGORY_DEF = "category-def"; //$NON-NLS-1$
-
-	//private static final String ASSOCIATE_SITES = "associateSites"; //$NON-NLS-1$
-	//	private static final String ASSOCIATE_SITE = "associateSite"; //$NON-NLS-1$
-	private static final String DEFAULT_INFO_URL = "index.html"; //$NON-NLS-1$
-	private static final String DESCRIPTION = "description"; //$NON-NLS-1$
-	private static final String FEATURE = "feature"; //$NON-NLS-1$
-	private static final String FEATURES = "features/"; //$NON-NLS-1$
-	private static final String MIRROR = "mirror"; //$NON-NLS-1$
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-	private static final String PLUGIN_ID = Activator.ID;
-	private static final String SITE = "site"; //$NON-NLS-1$
-
-	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_CATEGORY_DEF = 7;
-	private static final int STATE_DESCRIPTION_SITE = 6;
-	private static final int STATE_FEATURE = 2;
-	private static final int STATE_IGNORED_ELEMENT = -1;
-	private static final int STATE_INITIAL = 0;
-	private static final int STATE_SITE = 1;
-
-	private int currentState;
-
-	private boolean DESCRIPTION_SITE_ALREADY_SEEN = false;
-	// Current object stack (used to hold the current object we are
-	// populating in this plugin descriptor
-	Stack objectStack = new Stack();
-
-	private SAXParser parser;
-
-	// Current State Information
-	Stack stateStack = new Stack();
-
-	private MultiStatus status;
-
-	/*
-	 * 
-	 */
-	private static void debug(String s) {
-		Tracing.debug("DefaultSiteParser: " + s); //$NON-NLS-1$
-	}
-
-	//	private static URLEntry[] getAssociateSites(String associateSitesURL) {
-	//
-	//		try {
-	//			DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
-	//			DocumentBuilder builder = domFactory.newDocumentBuilder();
-	//			Document document = builder.parse(associateSitesURL);
-	//			if (document == null)
-	//				return null;
-	//			NodeList mirrorNodes = document.getElementsByTagName(ASSOCIATE_SITE);
-	//			URLEntry[] mirrors = new URLEntry[mirrorNodes.getLength()];
-	//			for (int i = 0; i < mirrorNodes.getLength(); i++) {
-	//				Element mirrorNode = (Element) mirrorNodes.item(i);
-	//				mirrors[i] = new URLEntry();
-	//				String infoURL = mirrorNode.getAttribute("url"); //$NON-NLS-1$
-	//				String label = mirrorNode.getAttribute("label"); //$NON-NLS-1$
-	//				mirrors[i].setURL(infoURL);
-	//				mirrors[i].setAnnotation(label);
-	//
-	//				if (Tracing.DEBUG_GENERATOR_PARSING)
-	//					debug("Processed mirror: url:" + infoURL + " label:" + label); //$NON-NLS-1$ //$NON-NLS-2$
-	//			}
-	//			return mirrors;
-	//		} catch (Exception e) {
-	//			// log if absolute url
-	//			if (associateSitesURL != null && (associateSitesURL.startsWith("http://") //$NON-NLS-1$
-	//					|| associateSitesURL.startsWith("https://") //$NON-NLS-1$
-	//					|| associateSitesURL.startsWith("file://") //$NON-NLS-1$
-	//					|| associateSitesURL.startsWith("ftp://") //$NON-NLS-1$
-	//			|| associateSitesURL.startsWith("jar://"))) //$NON-NLS-1$
-	//				log(Messages.DefaultSiteParser_mirrors, e);
-	//			return null;
-	//		}
-	//	}
-
-	static URLEntry[] getMirrors(String mirrorsURL) {
-
-		try {
-			String countryCode = Locale.getDefault().getCountry().toLowerCase();
-			int timeZone = (new GregorianCalendar()).get(Calendar.ZONE_OFFSET) / (60 * 60 * 1000);
-
-			if (mirrorsURL.indexOf("?") != -1) { //$NON-NLS-1$
-				mirrorsURL = mirrorsURL + "&"; //$NON-NLS-1$
-			} else {
-				mirrorsURL = mirrorsURL + "?"; //$NON-NLS-1$
-			}
-			mirrorsURL = mirrorsURL + "countryCode=" + countryCode + "&timeZone=" + timeZone + "&responseType=xml"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-			DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
-			DocumentBuilder builder = domFactory.newDocumentBuilder();
-			Document document = builder.parse(mirrorsURL);
-			if (document == null)
-				return null;
-			NodeList mirrorNodes = document.getElementsByTagName(MIRROR);
-			URLEntry[] mirrors = new URLEntry[mirrorNodes.getLength()];
-			for (int i = 0; i < mirrorNodes.getLength(); i++) {
-				Element mirrorNode = (Element) mirrorNodes.item(i);
-				mirrors[i] = new URLEntry();
-				String infoURL = mirrorNode.getAttribute("url"); //$NON-NLS-1$
-				String label = mirrorNode.getAttribute("label"); //$NON-NLS-1$
-				mirrors[i].setURL(infoURL);
-				mirrors[i].setAnnotation(label);
-
-				if (Tracing.DEBUG_GENERATOR_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://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("https://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("file://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("ftp://") //$NON-NLS-1$
-			|| mirrorsURL.startsWith("jar://"))) //$NON-NLS-1$
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, Messages.DefaultSiteParser_mirrors, e));
-			return null;
-		}
-	}
-
-	static void log(Exception e) {
-		LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Internal Error", e)); //$NON-NLS-1$
-	}
-
-	static void log(IStatus error) {
-		LogHelper.log(error);
-	}
-
-	static void log(String message) {
-		LogHelper.log(new Status(IStatus.WARNING, Activator.ID, message, null));
-	}
-
-	static void log(String message, Exception e) {
-		LogHelper.log(new Status(IStatus.WARNING, Activator.ID, message, e));
-	}
-
-	/**
-	 * Constructs a site parser.
-	 */
-	public DefaultSiteParser() {
-		super();
-		stateStack = new Stack();
-		objectStack = new Stack();
-		status = null;
-		DESCRIPTION_SITE_ALREADY_SEEN = false;
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			log(e);
-		} catch (SAXException e) {
-			log(e);
-		}
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("Created"); //$NON-NLS-1$
-	}
-
-	/**
-	 * 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 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;
-		URLEntry 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(Messages.DefaultSiteParser_ParsingStackBackToInitialState);
-				break;
-
-			case STATE_SITE :
-				stateStack.pop();
-				if (objectStack.peek() instanceof String) {
-					text = (String) objectStack.pop();
-					SiteModel site = (SiteModel) objectStack.peek();
-					site.getDescription().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();
-					SiteCategory category = (SiteCategory) objectStack.peek();
-					category.setDescription(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 = (URLEntry) 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(NLS.bind(Messages.DefaultSiteParser_ElementAlreadySet, (new String[] {getState(state)})));
-				siteModel.setDescription(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 = (URLEntry) objectStack.pop();
-				if (text != null)
-					info.setAnnotation(text);
-
-				SiteCategory category = (SiteCategory) objectStack.peek();
-				if (category.getDescription() != null)
-					internalError(NLS.bind(Messages.DefaultSiteParser_ElementAlreadySet, (new String[] {getState(state), category.getLabel()})));
-				else
-					category.setDescription(info.getAnnotation());
-				break;
-
-			default :
-				internalError(NLS.bind(Messages.DefaultSiteParser_UnknownEndState, (new String[] {getState(state)})));
-				break;
-		}
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End Element:" + uri + ":" + localName + ":" + qName);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	/*
-	 * 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, 0, Messages.DefaultSiteParser_ErrorParsingSite, null);
-		}
-
-		status.add(error);
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			LogHelper.log(error);
-	}
-
-	/**
-	 * 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;
-	}
-
-	/*
-	 * 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 Messages.DefaultSiteParser_UnknownState;
-		}
-	}
-
-	/**
-	 * 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;
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	private void handleInitialState(String elementName, Attributes attributes) throws SAXException {
-		if (elementName.equals(SITE)) {
-			stateStack.push(new Integer(STATE_SITE));
-			processSite(attributes);
-		} else {
-			internalErrorUnknownTag(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-			// what we received was not a site.xml, no need to continue
-			throw new SAXException(Messages.DefaultSiteParser_InvalidXMLStream);
-		}
-
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	/*
-	 * 
-	 */
-	private void internalError(String message) {
-		error(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, null));
-	}
-
-	/*
-	 * 
-	 */
-	private void internalErrorUnknownTag(String msg) {
-		stateStack.push(new Integer(STATE_IGNORED_ELEMENT));
-		internalError(msg);
-	}
-
-	private boolean leadingSpace(String str) {
-		if (str.length() <= 0) {
-			return false;
-		}
-		return Character.isWhitespace(str.charAt(0));
-	}
-
-	/*
-	 * 
-	 */
-	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 = NLS.bind(Messages.DefaultSiteParser_ErrorParsing, (new String[] {ex.getMessage()}));
-		else {
-			String[] values = new String[] {name, Integer.toString(ex.getLineNumber()), Integer.toString(ex.getColumnNumber()), ex.getMessage()};
-			msg = NLS.bind(Messages.DefaultSiteParser_ErrorlineColumnMessage, values);
-		}
-		error(new Status(IStatus.ERROR, PLUGIN_ID, msg, ex));
-	}
-
-	/**
-	 * 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(Messages.DefaultSiteParser_NoSiteTag);
-		if (objectStack.peek() instanceof SiteModel) {
-			return (SiteModel) objectStack.pop();
-		}
-		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(NLS.bind(Messages.DefaultSiteParser_WrongParsingStack, (new String[] {stack})));
-	}
-
-	/* 
-	 * process archive info
-	 */
-	private void processArchive(Attributes attributes) {
-		URLEntry archive = new URLEntry();
-		String id = attributes.getValue("path"); //$NON-NLS-1$
-		if (id == null || id.trim().equals("")) { //$NON-NLS-1$
-			internalError(NLS.bind(Messages.DefaultSiteParser_Missing, (new String[] {"path", getState(currentState)}))); //$NON-NLS-1$
-		}
-
-		archive.setAnnotation(id);
-
-		String url = attributes.getValue("url"); //$NON-NLS-1$
-		if (url == null || url.trim().equals("")) { //$NON-NLS-1$
-			internalError(NLS.bind(Messages.DefaultSiteParser_Missing, (new String[] {"archive", getState(currentState)}))); //$NON-NLS-1$
-		} else {
-			archive.setURL(url);
-
-			SiteModel site = (SiteModel) objectStack.peek();
-			site.addArchive(archive);
-		}
-		if (Tracing.DEBUG_GENERATOR_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$
-		SiteFeature feature = (SiteFeature) objectStack.peek();
-		feature.addCategoryName(category);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End processing Category: name:" + category); //$NON-NLS-1$
-	}
-
-	/* 
-	 * process category def info
-	 */
-	private void processCategoryDef(Attributes attributes) {
-		SiteCategory category = new SiteCategory();
-		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.addCategory(category);
-		objectStack.push(category);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End processing CategoryDef: name:" + name + " label:" + label); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/* 
-	 * process feature info
-	 */
-	private void processFeature(Attributes attributes) {
-		SiteFeature feature = new SiteFeature();
-
-		// 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(NLS.bind(Messages.DefaultSiteParser_Missing, (new String[] {"url", getState(currentState)}))); //$NON-NLS-1$
-			else
-				// default url
-				urlInfo = FEATURES + id + '_' + ver; // 
-		}
-
-		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)};
-			log(NLS.bind(Messages.DefaultFeatureParser_IdOrVersionInvalid, values));
-		} 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.addFeature(feature);
-		feature.setSiteModel(site);
-
-		objectStack.push(feature);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End Processing DefaultFeature Tag: url:" + urlInfo + " type:" + type); //$NON-NLS-1$ //$NON-NLS-2$
-
-	}
-
-	/* 
-	 * process URL info with element text
-	 */
-	private void processInfo(Attributes attributes) {
-		URLEntry inf = new URLEntry();
-		String infoURL = attributes.getValue("url"); //$NON-NLS-1$
-		inf.setURL(infoURL);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("Processed Info: url:" + infoURL); //$NON-NLS-1$
-
-		objectStack.push(inf);
-	}
-
-	/* 
-	 * process site info
-	 */
-	private void processSite(Attributes attributes) {
-		// create site map
-		SiteModel site = new SiteModel();
-
-		// 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		
-		URLEntry description = new URLEntry();
-		description.setURL(DEFAULT_INFO_URL);
-		site.setDescription(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$
-		site.setType(type);
-
-		// get mirrors, if any
-		String mirrorsURL = attributes.getValue("mirrorsURL"); //$NON-NLS-1$
-		if (mirrorsURL != null && mirrorsURL.trim().length() > 0) {
-			//			URLEntry[] mirrors = getMirrors(mirrorsURL);
-			//			if (mirrors != null)
-			//				site.setMirrors(mirrors);
-			//			else
-
-			//Since we are parsing the site at p2 generation time and the 
-			//mirrors may change, there is no point doing the mirror expansion now
-			site.setMirrorsURLString(mirrorsURL);
-		}
-
-		String pack200 = attributes.getValue("pack200"); //$NON-NLS-1$
-		if (pack200 != null && new Boolean(pack200).booleanValue()) {
-			site.setSupportsPack200(true);
-		}
-
-		//		if (attributes.getValue("digestURL") != null) { //$NON-NLS-1$
-		//			site.setDigestExist(true);
-		//			site.setDigestURL(attributes.getValue("digestURL")); //$NON-NLS-1$
-		//
-		//			if ((attributes.getValue("availableLocales") != null) && (!attributes.getValue("availableLocales").trim().equals(""))) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		//				StringTokenizer locals = new StringTokenizer(attributes.getValue("availableLocales"), ","); //$NON-NLS-1$//$NON-NLS-2$
-		//				String[] availableLocals = new String[locals.countTokens()];
-		//				int i = 0;
-		//				while (locals.hasMoreTokens()) {
-		//					availableLocals[i++] = locals.nextToken();
-		//				}
-		//								extendedSite.setAvailableLocals(availableLocals);
-		//			}
-		//		}
-		//
-		//		if ((site instanceof ExtendedSite) && (attributes.getValue("associateSitesURL") != null)) { //$NON-NLS-1$
-		//			IURLEntry[] associateSites = getAssociateSites(attributes.getValue("associateSitesURL"), factory); //$NON-NLS-1$
-		//			if (associateSites != null)
-		//				((ExtendedSite) site).setAssociateSites(associateSites);
-		//			else
-		//				site.setMirrorsURLString(mirrorsURL);
-		//		}
-
-		objectStack.push(site);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End process Site tag: siteURL:" + siteURL + " type:" + type);//$NON-NLS-1$ //$NON-NLS-2$
-
-	}
-
-	/**
-	 * 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 (Tracing.DEBUG_GENERATOR_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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {localName, getState(currentState)})));
-				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(NLS.bind(Messages.DefaultSiteParser_UnknownStartState, (new String[] {getState(currentState)})));
-				break;
-		}
-		int newState = ((Integer) stateStack.peek()).intValue();
-		if (newState != STATE_IGNORED_ELEMENT)
-			currentState = newState;
-
-	}
-
-	private boolean trailingSpace(String str) {
-		if (str.length() <= 0) {
-			return false;
-		}
-		return Character.isWhitespace(str.charAt(str.length() - 1));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DigestParser.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DigestParser.java
deleted file mode 100644
index 4786e32..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/DigestParser.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import javax.xml.parsers.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.metadata.generator.Activator;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Feature;
-import org.eclipse.osgi.util.NLS;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Default feature parser.
- * Parses the feature manifest file as defined by the platform.
- * 
- * @since 3.0
- */
-public class DigestParser extends DefaultHandler {
-
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-	private SAXParser parser;
-	private final List features = new ArrayList();
-	private final FeatureParser featureHandler = new FeatureParser(false);
-
-	public DigestParser() {
-		super();
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			System.out.println(e);
-		} catch (SAXException e) {
-			System.out.println(e);
-		}
-	}
-
-	public void characters(char[] ch, int start, int length) throws SAXException {
-		featureHandler.characters(ch, start, length);
-	}
-
-	public void endElement(String uri, String localName, String qName) throws SAXException {
-		if ("digest".equals(localName)) { //$NON-NLS-1$
-			return;
-		}
-		if ("feature".equals(localName)) { //$NON-NLS-1$
-			Feature feature = featureHandler.getResult();
-			features.add(feature);
-		} else
-			featureHandler.endElement(uri, localName, qName);
-	}
-
-	public Feature[] parse(File location) {
-		if (!location.exists())
-			return null;
-
-		InputStream is = null;
-		try {
-			JarFile jar = new JarFile(location);
-			JarEntry entry = jar.getJarEntry("digest.xml"); //$NON-NLS-1$
-			if (entry == null)
-				return null;
-			is = new BufferedInputStream(jar.getInputStream(entry));
-			parser.parse(new InputSource(is), this);
-			return (Feature[]) features.toArray(new Feature[features.size()]);
-		} catch (IOException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.DefaultSiteParser_ErrorReadingDigest, location), e));
-		} catch (SAXException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.DefaultSiteParser_ErrorReadingDigest, location), e));
-		} finally {
-			try {
-				if (is != null)
-					is.close();
-			} catch (IOException e1) {
-				//
-			}
-		}
-		return null;
-	}
-
-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-		if ("digest".equals(localName)) { //$NON-NLS-1$
-			return;
-		}
-		featureHandler.startElement(uri, localName, qName, attributes);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/FeatureParser.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/FeatureParser.java
deleted file mode 100644
index 878a7f9..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/FeatureParser.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import java.io.*;
-import java.net.URL;
-import java.util.Properties;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import javax.xml.parsers.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Feature;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.FeatureEntry;
-import org.eclipse.osgi.util.NLS;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Default feature parser.
- * Parses the feature manifest file as defined by the platform.
- * 
- * @since 3.0
- */
-public class FeatureParser extends DefaultHandler {
-
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-	private SAXParser parser;
-	private Feature result;
-	private URL url;
-	private StringBuffer characters = null;
-
-	private Properties messages = null;
-
-	public FeatureParser() {
-		this(true);
-	}
-
-	protected FeatureParser(boolean createParser) {
-		super();
-		if (!createParser)
-			return;
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			System.out.println(e);
-		} catch (SAXException e) {
-			System.out.println(e);
-		}
-	}
-
-	public void characters(char[] ch, int start, int length) throws SAXException {
-		if (characters == null)
-			return;
-		characters.append(ch, start, length);
-	}
-
-	protected Feature createFeature(String id, String version) {
-		return new Feature(id, version);
-	}
-
-	public void endElement(String uri, String localName, String qName) throws SAXException {
-		if (characters == null)
-			return;
-		if ("description".equals(localName)) { //$NON-NLS-1$
-			result.setDescription(localize(characters.toString().trim()));
-		} else if ("license".equals(localName)) { //$NON-NLS-1$
-			result.setLicense(localize(characters.toString().trim()));
-		} else if ("copyright".equals(localName)) { //$NON-NLS-1$
-			result.setCopyright(localize(characters.toString().trim()));
-		}
-		characters = null;
-	}
-
-	public Feature getResult() {
-		return result;
-	}
-
-	private Properties loadProperties(File directory) {
-		//skip directories that don't contain a feature.properties file
-		File file = new File(directory, "feature.properties"); //$NON-NLS-1$
-		if (!file.exists())
-			return null;
-		try {
-			InputStream input = new BufferedInputStream(new FileInputStream(file));
-			try {
-				Properties result = new Properties();
-				result.load(input);
-				return result;
-			} finally {
-				if (input != null)
-					input.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	private Properties loadProperties(JarFile jar) {
-		JarEntry entry = jar.getJarEntry("feature.properties"); //$NON-NLS-1$
-		if (entry == null)
-			return null;
-		try {
-			InputStream input = new BufferedInputStream(jar.getInputStream(entry));
-			try {
-				Properties result = new Properties();
-				result.load(input);
-				return result;
-			} finally {
-				if (input != null)
-					input.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	private String localize(String value) {
-		if (messages == null || value == null)
-			return value;
-		if (!value.startsWith("%")) //$NON-NLS-1$
-			return value;
-		return messages.getProperty(value.substring(1), value);
-	}
-
-	/**
-	 * Parses the specified location and constructs a feature. The given location 
-	 * should be either the location of the feature JAR or the directory containing
-	 * the feature.
-	 * 
-	 * @param location the location of the feature to parse.  
-	 */
-	public Feature parse(File location) {
-		if (!location.exists())
-			return null;
-		if (location.isDirectory()) {
-			//skip directories that don't contain a feature.xml file
-			File file = new File(location, "feature.xml"); //$NON-NLS-1$
-			if (!file.exists())
-				return null;
-			Properties properties = loadProperties(location);
-			try {
-				InputStream input = new BufferedInputStream(new FileInputStream(file));
-				return parse(input, properties);
-			} catch (FileNotFoundException e) {
-				e.printStackTrace();
-			}
-		} else if (location.getName().endsWith(".jar")) { //$NON-NLS-1$
-			try {
-				JarFile jar = new JarFile(location);
-				Properties properties = loadProperties(jar);
-				JarEntry entry = jar.getJarEntry("feature.xml"); //$NON-NLS-1$
-				if (entry == null)
-					return null;
-				InputStream input = new BufferedInputStream(jar.getInputStream(entry));
-				return parse(input, properties);
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Parse the given input stream and return a feature object
-	 * or null. This method closes the input stream.
-	 */
-	public Feature parse(InputStream in, Properties messages) {
-		this.messages = messages;
-		result = null;
-		try {
-			parser.parse(new InputSource(in), this);
-		} catch (SAXException e) {
-			e.printStackTrace();
-		} catch (IOException e) {
-			e.printStackTrace();
-		} finally {
-			try {
-				in.close();
-			} catch (IOException e1) {
-				//					Utils.log(e1.getLocalizedMessage());
-			}
-		}
-		return result;
-	}
-
-	private void processCopyright(Attributes attributes) {
-		result.setCopyrightURL(attributes.getValue("url")); //$NON-NLS-1$
-		characters = new StringBuffer();
-	}
-
-	private void processDescription(Attributes attributes) {
-		result.setDescriptionURL(attributes.getValue("url")); //$NON-NLS-1$
-		characters = new StringBuffer();
-	}
-
-	private void processDiscoverySite(Attributes attributes) {
-		result.addDiscoverySite(attributes.getValue("url"), attributes.getValue("label")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	protected void processFeature(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$
-			//			System.out.println(NLS.bind(Messages.FeatureParser_IdOrVersionInvalid, (new String[] { id, ver})));
-		} else {
-			result = createFeature(id, ver);
-
-			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$
-			result.setEnvironment(os, ws, arch, nl);
-
-			//TODO rootURLs
-			if (url != null && "file".equals(url.getProtocol())) { //$NON-NLS-1$
-				File f = new File(url.getFile().replace('/', File.separatorChar));
-				result.setURL("features" + "/" + f.getParentFile().getName() + "/");// + f.getName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			} else {
-				// externalized URLs might be in relative form, ensure they are absolute				
-				//				feature.setURL(Utils.makeAbsolute(Utils.getInstallURL(), url).toExternalForm());
-			}
-
-			result.setProviderName(localize(attributes.getValue("provider-name"))); //$NON-NLS-1$
-			result.setLabel(localize(attributes.getValue("label"))); //$NON-NLS-1$
-			result.setImage(attributes.getValue("image")); //$NON-NLS-1$
-
-			//			Utils.debug("End process DefaultFeature tag: id:" +id + " ver:" +ver + " url:" + feature.getURL()); 	 //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	private void processImport(Attributes attributes) {
-		String id = attributes.getValue("feature"); //$NON-NLS-1$
-		FeatureEntry entry = null;
-		if (id != null) {
-			entry = FeatureEntry.createRequires(id, attributes.getValue("version"), attributes.getValue("match"), attributes.getValue("filter"), false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		} else {
-			id = attributes.getValue("plugin"); //$NON-NLS-1$
-			entry = FeatureEntry.createRequires(id, attributes.getValue("version"), attributes.getValue("match"), attributes.getValue("filter"), true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		result.addEntry(entry);
-	}
-
-	private void processIncludes(Attributes attributes) {
-		FeatureEntry entry = new FeatureEntry(attributes.getValue("id"), attributes.getValue("version"), false); //$NON-NLS-1$ //$NON-NLS-2$
-		String flag = attributes.getValue("optional"); //$NON-NLS-1$
-		if (flag != null)
-			entry.setOptional(Boolean.valueOf(flag).booleanValue());
-		setEnvironment(attributes, entry);
-		result.addEntry(entry);
-	}
-
-	private void processInstallHandler(Attributes attributes) {
-		result.setInstallHandler(attributes.getValue("handler")); //$NON-NLS-1$
-		result.setInstallHandlerLibrary(attributes.getValue("library")); //$NON-NLS-1$
-		result.setInstallHandlerURL(attributes.getValue("url")); //$NON-NLS-1$
-	}
-
-	private void processLicense(Attributes attributes) {
-		result.setLicenseURL(attributes.getValue("url")); //$NON-NLS-1$
-		characters = new StringBuffer();
-	}
-
-	private void processPlugin(Attributes attributes) {
-		String id = attributes.getValue("id"); //$NON-NLS-1$
-		String version = attributes.getValue("version"); //$NON-NLS-1$
-
-		if (id == null || id.trim().equals("") || version == null || version.trim().equals("")) { //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println(NLS.bind("FeatureParser#processPlugin, ID {0} or version {1} invalid", (new String[] {id, version}))); //$NON-NLS-1$
-		} else {
-			FeatureEntry plugin = new FeatureEntry(id, version, true);
-			setEnvironment(attributes, plugin);
-			String unpack = attributes.getValue("unpack"); //$NON-NLS-1$
-			if (unpack != null)
-				plugin.setUnpack(Boolean.valueOf(unpack).booleanValue());
-			String fragment = attributes.getValue("fragment"); //$NON-NLS-1$
-			if (fragment != null)
-				plugin.setFragment(Boolean.valueOf(fragment).booleanValue());
-			String filter = attributes.getValue("filter"); //$NON-NLS-1$
-			if (filter != null)
-				plugin.setFilter(filter);
-			result.addEntry(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 processUpdateSite(Attributes attributes) {
-		result.setUpdateSiteLabel(attributes.getValue("label")); //$NON-NLS-1$
-		result.setUpdateSiteURL(attributes.getValue("url")); //$NON-NLS-1$
-	}
-
-	private void setEnvironment(Attributes attributes, FeatureEntry entry) {
-		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$
-		entry.setEnvironment(os, ws, arch, nl);
-	}
-
-	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$
-			processDescription(attributes);
-		} else if ("license".equals(localName)) { //$NON-NLS-1$
-			processLicense(attributes);
-		} else if ("copyright".equals(localName)) { //$NON-NLS-1$
-			processCopyright(attributes);
-		} else if ("feature".equals(localName)) { //$NON-NLS-1$
-			processFeature(attributes);
-		} else if ("import".equals(localName)) { //$NON-NLS-1$
-			processImport(attributes);
-		} else if ("includes".equals(localName)) { //$NON-NLS-1$
-			processIncludes(attributes);
-		} else if ("install-handler".equals(localName)) { //$NON-NLS-1$
-			processInstallHandler(attributes);
-		} else if ("update".equals(localName)) { //$NON-NLS-1$
-			processUpdateSite(attributes);
-		} else if ("discovery".equals(localName)) { //$NON-NLS-1$
-			processDiscoverySite(attributes);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/Messages.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/Messages.java
deleted file mode 100644
index 6ce0ca3..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/Messages.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.update.internal.core.messages";//$NON-NLS-1$
-
-	public static String DefaultFeatureParser_IdOrVersionInvalid;
-	public static String DefaultSiteParser_NoSiteTag;
-	public static String DefaultSiteParser_WrongParsingStack;
-	public static String DefaultSiteParser_UnknownElement;
-	public static String DefaultSiteParser_UnknownStartState;
-	public static String DefaultSiteParser_Missing;
-	public static String DefaultSiteParser_ParsingStackBackToInitialState;
-	public static String DefaultSiteParser_ElementAlreadySet;
-	public static String DefaultSiteParser_CategoryAlreadySet;
-	public static String DefaultSiteParser_UnknownEndState;
-	public static String DefaultSiteParser_ErrorParsing;
-	public static String DefaultSiteParser_ErrorlineColumnMessage;
-	public static String DefaultSiteParser_ErrorParsingSite;
-	public static String DefaultSiteParser_UnknownState;
-	public static String DefaultSiteParser_InvalidXMLStream;
-	public static String DefaultSiteParser_mirrors;
-	public static String DefaultSiteParser_ErrorReadingDigest;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/ProductFile.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/ProductFile.java
deleted file mode 100644
index 73380d7..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/ProductFile.java
+++ /dev/null
@@ -1,534 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import java.io.*;
-import java.util.*;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * 
- * @since 3.1
- */
-public class ProductFile extends DefaultHandler {
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-
-	private static final String PROGRAM_ARGS = "programArgs"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_LINUX = "programArgsLin"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_MAC = "programArgsMac"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_SOLARIS = "programArgsSol"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_WIN = "programArgsWin"; //$NON-NLS-1$
-	private static final String VM_ARGS = "vmArgs"; //$NON-NLS-1$
-	private static final String VM_ARGS_LINUX = "vmArgsLin"; //$NON-NLS-1$
-	private static final String VM_ARGS_MAC = "vmArgsMac"; //$NON-NLS-1$
-	private static final String VM_ARGS_SOLARIS = "vmArgsSol"; //$NON-NLS-1$
-	private static final String VM_ARGS_WIN = "vmArgsWin"; //$NON-NLS-1$
-
-	private static final String SOLARIS_LARGE = "solarisLarge"; //$NON-NLS-1$
-	private static final String SOLARIS_MEDIUM = "solarisMedium"; //$NON-NLS-1$
-	private static final String SOLARIS_SMALL = "solarisSmall"; //$NON-NLS-1$
-	private static final String SOLARIS_TINY = "solarisTiny"; //$NON-NLS-1$
-	private static final String WIN32_16_LOW = "winSmallLow"; //$NON-NLS-1$
-	private static final String WIN32_16_HIGH = "winSmallHigh"; //$NON-NLS-1$
-	private static final String WIN32_24_LOW = "win24Low"; //$NON-NLS-1$
-	private static final String WIN32_32_LOW = "winMediumLow"; //$NON-NLS-1$
-	private static final String WIN32_32_HIGH = "winMediumHigh"; //$NON-NLS-1$
-	private static final String WIN32_48_LOW = "winLargeLow"; //$NON-NLS-1$
-	private static final String WIN32_48_HIGH = "winLargeHigh"; //$NON-NLS-1$
-
-	private static final String OS_WIN32 = "win32";//$NON-NLS-1$
-	private static final String OS_LINUX = "linux";//$NON-NLS-1$
-	private static final String OS_SOLARIS = "solaris";//$NON-NLS-1$
-	private static final String OS_MACOSX = "macosx";//$NON-NLS-1$
-
-	private static final String PRODUCT = "product"; //$NON-NLS-1$
-	private static final String CONFIG_INI = "configIni"; //$NON-NLS-1$
-	private static final String LAUNCHER = "launcher"; //$NON-NLS-1$
-	private static final String LAUNCHER_ARGS = "launcherArgs"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String SPLASH = "splash"; //$NON-NLS-1$
-	private static final String P_USE_ICO = "useIco"; //$NON-NLS-1$
-
-	//These constants form a small state machine to parse the .product file
-	private static final int STATE_START = 0;
-	private static final int STATE_PRODUCT = 1;
-	private static final int STATE_LAUNCHER = 2;
-	private static final int STATE_LAUNCHER_ARGS = 3;
-	private static final int STATE_PLUGINS = 4;
-	private static final int STATE_FEATURES = 5;
-	private static final int STATE_PROGRAM_ARGS = 6;
-	private static final int STATE_PROGRAM_ARGS_LINUX = 7;
-	private static final int STATE_PROGRAM_ARGS_MAC = 8;
-	private static final int STATE_PROGRAM_ARGS_SOLARIS = 9;
-	private static final int STATE_PROGRAM_ARGS_WIN = 10;
-	private static final int STATE_VM_ARGS = 11;
-	private static final int STATE_VM_ARGS_LINUX = 12;
-	private static final int STATE_VM_ARGS_MAC = 13;
-	private static final int STATE_VM_ARGS_SOLARIS = 14;
-	private static final int STATE_VM_ARGS_WIN = 15;
-
-	private int state = STATE_START;
-
-	private final SAXParser parser;
-	private String currentOS = null;
-	private boolean useIco = false;
-	private final ArrayList result = new ArrayList(6);
-	private String launcherName = null;
-	private String icons[] = null;
-	private String configPath = null;
-	private final Map platformSpecificConfigPaths = new HashMap();
-	private String id = null;
-	private boolean useFeatures = false;
-	private List plugins = null;
-	private List fragments = null;
-	private List features = null;
-	private String splashLocation = null;
-	private String productName = null;
-	private String application = null;
-	private String version = null;
-
-	private Properties launcherArgs = new Properties();
-
-	private static String normalize(String text) {
-		if (text == null || text.trim().length() == 0)
-			return ""; //$NON-NLS-1$
-
-		text = text.replaceAll("\\r|\\n|\\f|\\t", " "); //$NON-NLS-1$ //$NON-NLS-2$
-		return text.replaceAll("\\s+", " "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Constructs a feature parser.
-	 */
-	public ProductFile(String location, String os) throws Exception {
-		super();
-		this.currentOS = os;
-		//		try {
-		parserFactory.setNamespaceAware(true);
-		parser = parserFactory.newSAXParser();
-		InputStream in = new BufferedInputStream(new FileInputStream(location));
-		parser.parse(new InputSource(in), this);
-		//		} catch (ParserConfigurationException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FORMAT, NLS.bind(Messages.exception_productParse, location), e));
-		//		} catch (SAXException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FORMAT, NLS.bind(Messages.exception_productParse, location), e));
-		//		} catch (FileNotFoundException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FILE, NLS.bind(Messages.exception_missingElement, location), null));
-		//		} catch (IOException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FORMAT, NLS.bind(Messages.exception_productParse, location), e));
-		//		}
-	}
-
-	public String getLauncherName() {
-		return launcherName;
-	}
-
-	public List getPlugins() {
-		return getPlugins(true);
-	}
-
-	public List getPlugins(boolean includeFragments) {
-		List p = plugins != null ? plugins : Collections.EMPTY_LIST;
-		if (!includeFragments)
-			return p;
-
-		List f = fragments != null ? fragments : Collections.EMPTY_LIST;
-		int size = p.size() + f.size();
-		if (size == 0)
-			return Collections.EMPTY_LIST;
-
-		List both = new ArrayList(size);
-		both.addAll(p);
-		both.addAll(f);
-		return both;
-	}
-
-	public List getFragments() {
-		if (fragments == null)
-			return Collections.EMPTY_LIST;
-		return fragments;
-	}
-
-	public List getFeatures() {
-		if (features == null)
-			return Collections.EMPTY_LIST;
-		return features;
-	}
-
-	public boolean containsPlugin(String plugin) {
-		return (plugins != null && plugins.contains(plugin)) || (fragments != null && fragments.contains(plugin));
-	}
-
-	/**
-	 * Parses the specified url and constructs a feature
-	 */
-	public String[] getIcons() {
-		if (icons != null)
-			return icons;
-		String[] temp = new String[result.size()];
-		int i = 0;
-		for (Iterator iter = result.iterator(); iter.hasNext();) {
-			String element = (String) iter.next();
-			if (element != null)
-				temp[i++] = element;
-		}
-		icons = new String[i];
-		System.arraycopy(temp, 0, icons, 0, i);
-		return icons;
-	}
-
-	public String getConfigIniPath() {
-		return configPath;
-	}
-
-	public String getConfigIniPath(String os) {
-		String specific = (String) platformSpecificConfigPaths.get(os);
-		return specific == null ? configPath : specific;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getSplashLocation() {
-		return splashLocation;
-	}
-
-	public String getProductName() {
-		return productName;
-	}
-
-	public String getApplication() {
-		return application;
-	}
-
-	public boolean useFeatures() {
-		return useFeatures;
-	}
-
-	public String getVersion() {
-		return (version == null) ? "0.0.0" : version; //$NON-NLS-1$
-	}
-
-	public String getVMArguments(String os) {
-		String key = null;
-		if (os.equals(OS_WIN32)) {
-			key = VM_ARGS_WIN;
-		} else if (os.equals(OS_LINUX)) {
-			key = VM_ARGS_LINUX;
-		} else if (os.equals(OS_MACOSX)) {
-			key = VM_ARGS_MAC;
-		} else if (os.equals(OS_SOLARIS)) {
-			key = VM_ARGS_SOLARIS;
-		}
-
-		String prefix = launcherArgs.getProperty(VM_ARGS);
-		String platform = null, args = null;
-		if (key != null)
-			platform = launcherArgs.getProperty(key);
-		if (prefix != null)
-			args = platform != null ? prefix + " " + platform : prefix; //$NON-NLS-1$
-		else
-			args = platform != null ? platform : ""; //$NON-NLS-1$
-		return normalize(args);
-	}
-
-	public String getProgramArguments(String os) {
-		String key = null;
-		if (os.equals(OS_WIN32)) {
-			key = PROGRAM_ARGS_WIN;
-		} else if (os.equals(OS_LINUX)) {
-			key = PROGRAM_ARGS_LINUX;
-		} else if (os.equals(OS_MACOSX)) {
-			key = PROGRAM_ARGS_MAC;
-		} else if (os.equals(OS_SOLARIS)) {
-			key = PROGRAM_ARGS_SOLARIS;
-		}
-
-		String prefix = launcherArgs.getProperty(PROGRAM_ARGS);
-		String platform = null, args = null;
-		if (key != null)
-			platform = launcherArgs.getProperty(key);
-		if (prefix != null)
-			args = platform != null ? prefix + " " + platform : prefix; //$NON-NLS-1$
-		else
-			args = platform != null ? platform : ""; //$NON-NLS-1$
-		return normalize(args);
-	}
-
-	public void startElement(String uri, String localName, String qName, Attributes attributes) {
-		switch (state) {
-			case STATE_START :
-				if (PRODUCT.equals(localName)) {
-					processProduct(attributes);
-					state = STATE_PRODUCT;
-				}
-				break;
-
-			case STATE_PRODUCT :
-				if (CONFIG_INI.equals(localName)) {
-					processConfigIni(attributes);
-				} else if (LAUNCHER.equals(localName)) {
-					processLauncher(attributes);
-					state = STATE_LAUNCHER;
-				} else if (PLUGINS.equals(localName)) {
-					state = STATE_PLUGINS;
-				} else if (FEATURES.equals(localName)) {
-					state = STATE_FEATURES;
-				} else if (LAUNCHER_ARGS.equals(localName)) {
-					state = STATE_LAUNCHER_ARGS;
-				} else if (SPLASH.equals(localName)) {
-					splashLocation = attributes.getValue("location"); //$NON-NLS-1$
-				}
-				break;
-
-			case STATE_LAUNCHER :
-				if (OS_SOLARIS.equals(localName)) {
-					processSolaris(attributes);
-				} else if ("win".equals(localName)) { //$NON-NLS-1$
-					processWin(attributes);
-				} else if (OS_LINUX.equals(localName)) {
-					processLinux(attributes);
-				} else if (OS_MACOSX.equals(localName)) {
-					processMac(attributes);
-				}
-				if ("ico".equals(localName)) { //$NON-NLS-1$
-					processIco(attributes);
-				} else if ("bmp".equals(localName)) { //$NON-NLS-1$
-					processBmp(attributes);
-				}
-				break;
-
-			case STATE_LAUNCHER_ARGS :
-				if (PROGRAM_ARGS.equals(localName)) {
-					state = STATE_PROGRAM_ARGS;
-				} else if (PROGRAM_ARGS_LINUX.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_LINUX;
-				} else if (PROGRAM_ARGS_MAC.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_MAC;
-				} else if (PROGRAM_ARGS_SOLARIS.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_SOLARIS;
-				} else if (PROGRAM_ARGS_WIN.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_WIN;
-				} else if (VM_ARGS.equals(localName)) {
-					state = STATE_VM_ARGS;
-				} else if (VM_ARGS_LINUX.equals(localName)) {
-					state = STATE_VM_ARGS_LINUX;
-				} else if (VM_ARGS_MAC.equals(localName)) {
-					state = STATE_VM_ARGS_MAC;
-				} else if (VM_ARGS_SOLARIS.equals(localName)) {
-					state = STATE_VM_ARGS_SOLARIS;
-				} else if (VM_ARGS_WIN.equals(localName)) {
-					state = STATE_VM_ARGS_WIN;
-				}
-				break;
-
-			case STATE_PLUGINS :
-				if ("plugin".equals(localName)) { //$NON-NLS-1$
-					processPlugin(attributes);
-				}
-				break;
-
-			case STATE_FEATURES :
-				if ("feature".equals(localName)) { //$NON-NLS-1$
-					processFeature(attributes);
-				}
-				break;
-		}
-	}
-
-	public void endElement(String uri, String localName, String qName) {
-		switch (state) {
-			case STATE_PLUGINS :
-				if (PLUGINS.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-			case STATE_FEATURES :
-				if (FEATURES.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-			case STATE_LAUNCHER_ARGS :
-				if (LAUNCHER_ARGS.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-			case STATE_LAUNCHER :
-				if (LAUNCHER.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-
-			case STATE_PROGRAM_ARGS :
-			case STATE_PROGRAM_ARGS_LINUX :
-			case STATE_PROGRAM_ARGS_MAC :
-			case STATE_PROGRAM_ARGS_SOLARIS :
-			case STATE_PROGRAM_ARGS_WIN :
-			case STATE_VM_ARGS :
-			case STATE_VM_ARGS_LINUX :
-			case STATE_VM_ARGS_MAC :
-			case STATE_VM_ARGS_SOLARIS :
-			case STATE_VM_ARGS_WIN :
-				state = STATE_LAUNCHER_ARGS;
-				break;
-		}
-	}
-
-	public void characters(char[] ch, int start, int length) {
-		switch (state) {
-			case STATE_PROGRAM_ARGS :
-				addLaunchArgumentToMap(PROGRAM_ARGS, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_LINUX :
-				addLaunchArgumentToMap(PROGRAM_ARGS_LINUX, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_MAC :
-				addLaunchArgumentToMap(PROGRAM_ARGS_MAC, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_SOLARIS :
-				addLaunchArgumentToMap(PROGRAM_ARGS_SOLARIS, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_WIN :
-				addLaunchArgumentToMap(PROGRAM_ARGS_WIN, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS :
-				addLaunchArgumentToMap(VM_ARGS, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_LINUX :
-				addLaunchArgumentToMap(VM_ARGS_LINUX, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_MAC :
-				addLaunchArgumentToMap(VM_ARGS_MAC, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_SOLARIS :
-				addLaunchArgumentToMap(VM_ARGS_SOLARIS, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_WIN :
-				addLaunchArgumentToMap(VM_ARGS_WIN, String.valueOf(ch, start, length));
-				break;
-		}
-	}
-
-	private void addLaunchArgumentToMap(String key, String value) {
-		if (launcherArgs == null)
-			launcherArgs = new Properties();
-
-		String oldValue = launcherArgs.getProperty(key);
-		if (oldValue != null)
-			launcherArgs.setProperty(key, oldValue + value);
-		else
-			launcherArgs.setProperty(key, value);
-	}
-
-	private void processPlugin(Attributes attributes) {
-		String fragment = attributes.getValue("fragment"); //$NON-NLS-1$
-		if (fragment != null && new Boolean(fragment).booleanValue()) {
-			if (fragments == null)
-				fragments = new ArrayList();
-			fragments.add(attributes.getValue("id")); //$NON-NLS-1$
-		} else {
-			if (plugins == null)
-				plugins = new ArrayList();
-			plugins.add(attributes.getValue("id")); //$NON-NLS-1$
-		}
-	}
-
-	private void processFeature(Attributes attributes) {
-		if (features == null)
-			features = new ArrayList();
-		features.add(attributes.getValue("id")); //$NON-NLS-1$
-	}
-
-	private void processProduct(Attributes attributes) {
-		id = attributes.getValue("id"); //$NON-NLS-1$
-		productName = attributes.getValue("name"); //$NON-NLS-1$
-		application = attributes.getValue("application"); //$NON-NLS-1$
-		String use = attributes.getValue("useFeatures"); //$NON-NLS-1$
-		if (use != null)
-			useFeatures = Boolean.valueOf(use).booleanValue();
-		version = attributes.getValue("version"); //$NON-NLS-1$
-	}
-
-	private void processConfigIni(Attributes attributes) {
-		String path = null;
-		if ("custom".equals(attributes.getValue("use"))) { //$NON-NLS-1$//$NON-NLS-2$
-			path = attributes.getValue("path"); //$NON-NLS-1$
-		}
-		String os = attributes.getValue("os"); //$NON-NLS-1$
-		if (os != null && os.length() > 0) {
-			// TODO should we allow a platform-specific default to over-ride a custom generic path?
-			if (path != null)
-				platformSpecificConfigPaths.put(os, path);
-		} else {
-			configPath = path;
-		}
-	}
-
-	private void processLauncher(Attributes attributes) {
-		launcherName = attributes.getValue("name"); //$NON-NLS-1$
-	}
-
-	private boolean osMatch(String os) {
-		if (os == currentOS)
-			return true;
-		if (os == null)
-			return false;
-		return os.equals(currentOS);
-	}
-
-	private void processSolaris(Attributes attributes) {
-		if (!osMatch(OS_SOLARIS))
-			return;
-		result.add(attributes.getValue(SOLARIS_LARGE));
-		result.add(attributes.getValue(SOLARIS_MEDIUM));
-		result.add(attributes.getValue(SOLARIS_SMALL));
-		result.add(attributes.getValue(SOLARIS_TINY));
-	}
-
-	private void processWin(Attributes attributes) {
-		if (!osMatch(OS_WIN32))
-			return;
-		useIco = Boolean.valueOf(attributes.getValue(P_USE_ICO)).booleanValue();
-	}
-
-	private void processIco(Attributes attributes) {
-		if (!osMatch(OS_WIN32) || !useIco)
-			return;
-		result.add(attributes.getValue("path")); //$NON-NLS-1$
-	}
-
-	private void processBmp(Attributes attributes) {
-		if (!osMatch(OS_WIN32) || useIco)
-			return;
-		result.add(attributes.getValue(WIN32_16_HIGH));
-		result.add(attributes.getValue(WIN32_16_LOW));
-		result.add(attributes.getValue(WIN32_24_LOW));
-		result.add(attributes.getValue(WIN32_32_HIGH));
-		result.add(attributes.getValue(WIN32_32_LOW));
-		result.add(attributes.getValue(WIN32_48_HIGH));
-		result.add(attributes.getValue(WIN32_48_LOW));
-	}
-
-	private void processLinux(Attributes attributes) {
-		if (!osMatch(OS_LINUX))
-			return;
-		result.add(attributes.getValue("icon")); //$NON-NLS-1$
-	}
-
-	private void processMac(Attributes attributes) {
-		if (!osMatch(OS_MACOSX))
-			return;
-		result.add(attributes.getValue("icon")); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteCategory.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteCategory.java
deleted file mode 100644
index f818d8d..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteCategory.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Comparator;
-
-/**
- * A category in an update site.
- * 
- * Based on org.eclipse.update.core.model.CategoryModel.
- */
-public class SiteCategory {
-
-	private static Comparator comp;
-	private String description;
-	private String label;
-	private String name;
-
-	/**
-	 * 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) {
-
-					SiteCategory cat1 = (SiteCategory) o1;
-					SiteCategory cat2 = (SiteCategory) o2;
-
-					if (cat1.equals(cat2))
-						return 0;
-					return cat1.getName().compareTo(cat2.getName());
-				}
-			};
-		}
-		return comp;
-	}
-
-	/**
-	 * Creates an uninitialized model object.
-	 * 
-	 * @since 2.0
-	 */
-	public SiteCategory() {
-		super();
-	}
-
-	/**
-	 * Compare two category models for equality.
-	 * 
-	 * @see Object#equals(Object)
-	 * @since 2.0
-	 */
-	public boolean equals(Object obj) {
-		boolean result = false;
-		if (obj instanceof SiteCategory) {
-			SiteCategory otherCategory = (SiteCategory) obj;
-			result = getName().equalsIgnoreCase(otherCategory.getName());
-		}
-		return result;
-	}
-
-	/**
-	 * Retrieve the detailed category description
-	 * 
-	 * @return category description, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Retrieve the non-localized displayable label for the category.
-	 * 
-	 * @return non-localized displayable label, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Retrieve the name of the category.
-	 * 
-	 * @return category name, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Compute hash code for category model.
-	 * 
-	 * @see Object#hashCode()
-	 * @since 2.0
-	 */
-	public int hashCode() {
-		return getName().hashCode();
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * Sets the category description.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param description category description
-	 * @since 2.0
-	 */
-	public void setDescription(String description) {
-		this.description = 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) {
-		this.label = label;
-	}
-
-	/**
-	 * 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) {
-		this.name = name;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteFeature.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteFeature.java
deleted file mode 100644
index 2b02209..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteFeature.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     James D Miles (IBM Corp.) - bug 191783, NullPointerException in FeatureDownloader
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-
-/**
- * A reference to a feature in an update site.xml file.
- * 
- * Based on org.eclipse.update.core.model.FeatureReferenceModel.
- */
-public class SiteFeature {
-
-	private String arch;
-	// performance
-	private URL base;
-	private List /* of String*/categoryNames;
-	private String featureId;
-	private String featureVersion;
-	private String label;
-	private String nl;
-
-	private String os;
-	private String patch;
-	private final boolean resolved = false;
-	private SiteModel site;
-	private String type;
-	private URL url;
-	private String urlString;
-	private String ws;
-
-	/*
-	 * 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 = new File(url1.getFile());
-		File file2 = new File(url2.getFile());
-
-		if (file1 == null)
-			return false;
-
-		return (file1.equals(file2));
-	}
-
-	/**
-	 * Creates an uninitialized feature reference model object.
-	 */
-	public SiteFeature() {
-		super();
-	}
-
-	/**
-	 * 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
-	 */
-	public void addCategoryName(String categoryName) {
-		if (this.categoryNames == null)
-			this.categoryNames = new ArrayList();
-		if (!this.categoryNames.contains(categoryName))
-			this.categoryNames.add(categoryName);
-	}
-
-	private void delayedResolve() {
-
-		// PERF: delay resolution
-		if (resolved)
-			return;
-
-		// resolve local elements
-		try {
-			url = new URL(base, urlString);
-		} catch (MalformedURLException e) {
-			//			UpdateCore.warn("", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	public boolean equals(Object object) {
-
-		if (object == null)
-			return false;
-		if (getURL() == null)
-			return false;
-
-		if (!(object instanceof SiteFeature))
-			return false;
-
-		SiteFeature f = (SiteFeature) object;
-
-		return sameURL(getURL(), f.getURL());
-	}
-
-	/**
-	 * Returns the names of categories the referenced feature belongs to.
-	 * 
-	 * @return an array of names, or an empty array.
-	 */
-	public String[] getCategoryNames() {
-		if (categoryNames == null)
-			return new String[0];
-
-		return (String[]) categoryNames.toArray(new String[0]);
-	}
-
-	/**
-	 * Returns the feature identifier as a string
-	 * 
-	 * @return feature identifier
-	 */
-	public String getFeatureIdentifier() {
-		return featureId;
-	}
-
-	/**
-	 * Returns the feature version as a string
-	 * 
-	 * @return feature version 
-	 */
-	public String getFeatureVersion() {
-		return featureVersion;
-	}
-
-	/**
-	 * 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>.
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Retrieve the non-localized displayable label for the feature reference.
-	 *
-	 * @return non-localized displayable label, or <code>null</code>.
-	 */
-	public String getLabelNonLocalized() {
-		return label;
-	}
-
-	/**
-	 * Get optional locale specification as a comma-separated string.
-	 *
-	 * @return the locale specification string, or <code>null</code>.
-	 */
-	public String getNL() {
-		return nl;
-	}
-
-	/**
-	 * Get optional operating system specification as a comma-separated string.
-	 *
-	 * @return the operating system specification string, or <code>null</code>.
-	 */
-	public String getOS() {
-		return os;
-	}
-
-	/**
-	 * Get optional system architecture specification as a comma-separated string.
-	 *
-	 * @return the system architecture specification string, or <code>null</code>.
-	 */
-	public String getOSArch() {
-		return arch;
-	}
-
-	/**
-	 * Returns the patch mode.
-	 */
-	public String getPatch() {
-		return patch;
-	}
-
-	/**
-	 * Returns the site model for the reference.
-	 * 
-	 * @return site model
-	 * @since 2.0
-	 */
-	public SiteModel getSiteModel() {
-		return site;
-	}
-
-	/**
-	 * Returns the referenced feature type.
-	 * 
-	 * @return feature type, or <code>null</code> representing the default
-	 * feature type for the site
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Returns the resolved URL for the feature reference.
-	 * 
-	 * @return url string
-	 */
-	public URL getURL() {
-		delayedResolve();
-		return url;
-	}
-
-	/**
-	 * Returns the unresolved URL string for the reference.
-	 *
-	 * @return url string
-	 */
-	public String getURLString() {
-		return urlString;
-	}
-
-	/**
-	 * Get optional windowing system specification as a comma-separated string.
-	 *
-	 * @return the windowing system specification string, or <code>null</code>.
-	 */
-	public String getWS() {
-		return ws;
-	}
-
-	/**
-	 * 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 resolveBase URL
-	 * @param bundleURL resource bundle URL
-	 * @exception MalformedURLException
-	 */
-	public void resolve(URL resolveBase, URL bundleURL) throws MalformedURLException {
-		this.base = resolveBase;
-	}
-
-	/**
-	 * 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
-	 */
-	public void setArch(String arch) {
-		this.arch = arch;
-	}
-
-	/**
-	 * 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
-	 */
-	public void setCategoryNames(String[] categoryNames) {
-		if (categoryNames == null)
-			this.categoryNames = null;
-		else
-			this.categoryNames = new ArrayList(Arrays.asList(categoryNames));
-	}
-
-	/**
-	 * Sets the feature identifier.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param featureId feature identifier
-	 */
-	public void setFeatureIdentifier(String featureId) {
-		this.featureId = featureId;
-	}
-
-	/**
-	 * Sets the feature version.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param featureVersion feature version
-	 */
-	public void setFeatureVersion(String featureVersion) {
-		this.featureVersion = featureVersion;
-	}
-
-	/**
-	 * Sets the label.
-	 * @param label The label to set
-	 */
-	public void setLabel(String label) {
-		this.label = label;
-	}
-
-	/**
-	 * Sets the locale specification.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param nl locale specification as a comma-separated list
-	 */
-	public void setNL(String nl) {
-		this.nl = 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
-	 */
-	public void setOS(String os) {
-		this.os = os;
-	}
-
-	/**
-	 * Sets the patch mode.
-	 */
-	public void setPatch(String patch) {
-		this.patch = patch;
-	}
-
-	/**
-	 * Sets the site for the referenced.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param site site for the reference
-	 */
-	public void setSiteModel(SiteModel site) {
-		this.site = site;
-	}
-
-	/**
-	 * Sets the referenced feature type.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param type referenced feature type
-	 */
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	/**
-	 * Sets the unresolved URL for the feature reference.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param urlString unresolved URL string
-	 */
-	public void setURLString(String urlString) {
-		this.urlString = urlString;
-		this.url = null;
-	}
-
-	/**
-	 * 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
-	 */
-	public void setWS(String ws) {
-		this.ws = ws;
-	}
-
-	/**
-	 * @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();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java
deleted file mode 100644
index 6209724..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.features;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.URLEntry;
-
-/**
- * A model of an update site.
- * 
- * Copied from org.eclipse.update.core.model.SiteModel.
- */
-public class SiteModel {
-
-	private List /*of ArchiveReferenceModel*/archiveReferences;
-	/**
-	 * Map of String (category id) -> SiteCategory
-	 */
-	private Map categories;
-	private URLEntry description;
-	/**
-	 * Map of String (feature id) -> SiteFeature
-	 */
-	private List features;
-	private URL locationURL;
-	private String locationURLString;
-	private List /* of URLEntry */mirrors;
-	private String mirrorsURLString;
-	private boolean supportsPack200;
-	private String type;
-
-	/**
-	 * Creates an uninitialized site model object.
-	 * 
-	 * @since 2.0
-	 */
-	public SiteModel() {
-		super();
-	}
-
-	/**
-	 * 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 addArchive(URLEntry archiveReference) {
-		if (this.archiveReferences == null)
-			this.archiveReferences = new ArrayList();
-		if (!this.archiveReferences.contains(archiveReference))
-			this.archiveReferences.add(archiveReference);
-	}
-
-	/**
-	 * Adds a category to the site.
-	 * 
-	 * @param category category model
-	 */
-	public void addCategory(SiteCategory category) {
-		if (categories == null)
-			categories = new HashMap();
-		if (!categories.containsKey(category.getName()))
-			categories.put(category.getName(), category);
-	}
-
-	/**
-	 * Adds a feature reference model to site.
-	 * 
-	 * @param featureReference feature reference model
-	 */
-	public void addFeature(SiteFeature featureReference) {
-		if (this.features == null)
-			this.features = new ArrayList();
-		this.features.add(featureReference);
-	}
-
-	/**
-	 * Adds a mirror site.
-	 * 
-	 * @param mirror mirror model 
-	 * @since 3.1
-	 */
-	public void addMirror(URLEntry mirror) {
-		if (this.mirrors == null)
-			this.mirrors = new ArrayList();
-		if (!this.mirrors.contains(mirror))
-			this.mirrors.add(mirror);
-	}
-
-	private void doSetMirrorSiteEntryModels(URLEntry[] newMirrors) {
-		if (newMirrors == null || newMirrors.length == 0)
-			this.mirrors = null;
-		else
-			this.mirrors = new ArrayList(Arrays.asList(newMirrors));
-	}
-
-	/**
-	 * 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 URLEntry[] getArchives() {
-		if (archiveReferences == null || archiveReferences.size() == 0)
-			return new URLEntry[0];
-
-		return (URLEntry[]) archiveReferences.toArray(new URLEntry[0]);
-	}
-
-	/**
-	 * Returns an array of category models for this site.
-	 * 
-	 * @return array of site category models, or an empty array.
-	 * @since 2.0
-	 */
-	public SiteCategory[] getCategories() {
-		if (categories == null || categories.size() == 0)
-			return new SiteCategory[0];
-		return (SiteCategory[]) categories.values().toArray(new SiteCategory[0]);
-	}
-
-	/**
-	 * Returns the category with the given name.
-	 * @return the category with the given name, or <code>null</code>
-	 */
-	public SiteCategory getCategory(String name) {
-		return (SiteCategory) (categories == null ? null : categories.get(name));
-	}
-
-	/**
-	 * Returns the site description.
-	 * 
-	 * @return site description, or <code>null</code>.
-	 */
-	public URLEntry getDescription() {
-		return description;
-	}
-
-	/**
-	 * Returns an array of feature reference models on this site.
-	 * 
-	 * @return an array of feature reference models, or an empty array.
-	 */
-	public SiteFeature[] getFeatures() {
-		if (features == null || features.size() == 0)
-			return new SiteFeature[0];
-		return (SiteFeature[]) features.toArray(new SiteFeature[0]);
-	}
-
-	/**
-	 * Returns the resolved URL for the site.
-	 * 
-	 * @return url, or <code>null</code>
-	 */
-	public URL getLocationURL() {
-		return locationURL;
-	}
-
-	/**
-	 * Returns the unresolved URL string for the site.
-	 *
-	 * @return url string, or <code>null</code>
-	 */
-	public String getLocationURLString() {
-		return locationURLString;
-	}
-
-	/**
-	 * Return an array of update site mirrors
-	 * 
-	 * @return an array of mirror entries, or an empty array.
-	 * @since 3.1
-	 */
-	public URLEntry[] getMirrors() {
-		//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));
-
-		if (mirrors == null || mirrors.size() == 0)
-			return new URLEntry[0];
-		return (URLEntry[]) mirrors.toArray(new URLEntry[0]);
-	}
-
-	/**
-	 * Returns the URL from which the list of mirrors of this site can be retrieved.
-	 * 
-	 * @since org.eclipse.equinox.p2.metadata.generator 1.0
-	 */
-	public String getMirrorsURL() {
-		return mirrorsURLString;
-	}
-
-	/** 
-	 * Returns the site type.
-	 * 
-	 * @return site type, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getType() {
-		return type;
-	}
-
-	public boolean isPack200Supported() {
-		return supportsPack200;
-	}
-
-	/**
-	 * 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();
-		//
-		//		if ((this instanceof ExtendedSite) && ((ExtendedSite) this).isDigestExist()) {
-		//			ExtendedSite extendedSite = (ExtendedSite) this;
-		//			extendedSite.setLiteFeatures(UpdateManagerUtils.getLightFeatures(extendedSite));
-		//		}
-	}
-
-	/**
-	 * Sets the site description.
-	 * 
-	 * @param description site description
-	 * @since 2.0
-	 */
-	public void setDescription(URLEntry description) {
-		this.description = description;
-	}
-
-	/**
-	 * Sets the unresolved URL for the site.
-	 * 
-	 * @param locationURLString url for the site (as a string)
-	 * @since 2.0
-	 */
-	public void setLocationURLString(String locationURLString) {
-		this.locationURLString = locationURLString;
-	}
-
-	/**
-	 * Sets additional mirror sites
-	 * 
-	 * @param mirrors additional update site mirrors
-	 * @since 3.1
-	 */
-	public void setMirrors(URLEntry[] mirrors) {
-		doSetMirrorSiteEntryModels(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.
-	 * 
-	 * @param mirrorsURL additional update site mirrors
-	 * @since 3.1
-	 */
-	public void setMirrorsURLString(String mirrorsURL) {
-		this.mirrorsURLString = mirrorsURL;
-	}
-
-	public void setSupportsPack200(boolean value) {
-		this.supportsPack200 = value;
-	}
-
-	/**
-	 * 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) {
-		this.type = type;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/messages.properties b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/messages.properties
deleted file mode 100644
index 7f7ffa5..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/messages.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Install Update Core Properties File
-#
-
-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}\".
-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.
-DefaultSiteParser_mirrors = Error processing update site mirror.
-DefaultSiteParser_ErrorReadingDigest=Error reading site digest {0}.
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/messages.properties b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/messages.properties
deleted file mode 100644
index 08affcb..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/messages.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-exception_errorConverting = An error occurred while generating manifest for {0}.
-exception_outputStream = Unable to open output stream for {0}.
-exception_errorParsingUpdateSite = Error parsing update site: {0}.
-exception_stateAddition = An error has occurred while adding the bundle {0}.
-exception_sourceDirectoryInvalid = Source directory is invalid: {0}.
-exception_artifactRepoLocationURL = Artifact repository location is not a valid URL: {0}.
-exception_artifactRepoNotWritable = Artifact repository is not writable: {0}.
-exception_metadataRepoLocationURL = Metadata repository location is not a valid URL: {0}.
-exception_metadataRepoNotWritable = Metadata repository not writable: {0}.
-exception_baseLocationNotSpecified = Eclipse base location not specified.
-
-message_generatingMetadata = Generating metadata for {0}.
-message_generationCompleted = Generation completed with success [{0} seconds].
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/BundleDescriptionFactory.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/BundleDescriptionFactory.java
deleted file mode 100644
index cf45499..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/BundleDescriptionFactory.java
+++ /dev/null
@@ -1,359 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.metadata.generator.Activator;
-import org.eclipse.equinox.internal.p2.metadata.generator.Messages;
-import org.eclipse.osgi.service.pluginconversion.PluginConversionException;
-import org.eclipse.osgi.service.pluginconversion.PluginConverter;
-import org.eclipse.osgi.service.resolver.*;
-import org.eclipse.osgi.util.ManifestElement;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleException;
-
-public class BundleDescriptionFactory {
-	static final String DIR = "dir"; //$NON-NLS-1$
-	static final String JAR = "jar"; //$NON-NLS-1$
-	private static final String FEATURE_FILENAME_DESCRIPTOR = "feature.xml"; //$NON-NLS-1$
-	private static final String PLUGIN_FILENAME_DESCRIPTOR = "plugin.xml"; //$NON-NLS-1$
-	private static final String FRAGMENT_FILENAME_DESCRIPTOR = "fragment.xml"; //$NON-NLS-1$
-
-	static String BUNDLE_FILE_KEY = "eclipse.p2.bundle.format"; //$NON-NLS-1$
-
-	//	static final String DEFAULT_BUNDLE_LOCALIZATION = "plugin"; //$NON-NLS-1$	
-	//	static final String PROPERTIES_FILE_EXTENSION = ".properties"; //$NON-NLS-1$
-	//	static final String MANIFEST_LOCALIZATIONS = "eclipse.p2.manifest.localizations"; //$NON-NLS-1$
-	//
-	//	static final Locale DEFAULT_LOCALE = new Locale("df", "LT"); //$NON-NLS-1$//$NON-NLS-2$
-	//	static final Locale PSEUDO_LOCALE = new Locale("zz", "ZZ"); //$NON-NLS-1$//$NON-NLS-2$
-
-	StateObjectFactory factory;
-	State state;
-
-	public BundleDescriptionFactory(StateObjectFactory factory, State state) {
-		this.factory = factory;
-		this.state = state;
-		//TODO find a state and a factory when not provided
-	}
-
-	private PluginConverter acquirePluginConverter() {
-		return (PluginConverter) ServiceHelper.getService(Activator.getContext(), PluginConverter.class.getName());
-	}
-
-	private Dictionary convertPluginManifest(File bundleLocation, boolean logConversionException) {
-		PluginConverter converter;
-		try {
-			converter = acquirePluginConverter();
-			if (converter == null) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Unable to aquire PluginConverter service during generation for: " + bundleLocation));
-				return null;
-			}
-			return converter.convertManifest(bundleLocation, false, null, true, null);
-		} catch (PluginConversionException convertException) {
-			// only log the exception if we had a plugin.xml or fragment.xml and we failed conversion
-			if (bundleLocation.getName().equals(FEATURE_FILENAME_DESCRIPTOR))
-				return null;
-			if (!new File(bundleLocation, PLUGIN_FILENAME_DESCRIPTOR).exists() && !new File(bundleLocation, FRAGMENT_FILENAME_DESCRIPTOR).exists())
-				return null;
-			if (logConversionException) {
-				IStatus status = new Status(IStatus.WARNING, Activator.ID, 0, NLS.bind(Messages.exception_errorConverting, bundleLocation.getAbsolutePath()), convertException);
-				LogHelper.log(status);
-			}
-			return null;
-		}
-	}
-
-	public BundleDescription getBundleDescription(Dictionary enhancedManifest, File bundleLocation) {
-		try {
-			BundleDescription descriptor = factory.createBundleDescription(state, enhancedManifest, bundleLocation != null ? bundleLocation.getAbsolutePath() : null, 1); //TODO Do we need to have a real bundle id
-			descriptor.setUserObject(enhancedManifest);
-			return descriptor;
-		} catch (BundleException e) {
-			String message = NLS.bind(Messages.exception_stateAddition, bundleLocation == null ? null : bundleLocation.getAbsoluteFile());
-			IStatus status = new Status(IStatus.WARNING, Activator.ID, message, e);
-			LogHelper.log(status);
-			return null;
-		}
-	}
-
-	public BundleDescription getBundleDescription(File bundleLocation) {
-		Dictionary manifest = loadManifest(bundleLocation);
-		if (manifest == null)
-			return null;
-		return getBundleDescription(manifest, bundleLocation);
-	}
-
-	public BundleDescription getBundleDescription(InputStream manifestStream, File bundleLocation) {
-		Hashtable entries = new Hashtable();
-		try {
-			ManifestElement.parseBundleManifest(manifestStream, entries);
-			return getBundleDescription(entries, bundleLocation);
-		} catch (IOException e) {
-			String message = "An error occurred while reading the bundle description.";
-			IStatus status = new Status(IStatus.ERROR, Activator.ID, message, e);
-			LogHelper.log(status);
-		} catch (BundleException e) {
-			String message = "An error occurred while reading the bundle description.";
-			IStatus status = new Status(IStatus.ERROR, Activator.ID, message, e);
-			LogHelper.log(status);
-		}
-		return null;
-	}
-
-	public Dictionary loadManifest(File bundleLocation) {
-		InputStream manifestStream = null;
-		ZipFile jarFile = null;
-		try {
-			if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && bundleLocation.isFile()) { //$NON-NLS-1$
-				jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-				ZipEntry manifestEntry = jarFile.getEntry(JarFile.MANIFEST_NAME);
-				if (manifestEntry != null) {
-					manifestStream = jarFile.getInputStream(manifestEntry);
-				}
-			} else {
-				File manifestFile = new File(bundleLocation, JarFile.MANIFEST_NAME);
-				if (manifestFile.exists())
-					manifestStream = new BufferedInputStream(new FileInputStream(manifestFile));
-			}
-		} catch (IOException e) {
-			//ignore but log
-			LogHelper.log(new Status(IStatus.WARNING, Activator.ID, "An error occurred while loading the bundle manifest.", e));
-		}
-
-		Dictionary manifest = null;
-		if (manifestStream != null) {
-			try {
-				Map manifestMap = ManifestElement.parseBundleManifest(manifestStream, null);
-				// TODO temporary hack.  We are reading a Map but everyone wants a Dictionary so convert.
-				// real answer is to have people expect a Map but that is a wider change.
-				manifest = new Hashtable(manifestMap);
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "An error occurred while loading the bundle manifest.", e));
-				return null;
-			} catch (BundleException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "An error occurred while loading the bundle manifest.", e));
-				return null;
-			} finally {
-				try {
-					if (jarFile != null)
-						jarFile.close();
-				} catch (IOException e2) {
-					//Ignore
-				}
-			}
-		} else {
-			manifest = convertPluginManifest(bundleLocation, true);
-		}
-
-		if (manifest == null)
-			return null;
-
-		//Deal with the pre-3.0 plug-in shape who have a default jar manifest.mf
-		if (manifest.get(org.osgi.framework.Constants.BUNDLE_SYMBOLICNAME) == null)
-			manifest = convertPluginManifest(bundleLocation, true);
-
-		if (manifest == null)
-			return null;
-
-		manifest.put(BUNDLE_FILE_KEY, bundleLocation.isDirectory() ? DIR : JAR);
-		getManifestLocalizations(manifest, bundleLocation);
-		// localizeManifest(manifest, bundleLocation);
-		return manifest;
-	}
-
-	//	private Properties loadProperties(File bundleLocation, String localizationFile) throws IOException {
-	//		Properties result = new Properties();
-	//		InputStream propertyStream = null;
-	//		try {
-	//			try {
-	//				if (bundleLocation.isDirectory())
-	//					propertyStream = new FileInputStream(new File(bundleLocation, localizationFile));
-	//				else {
-	//					URLConnection connection = new URL("jar:" + bundleLocation.toURL().toExternalForm() + "!/" + localizationFile).openConnection(); //$NON-NLS-1$ //$NON-NLS-2$
-	//					connection.setUseCaches(false);
-	//					propertyStream = connection.getInputStream();
-	//				}
-	//			} catch (FileNotFoundException e) {
-	//				// if there is no messages file then just return;
-	//				return result;
-	//			}
-	//			result.load(propertyStream);
-	//		} finally {
-	//			if (propertyStream != null)
-	//				propertyStream.close();
-	//		}
-	//		return result;
-	//	}
-
-	// Collect the manifest localizations from the bundle directory
-	// and store them in the manifest.
-	private void getManifestLocalizations(Dictionary manifest, File bundleLocation) {
-		//		Map localizations;
-		//		Locale defaultLocale = null; // = Locale.ENGLISH; // TODO: get this from GeneratorInfo
-		//		String bundleLocalization = (String) manifest.get(Constants.BUNDLE_LOCALIZATION);
-		//		if (bundleLocalization == null || bundleLocalization.trim().length() == 0)
-		//			bundleLocalization = DEFAULT_BUNDLE_LOCALIZATION;
-		//
-		//		if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && //$NON-NLS-1$
-		//				bundleLocation.isFile()) {
-		//			localizations = getJarManifestLocalization(bundleLocation, bundleLocalization, manifest, defaultLocale);
-		//		} else {
-		//			localizations = getDirManifestLocalization(bundleLocation, bundleLocalization, manifest, defaultLocale);
-		//		}
-		//
-		//		if (localizations.size() > 0) {
-		//			manifest.put(MANIFEST_LOCALIZATIONS, localizations);
-		//		}
-	}
-
-	//	private Map getJarManifestLocalization(File bundleLocation, String bundleLocalization, Dictionary manifest, Locale defaultLocale) {
-	//		ZipFile jarFile = null;
-	//		Map localizations = new HashMap(4);
-	//		try {
-	//			jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-	//			for (Enumeration entries = jarFile.entries(); entries.hasMoreElements();) {
-	//				ZipEntry nextEntry = (ZipEntry) entries.nextElement();
-	//				String nextName = nextEntry.getName();
-	//				String localeString = getLocaleString(nextName, bundleLocalization);
-	//
-	//				if (!nextEntry.isDirectory() && localeString != null) {
-	//					Locale nextLocale = getLocale(localeString);
-	//					InputStream stream = null;
-	//					try {
-	//						stream = jarFile.getInputStream(nextEntry);
-	//						Properties properties = new Properties();
-	//						properties.load(stream);
-	//						Properties localizedStrings = getLocalizedProperties(manifest, properties);
-	//						if (localizedStrings.size() > 0) {
-	//							localizations.put(nextLocale, localizedStrings);
-	//							if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-	//								localizations.put(nextLocale, localizedStrings);
-	//							}
-	//						}
-	//					} finally {
-	//						if (stream != null)
-	//							stream.close();
-	//					}
-	//				}
-	//			}
-	//		} catch (IOException ioe) {
-	//			ioe.printStackTrace();
-	//		} finally {
-	//			if (jarFile != null) {
-	//				try {
-	//					jarFile.close();
-	//				} catch (IOException ioe) {
-	//					// do nothing
-	//				}
-	//			}
-	//		}
-	//
-	//		return localizations;
-	//	}
-	//
-	//	private Map getDirManifestLocalization(File bundleLocation, String bundleLocalization, Dictionary manifest, Locale defaultLocale) {
-	//		File localizationPath = new File(bundleLocation, bundleLocalization);
-	//		File localizationDir = localizationPath.getParentFile();
-	//		String localizationFile = localizationPath.getName();
-	//		String[] localizationFiles = localizationDir.list(new LocalizationFileFilter(localizationFile));
-	//
-	//		HashMap localizations = null;
-	//
-	//		if (localizationFiles != null) {
-	//			localizations = new HashMap(localizationFiles.length);
-	//			for (int i = 0; i < localizationFiles.length; i++) {
-	//				String nextFile = localizationFiles[i];
-	//				Locale nextLocale = getLocale(getLocaleString(nextFile, localizationFile));
-	//
-	//				try {
-	//					Properties properties = loadProperties(bundleLocation, nextFile);
-	//					Properties localizedStrings = getLocalizedProperties(manifest, properties);
-	//					if (localizedStrings.size() > 0) {
-	//						localizations.put(nextLocale, localizedStrings);
-	//						if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-	//							localizations.put(nextLocale, localizedStrings);
-	//						}
-	//					}
-	//				} catch (IOException ioe) {
-	//					ioe.printStackTrace();
-	//				}
-	//			}
-	//		}
-	//
-	//		return localizations;
-	//	}
-
-	//	private class LocalizationFileFilter implements FilenameFilter {
-	//
-	//		String filenamePrefix;
-	//
-	//		public LocalizationFileFilter(String filenamePrefix) {
-	//			this.filenamePrefix = filenamePrefix;
-	//		}
-	//
-	//		/* (non-Javadoc)
-	//		 * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
-	//		 */
-	//		public boolean accept(File directory, String filename) {
-	//			return (getLocaleString(filename, filenamePrefix) != null ? true : false);
-	//		}
-	//	}
-
-	//	static public String getLocaleString(String filename, String filenamePrefix) {
-	//		String localeString = null;
-	//		if (filename.startsWith(filenamePrefix) && filename.endsWith(PROPERTIES_FILE_EXTENSION)) {
-	//			if (filename.length() > filenamePrefix.length() + PROPERTIES_FILE_EXTENSION.length()) {
-	//				localeString = filename.substring(filenamePrefix.length() + 1, filename.length() - PROPERTIES_FILE_EXTENSION.length());
-	//			} else {
-	//				localeString = ""; //$NON-NLS-1$
-	//			}
-	//		}
-	//		return localeString;
-	//	}
-
-	//	static private Locale getLocale(String localeString) {
-	//		Locale locale = DEFAULT_LOCALE;
-	//		if (localeString.length() == 5 && localeString.indexOf('_') == 2) {
-	//			locale = new Locale(localeString.substring(0, 2), localeString.substring(3, 5));
-	//		} else if (localeString.length() == 2) {
-	//			locale = new Locale(localeString.substring(0, 2));
-	//		}
-	//		return locale;
-	//	}
-	//
-	//	static private Properties getLocalizedProperties(Dictionary manifest, Properties properties) {
-	//		// Walk over the manifest and find all %xxx with the string value
-	//		// in the properties file and copy them to the localized properties.
-	//		Properties localizedProperties = new Properties();
-	//		for (Enumeration e = manifest.keys(); e.hasMoreElements();) {
-	//			String key = (String) e.nextElement();
-	//			Object value = manifest.get(key);
-	//			if (value instanceof String) {
-	//				String stringValue = (String) value;
-	//				if (stringValue.startsWith("%")) { //$NON-NLS-1$
-	//					String newValue = properties.getProperty(stringValue.substring(1));
-	//					if (newValue != null)
-	//						localizedProperties.put(key, newValue);
-	//				}
-	//			}
-	//		}
-	//		return localizedProperties;
-	//	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/EclipseInstallGeneratorInfoProvider.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/EclipseInstallGeneratorInfoProvider.java
deleted file mode 100644
index 4be3b91..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/EclipseInstallGeneratorInfoProvider.java
+++ /dev/null
@@ -1,516 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.metadata.generator.Activator;
-import org.eclipse.equinox.internal.p2.metadata.generator.Messages;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class EclipseInstallGeneratorInfoProvider implements IGeneratorInfo {
-	private final static String FILTER_OBJECTCLASS = "(" + Constants.OBJECTCLASS + "=" + FrameworkAdmin.class.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-	private final static String filterFwName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_FW_NAME + "=Equinox)"; //$NON-NLS-1$ //$NON-NLS-2$
-	//String filterFwVersion = "(" + FrameworkAdmin.SERVICE_PROP_KEY_FW_VERSION + "=" + props.getProperty("equinox.fw.version") + ")";
-	private final static String filterLauncherName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_NAME + "=Eclipse.exe)"; //$NON-NLS-1$ //$NON-NLS-2$
-	//String filterLauncherVersion = "(" + FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_VERSION + "=" + props.getProperty("equinox.launcher.version") + ")";
-	private final static String frameworkAdminFillter = "(&" + FILTER_OBJECTCLASS + filterFwName + filterLauncherName + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-	private static final String ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR = "org.eclipse.equinox.simpleconfigurator"; //$NON-NLS-1$
-	private static final String ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_MANIPULATOR = "org.eclipse.equinox.simpleconfigurator.manipulator"; //$NON-NLS-1$
-	private static final String ORG_ECLIPSE_EQUINOX_FRAMEWORKADMIN_EQUINOX = "org.eclipse.equinox.frameworkadmin.equinox"; //$NON-NLS-1$
-	private static final String ORG_ECLIPSE_EQUINOX_P2_RECONCILER_DROPINS = "org.eclipse.equinox.p2.reconciler.dropins"; //$NON-NLS-1$
-
-	/*
-	 * 	TODO: Temporary for determining whether eclipse installs
-	 * 		  in a profile should support backward compatibility
-	 * 		  with update manager.
-	 */
-	private static final String UPDATE_COMPATIBILITY = "eclipse.p2.update.compatibility"; //$NON-NLS-1$
-
-	private String os;
-
-	/**
-	 * Returns a default name for the executable.
-	 * @param providedOS The operating system to return the executable for. If null,
-	 * the operating system is determined from the current runtime environment.
-	 */
-	public static String getDefaultExecutableName(String providedOS) {
-		String theOS = providedOS;
-		if (theOS == null) {
-			EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(Activator.getContext(), EnvironmentInfo.class.getName());
-			theOS = info.getOS();
-		}
-		if (theOS.equalsIgnoreCase("win32")) //$NON-NLS-1$
-			return "eclipse.exe"; //$NON-NLS-1$
-		if (theOS.equalsIgnoreCase("macosx")) //$NON-NLS-1$
-			return "Eclipse.app"; //$NON-NLS-1$
-		//FIXME Is this a reasonable default for all non-Windows platforms?
-		return "eclipse"; //$NON-NLS-1$
-	}
-
-	private boolean addDefaultIUs = true;
-
-	private boolean append = false;
-	private IArtifactRepository artifactRepository;
-	private File baseLocation;
-	private File[] bundleLocations;
-	private File configLocation;
-	private ArrayList defaultIUs;
-	private List otherIUs;
-	private File executableLocation;
-	private File featuresLocation;
-	private String flavor;
-	private ServiceTracker frameworkAdminTracker;
-	private Manipulator manipulator;
-	private String[][] mappingRules;
-	private IMetadataRepository metadataRepository;
-	private boolean publishArtifactRepo = false;
-	private boolean publishArtifacts = false;
-	private boolean updateCompatibility = Boolean.valueOf(System.getProperty(UPDATE_COMPATIBILITY, "false")).booleanValue(); //$NON-NLS-1$
-	private String rootId;
-	private String rootVersion;
-	private String productFile = null;
-	private String launcherConfig;
-	private String versionAdvice;
-
-	private URL siteLocation;
-
-	private boolean reuseExistingPack200Files = false;
-
-	public EclipseInstallGeneratorInfoProvider() {
-		super();
-	}
-
-	public boolean addDefaultIUs() {
-		return addDefaultIUs;
-	}
-
-	public boolean append() {
-		return append;
-	}
-
-	protected GeneratorBundleInfo createDefaultConfigurationBundleInfo() {
-		GeneratorBundleInfo result = new GeneratorBundleInfo();
-		result.setSymbolicName("defaultConfigure"); //$NON-NLS-1$
-		result.setVersion("1.0.0"); //$NON-NLS-1$
-		result.setStartLevel(4);
-		// These should just be in the install section now
-		//		result.setSpecialConfigCommands("installBundle(bundle:${artifact});");
-		return result;
-	}
-
-	protected GeneratorBundleInfo createDefaultUnconfigurationBundleInfo() {
-		GeneratorBundleInfo result = new GeneratorBundleInfo();
-		result.setSymbolicName("defaultUnconfigure"); //$NON-NLS-1$
-		result.setVersion("1.0.0"); //$NON-NLS-1$
-		// These should just be in the uninstall section now
-		//		result.setSpecialConfigCommands("uninstallBundle(bundle:${artifact});");
-		return result;
-	}
-
-	/**
-	 * Obtains the framework manipulator instance. Throws an exception
-	 * if it could not be created.
-	 */
-	private void createFrameworkManipulator() {
-		FrameworkAdmin admin = getFrameworkAdmin();
-		if (admin == null)
-			throw new RuntimeException("Framework admin service not found"); //$NON-NLS-1$
-		manipulator = admin.getManipulator();
-		if (manipulator == null)
-			throw new RuntimeException("Framework manipulator not found"); //$NON-NLS-1$
-	}
-
-	private GeneratorBundleInfo createLauncher() {
-		GeneratorBundleInfo result = new GeneratorBundleInfo();
-		result.setSymbolicName("org.eclipse.equinox.launcher"); //$NON-NLS-1$
-		result.setVersion("0.0.0"); //$NON-NLS-1$
-		//result.setSpecialConfigCommands("manipulator.addProgramArgument('-startup'); manipulator.addProgramArgument(artifact);");
-		result.setSpecialConfigCommands("addProgramArg(programArg:-startup);addProgramArg(programArg:@artifact);"); //$NON-NLS-1$
-		result.setSpecialUnconfigCommands("removeProgramArg(programArg:-startup);removeProgramArg(programArg:@artifact);"); //$NON-NLS-1$
-		return result;
-	}
-
-	private Collection createLauncherBundleInfo(Set ius) {
-		Collection result = new HashSet();
-		Collection launchers = getIUs(ius, "org.eclipse.equinox.launcher."); //$NON-NLS-1$
-		for (Iterator iterator = launchers.iterator(); iterator.hasNext();) {
-			IInstallableUnit object = (IInstallableUnit) iterator.next();
-			if (object.getId().endsWith(".source")) //$NON-NLS-1$
-				continue;
-			GeneratorBundleInfo temp = new GeneratorBundleInfo();
-			temp.setSymbolicName(object.getId());
-			temp.setVersion(object.getVersion().toString());
-			temp.setSpecialConfigCommands("addProgramArg(programArg:--launcher.library);addProgramArg(programArg:@artifact);"); //$NON-NLS-1$
-			temp.setSpecialUnconfigCommands("removeProgramArg(programArg:--launcher.library);removeProgramArg(programArg:@artifact);"); //$NON-NLS-1$
-			result.add(temp);
-		}
-		return result;
-	}
-
-	private GeneratorBundleInfo createSimpleConfiguratorBundleInfo() {
-		GeneratorBundleInfo result = new GeneratorBundleInfo();
-		result.setSymbolicName(ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR);
-		result.setVersion("0.0.0"); //$NON-NLS-1$
-		result.setStartLevel(1);
-		result.setMarkedAsStarted(true);
-		return result;
-	}
-
-	private GeneratorBundleInfo createDropinsReconcilerBundleInfo() {
-		GeneratorBundleInfo result = new GeneratorBundleInfo();
-		result.setSymbolicName(ORG_ECLIPSE_EQUINOX_P2_RECONCILER_DROPINS);
-		result.setVersion("0.0.0"); //$NON-NLS-1$
-		result.setMarkedAsStarted(true);
-		result.setSpecialConfigCommands("mkdir(path:${installFolder}/dropins)"); //$NON-NLS-1$
-		result.setSpecialUnconfigCommands("rmdir(path:${installFolder}/dropins)"); //$NON-NLS-1$
-		return result;
-	}
-
-	private void expandBundleLocations() {
-		if (bundleLocations == null) {
-			bundleLocations = new File[] {};
-			return;
-		}
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < bundleLocations.length; i++) {
-			File location = bundleLocations[i];
-			if (location.isDirectory()) {
-				File[] list = location.listFiles();
-				for (int j = 0; j < list.length; j++)
-					result.add(list[j]);
-			} else {
-				result.add(location);
-			}
-		}
-		bundleLocations = (File[]) result.toArray(new File[result.size()]);
-	}
-
-	public IArtifactRepository getArtifactRepository() {
-		return artifactRepository;
-	}
-
-	public File getBaseLocation() {
-		return baseLocation;
-	}
-
-	public File[] getBundleLocations() {
-		return bundleLocations;
-	}
-
-	public ConfigData getConfigData() {
-		return manipulator == null ? null : manipulator.getConfigData();
-	}
-
-	public ConfigData loadConfigData(File location) {
-		if (manipulator == null)
-			return null;
-
-		EquinoxFwConfigFileParser parser = new EquinoxFwConfigFileParser(Activator.getContext());
-		try {
-			parser.readFwConfig(manipulator, location);
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return manipulator.getConfigData();
-	}
-
-	public File getConfigurationLocation() {
-		return configLocation;
-	}
-
-	public ArrayList getDefaultIUs(Set ius) {
-		if (defaultIUs != null)
-			return defaultIUs;
-		defaultIUs = new ArrayList(5);
-		if (addDefaultIUs) {
-			defaultIUs.addAll(createLauncherBundleInfo(ius));
-			defaultIUs.add(createLauncher());
-			defaultIUs.add(createSimpleConfiguratorBundleInfo());
-			defaultIUs.add(createDropinsReconcilerBundleInfo());
-			//			defaultIUs.add(createDefaultConfigurationBundleInfo());
-			//			defaultIUs.add(createDefaultUnconfigurationBundleInfo());
-		}
-		return defaultIUs;
-	}
-
-	// TODO: This is kind of ugly. It's purpose is to allow us to craft CUs that we know about and need for our build
-	// We should try to replace this with something more generic prior to release
-	public Collection getOtherIUs() {
-		if (otherIUs != null)
-			return otherIUs;
-		otherIUs = new ArrayList();
-		otherIUs.add(createDropinsReconcilerBundleInfo());
-		return otherIUs;
-	}
-
-	public File getExecutableLocation() {
-		return executableLocation;
-	}
-
-	public File getFeaturesLocation() {
-		return featuresLocation;
-	}
-
-	public String getFlavor() {
-		return flavor;
-	}
-
-	private FrameworkAdmin getFrameworkAdmin() {
-		if (frameworkAdminTracker == null) {
-			try {
-				Filter filter = Activator.getContext().createFilter(frameworkAdminFillter);
-				frameworkAdminTracker = new ServiceTracker(Activator.getContext(), filter, null);
-				frameworkAdminTracker.open();
-			} catch (InvalidSyntaxException e) {
-				// never happens
-				e.printStackTrace();
-			}
-		}
-		//		try {
-		//			frameworkAdminTracker.waitForService(500);
-		//		} catch (InterruptedException e) {
-		//			// ignore
-		//		}
-
-		FrameworkAdmin admin = (FrameworkAdmin) frameworkAdminTracker.getService();
-		if (admin == null) {
-			startBundle(ORG_ECLIPSE_EQUINOX_FRAMEWORKADMIN_EQUINOX);
-			startBundle(ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_MANIPULATOR);
-			admin = (FrameworkAdmin) frameworkAdminTracker.getService();
-		}
-		return admin;
-	}
-
-	public boolean getIsUpdateCompatible() {
-		return updateCompatibility;
-	}
-
-	private Collection getIUs(Set ius, String prefix) {
-		Set result = new HashSet();
-		for (Iterator iterator = ius.iterator(); iterator.hasNext();) {
-			IInstallableUnit tmp = (IInstallableUnit) iterator.next();
-			if (tmp.getId().startsWith(prefix))
-				result.add(tmp);
-		}
-		return result;
-	}
-
-	public File getJRELocation() {
-		//assume JRE is relative to install location
-		if (executableLocation == null)
-			return null;
-		return new File(executableLocation.getParentFile(), "jre"); //$NON-NLS-1$
-	}
-
-	public String getLauncherConfig() {
-		return launcherConfig;
-	}
-
-	public LauncherData getLauncherData() {
-		return manipulator == null ? null : manipulator.getLauncherData();
-	}
-
-	public String[][] getMappingRules() {
-		return mappingRules;
-	}
-
-	public IMetadataRepository getMetadataRepository() {
-		return metadataRepository;
-	}
-
-	public String getRootId() {
-		return rootId;
-	}
-
-	public String getRootVersion() {
-		if (rootVersion == null)
-			return "0.0.0"; //$NON-NLS-1$
-		return rootVersion;
-	}
-
-	public String getProductFile() {
-		return productFile;
-	}
-
-	public URL getSiteLocation() {
-		return siteLocation;
-	}
-
-	public void initialize(File base) {
-		initialize(base, new File(base, "configuration"), new File(base, getDefaultExecutableName(os)), new File[] {new File(base, "plugins")}, new File(base, "features")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void initialize(File base, File config, File executable, File[] bundleLocations, File features) {
-		// TODO
-		if (base == null || !base.exists())
-			throw new RuntimeException(NLS.bind(Messages.exception_sourceDirectoryInvalid, base == null ? "null" : base.getAbsolutePath())); //$NON-NLS-1$
-		this.baseLocation = base;
-		if (config == null || config.exists())
-			this.configLocation = config;
-		if (executable == null || executable.exists())
-			this.executableLocation = executable;
-		this.bundleLocations = bundleLocations;
-		this.featuresLocation = features;
-
-		expandBundleLocations();
-
-		// if the config or exe are not set then we cannot be generating any data related to the config so 
-		// don't bother setting up the manipulator.  In fact, the manipulator will likely be invalid without
-		// these locations.
-		if (configLocation == null || executableLocation == null)
-			return;
-
-		createFrameworkManipulator();
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwPersistentDataLocation(configLocation, true);
-		launcherData.setLauncher(executableLocation);
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		} catch (FrameworkAdminRuntimeException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		} catch (IOException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		}
-	}
-
-	public boolean publishArtifactRepository() {
-		return publishArtifactRepo;
-	}
-
-	public boolean publishArtifacts() {
-		return publishArtifacts;
-	}
-
-	public boolean reuseExistingPack200Files() {
-		return reuseExistingPack200Files;
-	}
-
-	public void reuseExistingPack200Files(boolean publishPack) {
-		reuseExistingPack200Files = publishPack;
-	}
-
-	public void setAddDefaultIUs(boolean value) {
-		addDefaultIUs = value;
-	}
-
-	public void setAppend(boolean value) {
-		append = value;
-	}
-
-	public void setArtifactRepository(IArtifactRepository value) {
-		artifactRepository = value;
-	}
-
-	public void setExecutableLocation(String value) {
-		executableLocation = new File(value);
-	}
-
-	public void setFlavor(String value) {
-		flavor = value;
-	}
-
-	public void setIsUpdateCompatible(boolean isCompatible) {
-		this.updateCompatibility = isCompatible;
-	}
-
-	public void setLauncherConfig(String value) {
-		launcherConfig = value;
-	}
-
-	public void setMappingRules(String[][] value) {
-		mappingRules = value;
-	}
-
-	public void setMetadataRepository(IMetadataRepository value) {
-		metadataRepository = value;
-	}
-
-	public void setOS(String os) {
-		this.os = os;
-	}
-
-	public void setPublishArtifactRepository(boolean value) {
-		publishArtifactRepo = value;
-	}
-
-	public void setPublishArtifacts(boolean value) {
-		publishArtifacts = value;
-	}
-
-	public void setRootId(String value) {
-		rootId = value;
-	}
-
-	public void setRootVersion(String value) {
-		rootVersion = value;
-	}
-
-	public void setProductFile(String file) {
-		productFile = file;
-	}
-
-	/**
-	 * Sets the location of site.xml if applicable.
-	 */
-	public void setSiteLocation(URL location) {
-		this.siteLocation = location;
-	}
-
-	private boolean startBundle(String bundleId) {
-		PackageAdmin packageAdmin = (PackageAdmin) ServiceHelper.getService(Activator.getContext(), PackageAdmin.class.getName());
-		if (packageAdmin == null)
-			return false;
-
-		Bundle[] bundles = packageAdmin.getBundles(bundleId, null);
-		if (bundles != null && bundles.length > 0) {
-			for (int i = 0; i < bundles.length; i++) {
-				try {
-					if ((bundles[0].getState() & Bundle.RESOLVED) > 0) {
-						bundles[0].start();
-						return true;
-					}
-				} catch (BundleException e) {
-					// failed, try next bundle
-				}
-			}
-		}
-		return false;
-	}
-
-	public String getVersionAdvice() {
-		return versionAdvice;
-	}
-
-	public void setVersionAdvice(String advice) {
-		this.versionAdvice = advice;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Feature.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Feature.java
deleted file mode 100644
index b999d23..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Feature.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-import java.util.ArrayList;
-
-/**
- * 
- * Feature information
- */
-public class Feature {
-
-	private final String id;
-	private String version;
-	private String label;
-	private String image;
-
-	private URLEntry description;
-	private URLEntry license;
-	private URLEntry copyright;
-
-	private String installHandler;
-	private String installHandlerURL;
-	private String installHandlerLibrary;
-
-	private URLEntry updateSite;
-	private ArrayList discoverySites;
-
-	private ArrayList entries;
-	private String providerName;
-	private String os;
-	private String ws;
-	private String arch;
-	private String nl;
-
-	private String location;
-
-	public Feature(String id, String version) {
-		if (id == null)
-			throw new IllegalArgumentException();
-		this.id = id;
-		this.version = version;
-	}
-
-	public void addDiscoverySite(String label, String url) {
-		if (label == null && url == null)
-			return;
-
-		if (this.discoverySites == null)
-			this.discoverySites = new ArrayList();
-
-		URLEntry entry = new URLEntry(url, label);
-		this.discoverySites.add(entry);
-	}
-
-	public void addEntry(FeatureEntry plugin) {
-		if (entries == null)
-			entries = new ArrayList();
-		entries.add(plugin);
-	}
-
-	public String getArch() {
-		return arch;
-	}
-
-	public String getCopyright() {
-		if (copyright != null)
-			return copyright.getAnnotation();
-		return null;
-	}
-
-	public String getCopyrightURL() {
-		if (copyright != null)
-			return copyright.getURL();
-		return null;
-	}
-
-	public String getDescription() {
-		if (description != null)
-			return description.getAnnotation();
-		return null;
-	}
-
-	public String getDescriptionURL() {
-		if (description != null)
-			return description.getURL();
-		return null;
-	}
-
-	public URLEntry[] getDiscoverySites() {
-		if (discoverySites == null)
-			return new URLEntry[0];
-		return (URLEntry[]) discoverySites.toArray(new URLEntry[discoverySites.size()]);
-	}
-
-	public FeatureEntry[] getEntries() {
-		if (entries == null)
-			return new FeatureEntry[0];
-		return (FeatureEntry[]) entries.toArray(new FeatureEntry[entries.size()]);
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getImage() {
-		return image;
-	}
-
-	public String getInstallHandler() {
-		return installHandler;
-	}
-
-	public String getInstallHandlerLibrary() {
-		return installHandlerLibrary;
-	}
-
-	public String getInstallHandlerURL() {
-		return installHandlerURL;
-	}
-
-	public String getLabel() {
-		return label;
-	}
-
-	public String getLicense() {
-		if (license != null)
-			return license.getAnnotation();
-		return null;
-	}
-
-	public String getLicenseURL() {
-		if (license != null)
-			return license.getURL();
-		return null;
-	}
-
-	public String getLocation() {
-		return this.location;
-	}
-
-	public String getNL() {
-		return nl;
-	}
-
-	public String getOS() {
-		return os;
-	}
-
-	public String getProviderName() {
-		return providerName;
-	}
-
-	public String getUpdateSiteLabel() {
-		if (updateSite != null)
-			return updateSite.getAnnotation();
-		return null;
-	}
-
-	public String getUpdateSiteURL() {
-		if (updateSite != null)
-			return updateSite.getURL();
-		return null;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	public String getWS() {
-		return ws;
-	}
-
-	public void setCopyright(String copyright) {
-		if (this.copyright == null)
-			this.copyright = new URLEntry();
-		this.copyright.setAnnotation(copyright);
-	}
-
-	public void setCopyrightURL(String copyrightURL) {
-		if (this.copyright == null)
-			this.copyright = new URLEntry();
-		this.copyright.setURL(copyrightURL);
-	}
-
-	public void setDescription(String description) {
-		if (this.description == null)
-			this.description = new URLEntry();
-		this.description.setAnnotation(description);
-	}
-
-	public void setDescriptionURL(String descriptionURL) {
-		if (this.description == null)
-			this.description = new URLEntry();
-		this.description.setURL(descriptionURL);
-	}
-
-	public void setEnvironment(String os, String ws, String arch, String nl) {
-		this.os = os;
-		this.ws = ws;
-		this.arch = arch;
-		this.nl = nl;
-	}
-
-	public void setImage(String image) {
-		this.image = image;
-	}
-
-	public void setInstallHandler(String installHandler) {
-		this.installHandler = installHandler;
-	}
-
-	public void setInstallHandlerLibrary(String installHandlerLibrary) {
-		this.installHandlerLibrary = installHandlerLibrary;
-	}
-
-	public void setInstallHandlerURL(String installHandlerURL) {
-		this.installHandlerURL = installHandlerURL;
-	}
-
-	public void setLabel(String label) {
-		this.label = label;
-	}
-
-	public void setLicense(String license) {
-		if (this.license == null)
-			this.license = new URLEntry();
-		this.license.setAnnotation(license);
-	}
-
-	public void setLicenseURL(String licenseURL) {
-		if (this.license == null)
-			this.license = new URLEntry();
-		this.license.setURL(licenseURL);
-	}
-
-	public void setLocation(String location) {
-		this.location = location;
-	}
-
-	public void setProviderName(String value) {
-		providerName = value;
-	}
-
-	public void setUpdateSiteLabel(String updateSiteLabel) {
-		if (this.updateSite == null)
-			this.updateSite = new URLEntry();
-		this.updateSite.setAnnotation(updateSiteLabel);
-	}
-
-	public void setUpdateSiteURL(String updateSiteURL) {
-		if (this.updateSite == null)
-			this.updateSite = new URLEntry();
-		this.updateSite.setURL(updateSiteURL);
-	}
-
-	public void setURL(String value) {
-	}
-
-	public void setVersion(String version) {
-		this.version = version;
-	}
-
-	/**
-	 * For debugging purposes only.
-	 */
-	public String toString() {
-		return "Feature " + id + " version: " + version; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/FeatureEntry.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/FeatureEntry.java
deleted file mode 100644
index 1f63ce3..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/FeatureEntry.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-/**
- */
-public class FeatureEntry {
-	private final String id;
-	private final String version;
-	private String url;
-	private String os;
-	private String ws;
-	private String arch;
-	private String nl;
-	private String match;
-	private final boolean isPlugin;
-	private boolean isFragment = false;
-	private boolean isRequires = false;
-	private boolean unpack = true;
-	private boolean optional = false;
-
-	/**
-	 * Temporary field to add provisioning filters to features
-	 */
-	private String filter;
-
-	public static FeatureEntry createRequires(String id, String version, String match, String filter, boolean isPlugin) {
-		FeatureEntry result = new FeatureEntry(id, version, isPlugin);
-		result.match = match;
-		result.isRequires = true;
-		if (filter != null)
-			result.setFilter(filter);
-		return result;
-	}
-
-	public FeatureEntry(String id, String version, boolean isPlugin) {
-		this.id = id;
-		this.version = version;
-		this.isPlugin = isPlugin;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final FeatureEntry other = (FeatureEntry) obj;
-		if (id == null) {
-			if (other.id != null)
-				return false;
-		} else if (!id.equals(other.id))
-			return false;
-		if (version == null) {
-			if (other.version != null)
-				return false;
-		} else if (!version.equals(other.version))
-			return false;
-		return true;
-	}
-
-	public String getArch() {
-		return arch;
-	}
-
-	/**
-	 * Temporary method to add provisioning filters to features
-	 */
-	public String getFilter() {
-		return filter;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getMatch() {
-		return match;
-	}
-
-	public String getNL() {
-		return nl;
-	}
-
-	public String getOS() {
-		return os;
-	}
-
-	public String getURL() {
-		return url;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	public String getWS() {
-		return ws;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((id == null) ? 0 : id.hashCode());
-		result = prime * result + ((version == null) ? 0 : version.hashCode());
-		return result;
-	}
-
-	public boolean isFragment() {
-		return isFragment;
-	}
-
-	public boolean isOptional() {
-		return optional;
-	}
-
-	public boolean isPlugin() {
-		return isPlugin;
-	}
-
-	public boolean isRequires() {
-		return isRequires;
-	}
-
-	public boolean isUnpack() {
-		return unpack;
-	}
-
-	public void setEnvironment(String os, String ws, String arch, String nl) {
-		this.os = os;
-		this.ws = ws;
-		this.arch = arch;
-		this.nl = nl;
-	}
-
-	/**
-	 * Temporary method to add provisioning filters to features
-	 */
-	public void setFilter(String filter) {
-		this.filter = filter;
-
-	}
-
-	public void setFragment(boolean value) {
-		isFragment = value;
-	}
-
-	public void setOptional(boolean value) {
-		optional = value;
-	}
-
-	public void setUnpack(boolean value) {
-		unpack = value;
-	}
-
-	public void setURL(String value) {
-		url = value;
-	}
-
-	public String toString() {
-		StringBuffer result = new StringBuffer();
-
-		result.append(isPlugin ? "Plugin: " : "Feature: "); //$NON-NLS-1$ //$NON-NLS-2$
-		result.append(id != null ? id.toString() : ""); //$NON-NLS-1$
-		result.append(version != null ? " " + version.toString() : ""); //$NON-NLS-1$ //$NON-NLS-2$
-		return result.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java
deleted file mode 100644
index 8ea9611..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java
+++ /dev/null
@@ -1,1145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxConstants;
-import org.eclipse.equinox.internal.p2.core.helpers.*;
-import org.eclipse.equinox.internal.p2.metadata.generator.*;
-import org.eclipse.equinox.internal.p2.metadata.generator.Messages;
-import org.eclipse.equinox.internal.p2.metadata.generator.features.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.osgi.service.environment.Constants;
-import org.eclipse.osgi.service.resolver.*;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Version;
-
-public class Generator {
-	/**
-	 * Captures the output of an execution of the generator.
-	 */
-	public static class GeneratorResult {
-		public static final String CONFIGURATION_CUS = "CONFIGURATION_CUS"; //$NON-NLS-1$
-
-		/**
-		 * The set of generated IUs that will be children of the root IU
-		 */
-		final Set rootIUs = new HashSet();
-		/**
-		 * The set of generated IUs that will not be children of the root IU
-		 */
-		final Set nonRootIUs = new HashSet();
-
-		/**
-		 * Map of symbolic name to a set of generated CUs for that IU
-		 */
-		final Map configurationIUs = new HashMap();
-
-		/**
-		 * Map launcherConfig to config.ini ConfigData
-		 */
-		final Map configData = new HashMap();
-
-		/**
-		 * Returns all IUs generated during this execution of the generator.
-		 */
-		Set allGeneratedIUs() {
-			HashSet all = new HashSet();
-			all.addAll(rootIUs);
-			all.addAll(nonRootIUs);
-			return all;
-		}
-
-		/**
-		 * Returns the IU in this result with the given id.
-		 */
-		IInstallableUnit getInstallableUnit(String id) {
-			for (Iterator iterator = rootIUs.iterator(); iterator.hasNext();) {
-				IInstallableUnit tmp = (IInstallableUnit) iterator.next();
-				if (tmp.getId().equals(id))
-					return tmp;
-			}
-			for (Iterator iterator = nonRootIUs.iterator(); iterator.hasNext();) {
-				IInstallableUnit tmp = (IInstallableUnit) iterator.next();
-				if (tmp.getId().equals(id))
-					return tmp;
-			}
-			return null;
-
-		}
-
-	}
-
-	private static final String ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR = "org.eclipse.equinox.simpleconfigurator"; //$NON-NLS-1$
-	private static final String ORG_ECLIPSE_UPDATE_CONFIGURATOR = "org.eclipse.update.configurator"; //$NON-NLS-1$
-	private static final String ORG_ECLIPSE_EQUINOX_LAUNCHER = "org.eclipse.equinox.launcher"; //$NON-NLS-1$
-
-	private static final String PRODUCT_CONFIG_SUFFIX = ".config"; //$NON-NLS-1$
-	private static final String PRODUCT_INI_SUFFIX = ".ini"; //$NON-NLS-1$
-	private static final String PRODUCT_LAUCHER_SUFFIX = ".launcher"; //$NON-NLS-1$
-
-	static final String DEFAULT_BUNDLE_LOCALIZATION = "plugin"; //$NON-NLS-1$	
-
-	private final IGeneratorInfo info;
-
-	private GeneratorResult incrementalResult = null;
-	private ProductFile productFile = null;
-	private boolean generateRootIU = true;
-
-	/**
-	 * Short term fix to ensure IUs that have no corresponding category are not lost.
-	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=211521.
-	 */
-	protected final Set rootCategory = new HashSet();
-
-	private StateObjectFactory stateObjectFactory;
-
-	/**
-	 * Convert a list of tokens into an array. The list separator has to be
-	 * specified.
-	 */
-	public static String[] getArrayFromString(String list, String separator) {
-		if (list == null || list.trim().equals("")) //$NON-NLS-1$
-			return new String[0];
-		List result = new ArrayList();
-		for (StringTokenizer tokens = new StringTokenizer(list, separator); tokens.hasMoreTokens();) {
-			String token = tokens.nextToken().trim();
-			if (!token.equals("")) //$NON-NLS-1$
-				result.add(token);
-		}
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	public static String[] parseConfigSpec(String config) {
-		String[] parsed = getArrayFromString(config, "_"); //$NON-NLS-1$
-		if (parsed.length > 3) {
-			String[] adjusted = new String[] {parsed[0], parsed[1], parsed[2] + '_' + parsed[3]};
-			return adjusted;
-		}
-		return parsed;
-	}
-
-	public Generator(IGeneratorInfo infoProvider) {
-		this.info = infoProvider;
-		// TODO need to figure a better way of configuring the generator...
-		PlatformAdmin platformAdmin = (PlatformAdmin) ServiceHelper.getService(Activator.getContext(), PlatformAdmin.class.getName());
-		if (platformAdmin != null) {
-			stateObjectFactory = platformAdmin.getFactory();
-		}
-	}
-
-	public void setIncrementalResult(GeneratorResult result) {
-		this.incrementalResult = result;
-	}
-
-	protected IInstallableUnit createProductIU(GeneratorResult result) {
-		generateProductConfigCUs(result);
-
-		GeneratorResult productContents = new GeneratorResult();
-
-		ProductQuery query = new ProductQuery(productFile, info.getFlavor(), result.configurationIUs, info.getVersionAdvice());
-		Collector collector = info.getMetadataRepository().query(query, query.getCollector(), null);
-		for (Iterator iterator = collector.iterator(); iterator.hasNext();) {
-			productContents.rootIUs.add(iterator.next());
-		}
-
-		String version = productFile.getVersion();
-		if (version.equals("0.0.0") && info.getRootVersion() != null) //$NON-NLS-1$
-			version = info.getRootVersion();
-		VersionRange range = new VersionRange(new Version(version), true, new Version(version), true);
-		ArrayList requires = new ArrayList(1);
-		requires.add(MetadataFactory.createRequiredCapability(info.getFlavor() + productFile.getId(), productFile.getId() + PRODUCT_LAUCHER_SUFFIX, range, null, false, true));
-		requires.add(MetadataFactory.createRequiredCapability(info.getFlavor() + productFile.getId(), productFile.getId() + PRODUCT_INI_SUFFIX, range, null, false, false));
-		requires.add(MetadataFactory.createRequiredCapability(info.getFlavor() + productFile.getId(), productFile.getId() + PRODUCT_CONFIG_SUFFIX, range, null, false, false));
-
-		//default CUs		
-		requires.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, MetadataGeneratorHelper.createDefaultConfigUnitId(MetadataGeneratorHelper.OSGI_BUNDLE_CLASSIFIER, info.getFlavor()), VersionRange.emptyRange, null, false, false));
-		requires.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, MetadataGeneratorHelper.createDefaultConfigUnitId("source", info.getFlavor()), VersionRange.emptyRange, null, false, false)); //$NON-NLS-1$
-		if (productFile.useFeatures())
-			requires.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, MetadataGeneratorHelper.createDefaultConfigUnitId(MetadataGeneratorHelper.ECLIPSE_FEATURE_CLASSIFIER, info.getFlavor()), VersionRange.emptyRange, MetadataGeneratorHelper.INSTALL_FEATURES_FILTER, true, false));
-
-		InstallableUnitDescription root = createTopLevelIUDescription(productContents, productFile.getId(), version, productFile.getProductName(), requires, false);
-		return MetadataFactory.createInstallableUnit(root);
-	}
-
-	protected IInstallableUnit createTopLevelIU(GeneratorResult result, String configurationIdentification, String configurationVersion) {
-		// TODO, bit of a hack but for now set the name of the IU to the ID.
-		InstallableUnitDescription root = createTopLevelIUDescription(result, configurationIdentification, configurationVersion, configurationIdentification, null, true);
-		return MetadataFactory.createInstallableUnit(root);
-	}
-
-	protected InstallableUnitDescription createTopLevelIUDescription(GeneratorResult result, String configurationIdentification, String configurationVersion, String configurationName, List requires, boolean configureLauncherData) {
-		InstallableUnitDescription root = new MetadataFactory.InstallableUnitDescription();
-		root.setSingleton(true);
-		root.setId(configurationIdentification);
-		root.setVersion(new Version(configurationVersion));
-		root.setProperty(IInstallableUnit.PROP_NAME, configurationName);
-
-		ArrayList reqsConfigurationUnits = new ArrayList(result.rootIUs.size());
-		for (Iterator iterator = result.rootIUs.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			VersionRange range = new VersionRange(iu.getVersion(), true, iu.getVersion(), true);
-			//			boolean isOptional = checkOptionalRootDependency(iu);
-			reqsConfigurationUnits.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), range, iu.getFilter(), false, false));
-		}
-		if (requires != null)
-			reqsConfigurationUnits.addAll(requires);
-		root.setRequiredCapabilities((RequiredCapability[]) reqsConfigurationUnits.toArray(new RequiredCapability[reqsConfigurationUnits.size()]));
-		root.setArtifacts(new IArtifactKey[0]);
-
-		root.setProperty("lineUp", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-		root.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(configurationIdentification, VersionRange.emptyRange, IUpdateDescriptor.NORMAL, null));
-		root.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString());
-		root.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(configurationIdentification, new Version(configurationVersion))});
-		root.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_OSGI);
-		Map touchpointData = new HashMap();
-
-		String configurationData = ""; //$NON-NLS-1$
-		String unconfigurationData = ""; //$NON-NLS-1$
-
-		ConfigData configData = info.getConfigData();
-		if (configData != null) {
-			String[] dataStrings = getConfigurationStrings(configData);
-			configurationData += dataStrings[0];
-			unconfigurationData += dataStrings[1];
-		}
-
-		if (configureLauncherData) {
-			LauncherData launcherData = info.getLauncherData();
-			if (launcherData != null) {
-				String[] dataStrings = getLauncherConfigStrings(launcherData.getJvmArgs(), launcherData.getProgramArgs());
-				configurationData += dataStrings[0];
-				unconfigurationData += dataStrings[1];
-			}
-		}
-
-		touchpointData.put("configure", configurationData); //$NON-NLS-1$
-		touchpointData.put("unconfigure", unconfigurationData); //$NON-NLS-1$
-		root.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		return root;
-	}
-
-	private String[] getConfigurationStrings(ConfigData configData) {
-		String configurationData = ""; //$NON-NLS-1$
-		String unconfigurationData = ""; //$NON-NLS-1$
-		for (Iterator iterator = configData.getFwDependentProps().entrySet().iterator(); iterator.hasNext();) {
-			Entry aProperty = (Entry) iterator.next();
-			String key = ((String) aProperty.getKey());
-			if (key.equals("osgi.frameworkClassPath") || key.equals("osgi.framework") || key.equals("osgi.bundles") || key.equals("eof")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				continue;
-			configurationData += "setProgramProperty(propName:" + key + ", propValue:" + ((String) aProperty.getValue()) + ");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			unconfigurationData += "setProgramProperty(propName:" + key + ", propValue:);"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		for (Iterator iterator = configData.getFwIndependentProps().entrySet().iterator(); iterator.hasNext();) {
-			Entry aProperty = (Entry) iterator.next();
-			String key = ((String) aProperty.getKey());
-			if (key.equals("osgi.frameworkClassPath") || key.equals("osgi.framework") || key.equals("osgi.bundles") || key.equals("eof")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				continue;
-			configurationData += "setProgramProperty(propName:" + key + ", propValue:" + ((String) aProperty.getValue()) + ");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			unconfigurationData += "setProgramProperty(propName:" + key + ", propValue:);"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		return new String[] {configurationData, unconfigurationData};
-	}
-
-	private String[] getLauncherConfigStrings(final String[] jvmArgs, final String[] programArgs) {
-		String configurationData = ""; //$NON-NLS-1$
-		String unconfigurationData = ""; //$NON-NLS-1$
-
-		for (int i = 0; i < jvmArgs.length; i++) {
-			configurationData += "addJvmArg(jvmArg:" + jvmArgs[i] + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-			unconfigurationData += "removeJvmArg(jvmArg:" + jvmArgs[i] + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		for (int i = 0; i < programArgs.length; i++) {
-			String programArg = programArgs[i];
-			if (programArg.equals("--launcher.library") || programArg.equals("-startup") || programArg.equals("-configuration")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				i++;
-			configurationData += "addProgramArg(programArg:" + programArg + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-			unconfigurationData += "removeProgramArg(programArg:" + programArg + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return new String[] {configurationData, unconfigurationData};
-	}
-
-	public IStatus generate() {
-		GeneratorResult result = incrementalResult != null ? incrementalResult : new GeneratorResult();
-
-		if (info.getProductFile() != null) {
-			try {
-				productFile = new ProductFile(info.getProductFile(), null);
-			} catch (Exception e) {
-				//TODO
-			}
-		}
-
-		Feature[] features = getFeatures(info.getFeaturesLocation());
-		generateFeatureIUs(features, result, info.getArtifactRepository());
-
-		BundleDescription[] bundles = getBundleDescriptions(info.getBundleLocations());
-		generateBundleIUs(bundles, result, info.getArtifactRepository());
-
-		generateNativeIUs(info.getExecutableLocation(), result, info.getArtifactRepository());
-
-		generateConfigIUs(result);
-
-		if (info.addDefaultIUs())
-			generateDefaultConfigIU(result.rootIUs);
-
-		if (generateRootIU)
-			generateRootIU(result, info.getRootId(), info.getRootVersion());
-
-		//		persistence.setMappingRules(info.getMappingRules() == null ? defaultMappingRules : info.getMappingRules());
-		//		if (info.publishArtifacts() || info.publishArtifactRepository()) {
-		//			persistence.saveArtifactRepository();
-		//		}
-		IMetadataRepository metadataRepository = info.getMetadataRepository();
-		if (metadataRepository != null) {
-			Set allGeneratedUnits = result.allGeneratedIUs();
-			metadataRepository.addInstallableUnits((IInstallableUnit[]) allGeneratedUnits.toArray(new IInstallableUnit[allGeneratedUnits.size()]));
-		}
-
-		return Status.OK_STATUS;
-	}
-
-	protected void generateBundleIUs(BundleDescription[] bundles, GeneratorResult result, IArtifactRepository destination) {
-		// Computing the path for localized property files in a NL fragment bundle
-		// requires the BUNDLE_LOCALIZATION property from the manifest of the host bundle,
-		// so a first pass is done over all the bundles to cache this value as well as the tags
-		// from the manifest for the localizable properties.
-		final int CACHE_PHASE = 0;
-		final int GENERATE_PHASE = 1;
-		Map bundleLocalizationMap = new HashMap(bundles.length);
-		Set localizationIUs = new HashSet(32);
-		for (int phase = CACHE_PHASE; phase <= GENERATE_PHASE; phase++) {
-			for (int i = 0; i < bundles.length; i++) {
-				BundleDescription bd = bundles[i];
-				// A bundle may be null if the associated plug-in does not have a manifest file -
-				// for example, org.eclipse.jdt.launching.j9
-				if (bd != null && bd.getSymbolicName() != null && bd.getVersion() != null) {
-					Map bundleManifest = (Map) bd.getUserObject();
-
-					if (phase == CACHE_PHASE) {
-						if (bundleManifest != null) {
-							String[] cachedValues = MetadataGeneratorHelper.getManifestCachedValues(bundleManifest);
-							bundleLocalizationMap.put(makeSimpleKey(bd), cachedValues);
-						}
-					} else {
-						String format = (String) (bundleManifest).get(BundleDescriptionFactory.BUNDLE_FILE_KEY);
-						boolean isDir = (format != null && format.equals(BundleDescriptionFactory.DIR) ? true : false);
-
-						IArtifactKey key = MetadataGeneratorHelper.createBundleArtifactKey(bd.getSymbolicName(), bd.getVersion().toString());
-						IArtifactDescriptor ad = MetadataGeneratorHelper.createArtifactDescriptor(key, new File(bd.getLocation()), true, false);
-						if (isDir)
-							publishArtifact(ad, new File(bd.getLocation()).listFiles(), destination, false);
-						else
-							publishArtifact(ad, new File[] {new File(bd.getLocation())}, destination, true);
-						if (info.reuseExistingPack200Files() && !info.publishArtifacts()) {
-							File packFile = new Path(bd.getLocation()).addFileExtension("pack.gz").toFile(); //$NON-NLS-1$
-							if (packFile.exists()) {
-								IArtifactDescriptor ad200 = MetadataGeneratorHelper.createPack200ArtifactDescriptor(key, packFile, ad.getProperty(IArtifactDescriptor.ARTIFACT_SIZE));
-								publishArtifact(ad200, new File[] {packFile}, destination, true);
-							}
-						}
-
-						IInstallableUnit bundleIU = MetadataGeneratorHelper.createBundleIU(bd, bundleManifest, isDir, key);
-
-						if (isFragment(bd)) {
-							// TODO: Can NL fragments be multi-host?  What special handling
-							//		 is required for multi-host fragments in general?
-							String hostId = bd.getHost().getName();
-							String hostKey = makeSimpleKey(hostId);
-							String[] cachedValues = (String[]) bundleLocalizationMap.get(hostKey);
-
-							if (cachedValues != null) {
-								MetadataGeneratorHelper.createHostLocalizationFragment(bundleIU, bd, hostId, cachedValues, localizationIUs);
-							}
-						}
-
-						result.rootIUs.add(bundleIU);
-						result.nonRootIUs.addAll(localizationIUs);
-						localizationIUs.clear();
-					}
-				}
-			}
-		}
-	}
-
-	private static boolean isFragment(BundleDescription bd) {
-		return (bd.getHost() != null ? true : false);
-	}
-
-	private static String makeSimpleKey(BundleDescription bd) {
-		// TODO: can't use the bundle version in the key for the BundleLocalization
-		//		 property map since the host specification for a fragment has a
-		//		 version range, not a version. Hence, this mechanism for finding
-		// 		 manifest localization property files may break under changes
-		//		 to the BundleLocalization property of a bundle.
-		return makeSimpleKey(bd.getSymbolicName() /*, bd.getVersion() */);
-	}
-
-	private static String makeSimpleKey(String id /*, Version version */) {
-		return id; // + '_' + version.toString();
-	}
-
-	/**
-	 * Generates IUs corresponding to update site categories.
-	 * @param categoriesToFeatures Map of SiteCategory ->Set (Feature IUs in that category).
-	 * @param result The generator result being built
-	 */
-	protected void generateCategoryIUs(Map categoriesToFeatures, GeneratorResult result) {
-		for (Iterator it = categoriesToFeatures.keySet().iterator(); it.hasNext();) {
-			SiteCategory category = (SiteCategory) it.next();
-			result.nonRootIUs.add(MetadataGeneratorHelper.createCategoryIU(category, (Set) categoriesToFeatures.get(category), null));
-		}
-	}
-
-	private void storeConfigData(GeneratorResult result) {
-		if (result.configData.containsKey(info.getLauncherConfig()))
-			return; //been here, done this
-
-		LauncherData launcherData = info.getLauncherData();
-		if (launcherData == null)
-			return;
-
-		File fwConfigFile = new File(launcherData.getFwConfigLocation(), EquinoxConstants.CONFIG_INI);
-		if (fwConfigFile.exists()) {
-			if (info instanceof EclipseInstallGeneratorInfoProvider) {
-				((EclipseInstallGeneratorInfoProvider) info).loadConfigData(fwConfigFile);
-				ConfigData data = info.getConfigData();
-				result.configData.put(info.getLauncherConfig(), data);
-			}
-		}
-	}
-
-	protected GeneratorBundleInfo createGeneratorBundleInfo(BundleInfo bundleInfo, GeneratorResult result) {
-		if (bundleInfo.getLocation() != null)
-			return new GeneratorBundleInfo(bundleInfo);
-
-		String name = bundleInfo.getSymbolicName();
-
-		//easy case: do we have a matching IU?
-		IInstallableUnit iu = result.getInstallableUnit(name);
-		if (iu != null) {
-			bundleInfo.setVersion(iu.getVersion().toString());
-			return new GeneratorBundleInfo(bundleInfo);
-		}
-
-		//harder: try id_version
-		int i = name.indexOf('_');
-		while (i > -1) {
-			Version version = null;
-			try {
-				version = new Version(name.substring(i));
-				bundleInfo.setSymbolicName(name.substring(0, i));
-				bundleInfo.setVersion(version.toString());
-				return new GeneratorBundleInfo(bundleInfo);
-			} catch (IllegalArgumentException e) {
-				// the '_' found was probably part of the symbolic id
-				i = name.indexOf('_', i);
-			}
-		}
-
-		//Query the repo
-		Query query = new InstallableUnitQuery(name);
-		Collector collector = new Collector();
-		Iterator matches = info.getMetadataRepository().query(query, collector, null).iterator();
-		//pick the newest match
-		IInstallableUnit newest = null;
-		while (matches.hasNext()) {
-			IInstallableUnit candidate = (IInstallableUnit) matches.next();
-			if (newest == null || (newest.getVersion().compareTo(candidate.getVersion()) < 0))
-				newest = candidate;
-		}
-		if (newest != null) {
-			bundleInfo.setVersion(newest.getVersion().toString());
-			return new GeneratorBundleInfo(bundleInfo);
-		}
-
-		return null;
-	}
-
-	protected void generateBundleConfigIUs(BundleInfo[] infos, GeneratorResult result, String launcherConfig) {
-		if (infos == null)
-			return;
-
-		String cuIdPrefix = ""; //$NON-NLS-1$
-		String filter = null;
-		if (launcherConfig != null) {
-			//launcher config is os_ws_arch, we want suffix ws.os.arch
-			String[] config = parseConfigSpec(launcherConfig);
-			cuIdPrefix = config[1] + '.' + config[0] + '.' + config[2];
-
-			filter = "(& (osgi.ws=" + config[1] + ") (osgi.os=" + config[0] + ") (osgi.arch=" + config[2] + "))"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-
-		List allCUs = new ArrayList();
-		for (int i = 0; i < infos.length; i++) {
-			GeneratorBundleInfo bundle = createGeneratorBundleInfo(infos[i], result);
-			if (bundle == null)
-				continue;
-
-			if (bundle.getSymbolicName().equals(ORG_ECLIPSE_UPDATE_CONFIGURATOR)) {
-				bundle.setStartLevel(BundleInfo.NO_LEVEL);
-				bundle.setMarkedAsStarted(false);
-				bundle.setSpecialConfigCommands("setProgramProperty(propName:org.eclipse.update.reconcile, propValue:false);"); //$NON-NLS-1$
-				bundle.setSpecialUnconfigCommands("setProgramProperty(propName:org.eclipse.update.reconcile, propValue:);"); //$NON-NLS-1$
-			} else if (bundle.getStartLevel() == BundleInfo.NO_LEVEL && !bundle.isMarkedAsStarted()) {
-				// this bundle does not require any particular configuration, the plug-in default IU will handle installing it
-				continue;
-			}
-
-			IInstallableUnit cu = MetadataGeneratorHelper.createBundleConfigurationUnit(bundle.getSymbolicName(), new Version(bundle.getVersion()), false, bundle, info.getFlavor() + cuIdPrefix, filter);
-			if (cu != null) {
-				allCUs.add(cu);
-				result.rootIUs.add(cu);
-				String key = (productFile != null && productFile.useFeatures()) ? GeneratorResult.CONFIGURATION_CUS : bundle.getSymbolicName();
-				if (result.configurationIUs.containsKey(key)) {
-					((Set) result.configurationIUs.get(key)).add(cu);
-				} else {
-					Set set = new HashSet();
-					set.add(cu);
-					result.configurationIUs.put(key, set);
-				}
-			}
-		}
-		IMetadataRepository metadataRepository = info.getMetadataRepository();
-		if (metadataRepository != null && !allCUs.isEmpty()) {
-			// Product Query will run against the repo later in createProductIU, make sure these CUs are in before then
-			metadataRepository.addInstallableUnits((IInstallableUnit[]) allCUs.toArray(new IInstallableUnit[allCUs.size()]));
-		}
-
-	}
-
-	protected void generateConfigIUs(GeneratorResult result) {
-		ConfigData data = info.getConfigData();
-		if ((data == null || data.getBundles().length == 0) && info.getLauncherConfig() != null) {
-			//We have the config.ini but not necessarily all the needed bundle IUs, remember for later
-			storeConfigData(result);
-		} else if (data != null) {
-			// generation against an eclipse install (config.ini + bundles)
-			generateBundleConfigIUs(data.getBundles(), result, info.getLauncherConfig());
-		} else if (result.configData.size() > 0 && generateRootIU) {
-			// generation from remembered config.ini's
-			// we have N platforms, generate a CU for each
-			// TODO try and find common properties across platforms
-			for (Iterator iterator = result.configData.keySet().iterator(); iterator.hasNext();) {
-				String launcherConfig = (String) iterator.next();
-				data = (ConfigData) result.configData.get(launcherConfig);
-				generateBundleConfigIUs(data.getBundles(), result, launcherConfig);
-			}
-		}
-
-		List bundleInfoList = new ArrayList();
-		if (info.addDefaultIUs())
-			bundleInfoList.addAll(info.getDefaultIUs(result.rootIUs));
-
-		bundleInfoList.addAll(info.getOtherIUs());
-
-		for (Iterator iterator = bundleInfoList.iterator(); iterator.hasNext();) {
-			GeneratorBundleInfo bundle = (GeneratorBundleInfo) iterator.next();
-			IInstallableUnit configuredIU = result.getInstallableUnit(bundle.getSymbolicName());
-			if (configuredIU == null) {
-				if (!generateRootIU)
-					continue;
-				Query query = new InstallableUnitQuery(bundle.getSymbolicName());
-				Collector collector = new Collector();
-				IMetadataRepository metadataRepository = info.getMetadataRepository();
-				if (metadataRepository == null)
-					continue;
-				Iterator matches = metadataRepository.query(query, collector, null).iterator();
-				//pick the newest match
-				IInstallableUnit newest = null;
-				while (matches.hasNext()) {
-					IInstallableUnit candidate = (IInstallableUnit) matches.next();
-					if (newest == null || (newest.getVersion().compareTo(candidate.getVersion()) < 0))
-						newest = candidate;
-				}
-				if (newest != null) {
-					configuredIU = newest;
-				} else {
-					continue;
-				}
-			}
-			bundle.setVersion(configuredIU.getVersion().toString());
-			String filter = configuredIU == null ? null : configuredIU.getFilter();
-			IInstallableUnit cu = MetadataGeneratorHelper.createBundleConfigurationUnit(bundle.getSymbolicName(), new Version(bundle.getVersion()), false, bundle, info.getFlavor(), filter);
-			//the configuration unit should share the same platform filter as the IU being configured.
-			if (cu != null)
-				result.rootIUs.add(cu);
-			String key = null;
-			if (productFile != null && productFile.useFeatures())
-				key = GeneratorResult.CONFIGURATION_CUS;
-			else if (bundle.getSymbolicName().startsWith(ORG_ECLIPSE_EQUINOX_LAUNCHER + '.'))
-				key = ORG_ECLIPSE_EQUINOX_LAUNCHER;
-			else
-				key = bundle.getSymbolicName();
-			if (result.configurationIUs.containsKey(key)) {
-				((Set) result.configurationIUs.get(key)).add(cu);
-			} else {
-				Set set = new HashSet();
-				set.add(cu);
-				result.configurationIUs.put(key, set);
-			}
-		}
-	}
-
-	/**
-	 * Short term fix to ensure IUs that have no corresponding category are not lost.
-	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=211521.
-	 */
-	private IInstallableUnit generateDefaultCategory(IInstallableUnit rootIU) {
-		rootCategory.add(rootIU);
-
-		InstallableUnitDescription cat = new MetadataFactory.InstallableUnitDescription();
-		cat.setSingleton(true);
-		String categoryId = rootIU.getId() + ".categoryIU"; //$NON-NLS-1$
-		cat.setId(categoryId);
-		cat.setVersion(Version.emptyVersion);
-		cat.setProperty(IInstallableUnit.PROP_NAME, rootIU.getProperty(IInstallableUnit.PROP_NAME));
-		cat.setProperty(IInstallableUnit.PROP_DESCRIPTION, rootIU.getProperty(IInstallableUnit.PROP_DESCRIPTION));
-
-		ArrayList required = new ArrayList(rootCategory.size());
-		for (Iterator iterator = rootCategory.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			required.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), VersionRange.emptyRange, iu.getFilter(), false, false));
-		}
-		cat.setRequiredCapabilities((RequiredCapability[]) required.toArray(new RequiredCapability[required.size()]));
-		cat.setCapabilities(new ProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, categoryId, Version.emptyVersion)});
-		cat.setArtifacts(new IArtifactKey[0]);
-		cat.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, "true"); //$NON-NLS-1$
-		return MetadataFactory.createInstallableUnit(cat);
-	}
-
-	private void generateDefaultConfigIU(Set ius) {
-		//		TODO this is a bit of a hack.  We need to have the default IU fragment generated with code that configures
-		//		and unconfigures.  The Generator should be decoupled from any particular provider but it is not clear
-		//		that we should add the create* methods to IGeneratorInfo...
-		//		MockBundleDescription bd1 = new MockBundleDescription("defaultConfigure");
-		//		MockBundleDescription bd2 = new MockBundleDescription("defaultUnconfigure");
-		EclipseInstallGeneratorInfoProvider provider = (EclipseInstallGeneratorInfoProvider) info;
-		ius.add(MetadataGeneratorHelper.createDefaultBundleConfigurationUnit(provider.createDefaultConfigurationBundleInfo(), provider.createDefaultUnconfigurationBundleInfo(), info.getFlavor()));
-		ius.add(MetadataGeneratorHelper.createDefaultFeatureConfigurationUnit(info.getFlavor()));
-		ius.add(MetadataGeneratorHelper.createDefaultConfigurationUnitForSourceBundles(info.getFlavor()));
-	}
-
-	/**
-	 * This method generates IUs for the launchers found in the org.eclipse.executable feature, if present.
-	 * @return <code>true</code> if the executable feature was processed successfully,
-	 * and <code>false</code> otherwise.
-	 */
-	private boolean generateExecutableFeatureIUs(GeneratorResult result, IArtifactRepository destination) {
-		File parentDir = info.getFeaturesLocation();
-		if (parentDir == null || !parentDir.exists())
-			return false;
-		File[] featureDirs = parentDir.listFiles();
-		if (featureDirs == null)
-			return false;
-		File executableFeatureDir = null;
-		final String featurePrefix = "org.eclipse.equinox.executable_"; //$NON-NLS-1$
-		for (int i = 0; i < featureDirs.length; i++) {
-			if (featureDirs[i].getName().startsWith(featurePrefix)) {
-				executableFeatureDir = featureDirs[i];
-				break;
-			}
-		}
-		if (executableFeatureDir == null)
-			return false;
-		File binDir = new File(executableFeatureDir, "bin"); //$NON-NLS-1$
-		if (!binDir.exists())
-			return false;
-		//the bin directory is dividing into a directory tree of the form /bin/ws/os/arch
-		File[] wsDirs = binDir.listFiles();
-		if (wsDirs == null)
-			return false;
-		String versionString = executableFeatureDir.getName().substring(featurePrefix.length());
-		for (int wsIndex = 0; wsIndex < wsDirs.length; wsIndex++) {
-			String ws = wsDirs[wsIndex].getName();
-			File[] osDirs = wsDirs[wsIndex].listFiles();
-			if (osDirs == null)
-				continue;
-			for (int osIndex = 0; osIndex < osDirs.length; osIndex++) {
-				String os = osDirs[osIndex].getName();
-				File[] archDirs = osDirs[osIndex].listFiles();
-				if (archDirs == null)
-					continue;
-				for (int archIndex = 0; archIndex < archDirs.length; archIndex++) {
-					String arch = archDirs[archIndex].getName();
-					generateExecutableIUs(ws, os, arch, versionString, archDirs[archIndex], result, destination);
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Generates IUs and CUs for the files that make up the launcher for a given
-	 * ws/os/arch combination.
-	 */
-	private void generateExecutableIUs(String ws, String os, final String arch, String version, File root, GeneratorResult result, IArtifactRepository destination) {
-		//Create the IU
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(true);
-		String productNamespace = (productFile != null) ? productFile.getId() : "org.eclipse"; //$NON-NLS-1$
-		String launcherIdPrefix = productNamespace + PRODUCT_LAUCHER_SUFFIX;
-		String launcherId = launcherIdPrefix + '.' + ws + '.' + os + '.' + arch;
-		iu.setId(launcherId);
-		Version launcherVersion = new Version(version);
-		iu.setVersion(launcherVersion);
-		iu.setSingleton(true);
-		String filter = "(& (osgi.ws=" + ws + ") (osgi.os=" + os + ") (osgi.arch=" + arch + "))"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		iu.setFilter(filter);
-
-		IArtifactKey key = MetadataGeneratorHelper.createLauncherArtifactKey(launcherId, launcherVersion);
-		iu.setArtifacts(new IArtifactKey[] {key});
-		iu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_NATIVE);
-		ProvidedCapability launcherCapability = MetadataFactory.createProvidedCapability(info.getFlavor() + productNamespace, launcherIdPrefix, launcherVersion);
-		iu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(launcherId, launcherVersion), launcherCapability});
-
-		String launcherFragment = ORG_ECLIPSE_EQUINOX_LAUNCHER + '.' + ws + '.' + os;
-		if (!Constants.OS_MACOSX.equals(os))
-			launcherFragment += '.' + arch;
-		iu.setRequiredCapabilities(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, launcherFragment, VersionRange.emptyRange, filter, false, false)});
-		result.rootIUs.add(MetadataFactory.createInstallableUnit(iu));
-
-		//Create the CU
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = info.getFlavor() + launcherId;
-		cu.setId(configUnitId);
-		cu.setVersion(launcherVersion);
-		cu.setFilter(filter);
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, launcherId, new VersionRange(launcherVersion, true, launcherVersion, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		//TODO bug 218890, would like the fragment to provide the launcher capability as well, but can't right now.
-		cu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(configUnitId, launcherVersion)});
-
-		mungeLauncherFileNames(root);
-
-		cu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_NATIVE);
-		Map touchpointData = new HashMap();
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		if (Constants.OS_MACOSX.equals(os)) {
-			File[] appFolders = root.listFiles(new FilenameFilter() {
-				public boolean accept(File dir, String name) {
-					return name.substring(name.length() - 4, name.length()).equalsIgnoreCase(".app"); //$NON-NLS-1$
-				}
-			});
-			for (int i = 0; appFolders != null && i < appFolders.length; i++) {
-				File macOSFolder = new File(appFolders[i], "Contents/MacOS"); //$NON-NLS-1$
-				if (macOSFolder.exists()) {
-					File[] launcherFiles = macOSFolder.listFiles();
-					for (int j = 0; j < launcherFiles.length; j++) {
-						configurationData += " chmod(targetDir:${installFolder}/" + appFolders[i].getName() + "/Contents/MacOS/, targetFile:" + launcherFiles[j].getName() + ", permissions:755);"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						if (new Path(launcherFiles[j].getName()).getFileExtension() == null)
-							MetadataGeneratorHelper.generateLauncherSetter(launcherFiles[j].getName(), launcherId, launcherVersion, os, ws, arch, result.rootIUs);
-					}
-				}
-			}
-		}
-		if (!Constants.OS_WIN32.equals(os) && !Constants.OS_MACOSX.equals(os)) {
-			File[] launcherFiles = root.listFiles();
-			for (int i = 0; i < launcherFiles.length; i++) {
-				configurationData += " chmod(targetDir:${installFolder}, targetFile:" + launcherFiles[i].getName() + ", permissions:755);"; //$NON-NLS-1$ //$NON-NLS-2$
-				if (new Path(launcherFiles[i].getName()).getFileExtension() == null)
-					MetadataGeneratorHelper.generateLauncherSetter(launcherFiles[i].getName(), launcherId, launcherVersion, os, ws, arch, result.rootIUs);
-			}
-		}
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		IInstallableUnit unit = MetadataFactory.createInstallableUnit(cu);
-		result.rootIUs.add(unit);
-		//The Product Query will need to include the launcher CU fragments as a workaround to bug 218890
-		if (result.configurationIUs.containsKey(launcherIdPrefix)) {
-			((Set) result.configurationIUs.get(launcherIdPrefix)).add(unit);
-		} else {
-			Set set = new HashSet();
-			set.add(unit);
-			result.configurationIUs.put(launcherIdPrefix, set);
-		}
-
-		//Create the artifact descriptor
-		IArtifactDescriptor descriptor = MetadataGeneratorHelper.createArtifactDescriptor(key, root, false, true);
-		publishArtifact(descriptor, root.listFiles(), destination, false);
-	}
-
-	/*
-	 * For each platform, generate a CU containing the information for the config.ini
-	 */
-	private void generateProductConfigCUs(GeneratorResult result) {
-		for (Iterator iterator = result.configData.keySet().iterator(); iterator.hasNext();) {
-			String launcherConfig = (String) iterator.next();
-			String[] config = parseConfigSpec(launcherConfig);
-			String ws = config[1];
-			String os = config[0];
-			String arch = config[2];
-
-			ConfigData data = (ConfigData) result.configData.get(launcherConfig);
-
-			InstallableUnitDescription cu = new MetadataFactory.InstallableUnitDescription();
-			String configUnitId = info.getFlavor() + productFile.getId() + ".config." + ws + '.' + os + '.' + arch; //$NON-NLS-1$
-			Version cuVersion = new Version(productFile.getVersion());
-			cu.setId(configUnitId);
-			cu.setVersion(cuVersion);
-			cu.setSingleton(true);
-			cu.setFilter("(& (osgi.ws=" + ws + ") (osgi.os=" + os + ") (osgi.arch=" + arch + "))"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-			ProvidedCapability productConfigCapability = MetadataFactory.createProvidedCapability(info.getFlavor() + productFile.getId(), productFile.getId() + PRODUCT_CONFIG_SUFFIX, cuVersion);
-			ProvidedCapability selfCapability = MetadataGeneratorHelper.createSelfCapability(configUnitId, cuVersion);
-			cu.setCapabilities(new ProvidedCapability[] {selfCapability, productConfigCapability});
-
-			cu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_OSGI);
-			Map touchpointData = new HashMap();
-			String[] dataStrings = getConfigurationStrings(data);
-			touchpointData.put("configure", dataStrings[0]); //$NON-NLS-1$
-			touchpointData.put("unconfigure", dataStrings[1]); //$NON-NLS-1$
-			cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-
-			result.rootIUs.add(MetadataFactory.createInstallableUnit(cu));
-		}
-	}
-
-	/* 
-	 * For the given platform (ws, os, arch) generate the CU that will populate the product.ini file 
-	 */
-	private void generateProductIniCU(String ws, String os, String arch, String version, GeneratorResult result) {
-		if (productFile == null)
-			return;
-
-		//attempt to merge arguments from the launcher data and the product file
-		Set jvmArgs = new LinkedHashSet();
-		Set progArgs = new LinkedHashSet();
-		LauncherData launcherData = info.getLauncherData();
-		if (launcherData != null) {
-			jvmArgs.addAll(Arrays.asList(launcherData.getJvmArgs()));
-			progArgs.addAll(Arrays.asList(launcherData.getProgramArgs()));
-		}
-		progArgs.addAll(Arrays.asList(getArrayFromString(productFile.getProgramArguments(os), " "))); //$NON-NLS-1$
-		jvmArgs.addAll(Arrays.asList(getArrayFromString(productFile.getVMArguments(os), " "))); //$NON-NLS-1$
-
-		String[] dataStrings = getLauncherConfigStrings((String[]) jvmArgs.toArray(new String[jvmArgs.size()]), (String[]) progArgs.toArray(new String[progArgs.size()]));
-		String configurationData = dataStrings[0];
-		String unconfigurationData = dataStrings[1];
-
-		if (configurationData.length() == 0)
-			return;
-
-		InstallableUnitDescription cu = new MetadataFactory.InstallableUnitDescription();
-		String configUnitId = info.getFlavor() + productFile.getId() + ".ini." + ws + '.' + os + '.' + arch; //$NON-NLS-1$
-		Version cuVersion = new Version(version);
-		cu.setId(configUnitId);
-		cu.setVersion(cuVersion);
-		cu.setSingleton(true);
-		cu.setFilter("(& (osgi.ws=" + ws + ") (osgi.os=" + os + ") (osgi.arch=" + arch + "))"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-		ProvidedCapability productIniCapability = MetadataFactory.createProvidedCapability(info.getFlavor() + productFile.getId(), productFile.getId() + PRODUCT_INI_SUFFIX, cuVersion);
-		ProvidedCapability selfCapability = MetadataGeneratorHelper.createSelfCapability(configUnitId, cuVersion);
-		cu.setCapabilities(new ProvidedCapability[] {selfCapability, productIniCapability});
-
-		cu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_OSGI);
-		Map touchpointData = new HashMap();
-		touchpointData.put("configure", configurationData); //$NON-NLS-1$
-		touchpointData.put("unconfigure", unconfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-
-		result.rootIUs.add(MetadataFactory.createInstallableUnit(cu));
-
-	}
-
-	protected void generateFeatureIUs(Feature[] features, GeneratorResult result, IArtifactRepository destination) {
-		Map categoriesToFeatureIUs = new HashMap();
-		Map featuresToCategories = getFeatureToCategoryMappings();
-		//Build Feature IUs, and add them to any corresponding categories
-		for (int i = 0; i < features.length; i++) {
-			Feature feature = features[i];
-			String location = feature.getLocation();
-			boolean isExploded = (location.endsWith(".jar") ? false : true); //$NON-NLS-1$
-			IInstallableUnit featureIU = MetadataGeneratorHelper.createFeatureJarIU(feature, isExploded);
-			IArtifactKey[] artifacts = featureIU.getArtifacts();
-			for (int arti = 0; arti < artifacts.length; arti++) {
-				IArtifactDescriptor ad = MetadataGeneratorHelper.createArtifactDescriptor(artifacts[arti], new File(location), true, false);
-				if (isExploded)
-					publishArtifact(ad, new File(location).listFiles(), destination, false);
-				else
-					publishArtifact(ad, new File[] {new File(location)}, destination, true);
-			}
-			IInstallableUnit generated = MetadataGeneratorHelper.createGroupIU(feature, featureIU);
-			result.rootIUs.add(generated);
-			result.rootIUs.add(featureIU);
-			Set categories = getCategories(feature, featuresToCategories);
-			if (categories != null) {
-				for (Iterator it = categories.iterator(); it.hasNext();) {
-					SiteCategory category = (SiteCategory) it.next();
-					Set featureIUs = (Set) categoriesToFeatureIUs.get(category);
-					if (featureIUs == null) {
-						featureIUs = new HashSet();
-						categoriesToFeatureIUs.put(category, featureIUs);
-					}
-					featureIUs.add(generated);
-				}
-			} else {
-				rootCategory.add(generated);
-			}
-		}
-		generateCategoryIUs(categoriesToFeatureIUs, result);
-	}
-
-	protected void generateNativeIUs(File executableLocation, GeneratorResult result, IArtifactRepository destination) {
-		//generate data for JRE
-		File jreLocation = info.getJRELocation();
-		IArtifactDescriptor artifact = MetadataGeneratorHelper.createJREData(jreLocation, result.rootIUs);
-		publishArtifact(artifact, new File[] {jreLocation}, destination, false);
-
-		if (info.getLauncherConfig() != null) {
-			String[] config = parseConfigSpec(info.getLauncherConfig());
-			String version = "1.0.0"; //$NON-NLS-1$
-			if (productFile != null && !productFile.getVersion().equals("0.0.0")) //$NON-NLS-1$
-				version = productFile.getVersion();
-			generateExecutableIUs(config[1], config[0], config[2], version, executableLocation.getParentFile(), result, destination);
-			generateProductIniCU(config[1], config[0], config[2], version, result);
-			return;
-		}
-
-		//If the executable feature is present, use it to generate IUs for launchers
-		if (generateExecutableFeatureIUs(result, destination) || executableLocation == null)
-			return;
-
-		//generate data for executable launcher
-		artifact = MetadataGeneratorHelper.createLauncherIU(executableLocation, info.getFlavor(), result.rootIUs);
-		File[] launcherFiles = null;
-		//hard-coded name is ok, since console launcher is not branded, and appears on Windows only
-		File consoleLauncher = new File(executableLocation.getParentFile(), "eclipsec.exe"); //$NON-NLS-1$
-		if (consoleLauncher.exists())
-			launcherFiles = new File[] {executableLocation, consoleLauncher};
-		else
-			launcherFiles = new File[] {executableLocation};
-		publishArtifact(artifact, launcherFiles, destination, false);
-	}
-
-	protected void generateRootIU(GeneratorResult result, String rootIUId, String rootIUVersion) {
-		IInstallableUnit rootIU = null;
-
-		if (info.getProductFile() != null)
-			rootIU = createProductIU(result);
-		else if (rootIUId != null)
-			rootIU = createTopLevelIU(result, rootIUId, rootIUVersion);
-
-		if (rootIU == null)
-			return;
-
-		result.nonRootIUs.add(rootIU);
-		result.nonRootIUs.add(generateDefaultCategory(rootIU));
-	}
-
-	protected BundleDescription[] getBundleDescriptions(File[] bundleLocations) {
-		if (bundleLocations == null)
-			return new BundleDescription[0];
-		boolean addSimpleConfigurator = false;
-		boolean scIn = false;
-		for (int i = 0; i < bundleLocations.length; i++) {
-			if (!addSimpleConfigurator)
-				addSimpleConfigurator = bundleLocations[i].toString().indexOf(ORG_ECLIPSE_UPDATE_CONFIGURATOR) > 0;
-			if (!scIn) {
-				scIn = bundleLocations[i].toString().indexOf(ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR) > 0;
-				if (scIn)
-					break;
-			}
-		}
-		if (scIn)
-			addSimpleConfigurator = false;
-		BundleDescription[] result = new BundleDescription[bundleLocations.length + (addSimpleConfigurator ? 1 : 0)];
-		BundleDescriptionFactory factory = getBundleFactory();
-		for (int i = 0; i < bundleLocations.length; i++) {
-			BundleDescription desc = factory.getBundleDescription(bundleLocations[i]);
-			if (desc != null)
-				result[i] = desc;
-		}
-		if (addSimpleConfigurator) {
-			//Add simple configurator to the list of bundles
-			try {
-				File location = new File(FileLocator.toFileURL(Activator.getContext().getBundle().getEntry(ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR + ".jar")).getFile()); //$NON-NLS-1$
-				result[result.length - 1] = factory.getBundleDescription(location);
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return result;
-	}
-
-	protected BundleDescriptionFactory getBundleFactory() {
-		return new BundleDescriptionFactory(stateObjectFactory, null);
-	}
-
-	/**
-	 * Returns the categories corresponding to the given feature, or null if there
-	 * are no applicable categories.
-	 * @param feature The feature to return categories for
-	 * @param featuresToCategories A map of SiteFeature->Set<SiteCategory>
-	 * @return A Set<SiteCategory> of the categories corresponding to the feature, or <code>null</code>
-	 */
-	private Set getCategories(Feature feature, Map featuresToCategories) {
-		//find the SiteFeature corresponding to the given feature
-		for (Iterator it = featuresToCategories.keySet().iterator(); it.hasNext();) {
-			SiteFeature siteFeature = (SiteFeature) it.next();
-			if (siteFeature.getFeatureIdentifier().equals(feature.getId()) && siteFeature.getFeatureVersion().equals(feature.getVersion()))
-				return (Set) featuresToCategories.get(siteFeature);
-		}
-		return null;
-	}
-
-	private Feature[] getFeatures(File folder) {
-		if (folder == null || !folder.exists())
-			return new Feature[0];
-		File[] locations = folder.listFiles();
-		ArrayList result = new ArrayList(locations.length);
-		for (int i = 0; i < locations.length; i++) {
-			Feature feature = new FeatureParser().parse(locations[i]);
-			if (feature != null) {
-				feature.setLocation(locations[i].getAbsolutePath());
-				result.add(feature);
-			}
-		}
-		return (Feature[]) result.toArray(new Feature[result.size()]);
-	}
-
-	/**
-	 * Computes the mapping of features to categories as defined in the site.xml,
-	 * if available. Returns an empty map if there is not site.xml, or no categories.
-	 * @return A map of SiteFeature -> Set<SiteCategory>.
-	 */
-	protected Map getFeatureToCategoryMappings() {
-		HashMap mappings = new HashMap();
-		URL siteLocation = info.getSiteLocation();
-		if (siteLocation == null)
-			return mappings;
-		InputStream input;
-		SiteModel site = null;
-		try {
-			input = new BufferedInputStream(siteLocation.openStream());
-			site = new DefaultSiteParser().parse(input);
-		} catch (FileNotFoundException e) {
-			//don't complain if the update site is not present
-		} catch (Exception e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.exception_errorParsingUpdateSite, siteLocation), e));
-		}
-		if (site == null)
-			return mappings;
-
-		//copy mirror information from update site to p2 repositories
-		String mirrors = site.getMirrorsURL();
-		if (mirrors != null) {
-			//remove site.xml file reference
-			int index = mirrors.indexOf("site.xml"); //$NON-NLS-1$
-			if (index != -1)
-				mirrors = mirrors.substring(0, index) + mirrors.substring(index + 9);
-			info.getMetadataRepository().setProperty(IRepository.PROP_MIRRORS_URL, mirrors);
-			info.getArtifactRepository().setProperty(IRepository.PROP_MIRRORS_URL, mirrors);
-		}
-
-		SiteFeature[] features = site.getFeatures();
-		for (int i = 0; i < features.length; i++) {
-			//add a mapping for each category this feature belongs to
-			String[] categoryNames = features[i].getCategoryNames();
-			for (int j = 0; j < categoryNames.length; j++) {
-				SiteCategory category = site.getCategory(categoryNames[j]);
-				if (category != null) {
-					Set categories = (Set) mappings.get(features[i]);
-					if (categories == null) {
-						categories = new HashSet();
-						mappings.put(features[i], categories);
-					}
-					categories.add(category);
-				}
-			}
-		}
-		return mappings;
-	}
-
-	protected IGeneratorInfo getGeneratorInfo() {
-		return info;
-	}
-
-	/**
-	 * @TODO This method is a temporary hack to rename the launcher.exe files
-	 * to eclipse.exe (or "launcher" to "eclipse"). Eventually we will either hand-craft
-	 * metadata/artifacts for launchers, or alter the delta pack to contain eclipse-branded
-	 * launchers.
-	 */
-	private void mungeLauncherFileNames(File root) {
-		if (root.isDirectory()) {
-			File[] children = root.listFiles();
-			for (int i = 0; i < children.length; i++) {
-				mungeLauncherFileNames(children[i]);
-			}
-		} else if (root.isFile()) {
-			if (root.getName().equals("launcher")) //$NON-NLS-1$
-				root.renameTo(new File(root.getParentFile(), "eclipse")); //$NON-NLS-1$
-			else if (root.getName().equals("launcher.exe")) //$NON-NLS-1$
-				root.renameTo(new File(root.getParentFile(), "eclipse.exe")); //$NON-NLS-1$
-		}
-	}
-
-	// Put the artifact on the server
-	protected void publishArtifact(IArtifactDescriptor descriptor, File[] files, IArtifactRepository destination, boolean asIs) {
-		if (descriptor == null || destination == null)
-			return;
-		if (!info.publishArtifacts()) {
-			destination.addDescriptor(descriptor);
-			return;
-		}
-		if (asIs && files.length == 1) {
-			try {
-				if (!destination.contains(descriptor)) {
-					OutputStream output = new BufferedOutputStream(destination.getOutputStream(descriptor));
-					FileUtils.copyStream(new BufferedInputStream(new FileInputStream(files[0])), true, output, true);
-				}
-			} catch (ProvisionException e) {
-				LogHelper.log(e.getStatus());
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error publishing artifacts", e)); //$NON-NLS-1$
-			}
-		} else {
-			File tempFile = null;
-			try {
-				tempFile = File.createTempFile("p2.generator", ""); //$NON-NLS-1$ //$NON-NLS-2$
-				FileUtils.zip(files, tempFile);
-				if (!destination.contains(descriptor)) {
-					OutputStream output = new BufferedOutputStream(destination.getOutputStream(descriptor));
-					FileUtils.copyStream(new BufferedInputStream(new FileInputStream(tempFile)), true, output, true);
-				}
-			} catch (ProvisionException e) {
-				LogHelper.log(e.getStatus());
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error publishing artifacts", e)); //$NON-NLS-1$
-			} finally {
-				if (tempFile != null)
-					tempFile.delete();
-			}
-		}
-	}
-
-	public void setGenerateRootIU(boolean generateRootIU) {
-		this.generateRootIU = generateRootIU;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/GeneratorBundleInfo.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/GeneratorBundleInfo.java
deleted file mode 100644
index 62f15f1..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/GeneratorBundleInfo.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-import java.io.ByteArrayInputStream;
-import org.eclipse.equinox.internal.p2.core.helpers.Headers;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
-
-public class GeneratorBundleInfo extends BundleInfo {
-	//	public static final int NO_LEVEL = -1;
-
-	//	private String symbolicName;
-	//	private String version;
-	//	private String location;
-	//	private int expectedState;
-	//	private int startLevel = NO_LEVEL;
-	//	private String manifest;
-
-	private String specialConfigCommands;
-	private String specialUnconfigCommands;
-
-	public GeneratorBundleInfo(BundleInfo bInfo) {
-		super.setBundleId(bInfo.getBundleId());
-		super.setLocation(bInfo.getLocation());
-		super.setManifest(bInfo.getManifest());
-		super.setMarkedAsStarted(bInfo.isMarkedAsStarted());
-		super.setResolved(bInfo.isResolved());
-		super.setStartLevel(bInfo.getStartLevel());
-		super.setSymbolicName(bInfo.getSymbolicName());
-		super.setVersion(bInfo.getVersion());
-	}
-
-	public GeneratorBundleInfo() {
-		// TODO Auto-generated constructor stub
-	}
-
-	//	/* (non-Javadoc)
-	//	 * @see java.lang.Object#hashCode()
-	//	 */
-	//	public int hashCode() {
-	//		int result = symbolicName == null ? 0 : symbolicName.hashCode();
-	//		result = result + (version == null ? 0 : version.hashCode());
-	//		result = result + (location == null ? 0 : location.hashCode());
-	//		return result;
-	//	}
-	//
-	//	public String getSymbolicName() {
-	//		return symbolicName;
-	//	}
-	//
-	//	public String getVersion() {
-	//		return version;
-	//	}
-	//
-	//	public int expectedState() {
-	//		return expectedState;
-	//	}
-	//
-	//	public int getStartLevel() {
-	//		return startLevel;
-	//	}
-	//
-	//	public String getLocation() {
-	//		return location;
-	//	}
-	//
-	//	public void setSymbolicName(String id) {
-	//		symbolicName = id;
-	//	}
-	//
-	//	public void setVersion(String version) {
-	//		this.version = version;
-	//	}
-	//
-	//	public void setExpectedState(int state) {
-	//		expectedState = state;
-	//	}
-	//
-	//	public void setStartLevel(int level) {
-	//		this.startLevel = level;
-	//	}
-	//
-	//	public void setLocation(String location) {
-	//		this.location = location;
-	//	}
-	//
-	//	public void setManifest(String manifest) {
-	//		this.manifest = manifest;
-	//	}
-	//	
-	//	public String getManifest() {
-	//		return manifest;
-	//	}
-	//	
-	public String getSpecialConfigCommands() {
-		return specialConfigCommands;
-	}
-
-	public void setSpecialConfigCommands(String specialConfigCommands) {
-		this.specialConfigCommands = specialConfigCommands;
-	}
-
-	public String getSpecialUnconfigCommands() {
-		return specialUnconfigCommands;
-	}
-
-	public void setSpecialUnconfigCommands(String specialUnconfigCommands) {
-		this.specialUnconfigCommands = specialUnconfigCommands;
-	}
-
-	//	/* (non-Javadoc)
-	//	 * @see java.lang.Object#equals(java.lang.Object)
-	//	 */
-	//	public boolean equals(Object toCompare) {
-	//		if (toCompare instanceof GeneratorBundleInfo) {
-	//			GeneratorBundleInfo info = (GeneratorBundleInfo) toCompare;
-	//			if (info.symbolicName.equals(symbolicName) && info.version.equals(version) && (info.location == null || location == null ? true : info.location.equals(location)))
-	//				return true;
-	//		}
-	//		return false;
-	//	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		String superSt = super.toString();
-		if (superSt.length() > 0)
-			buffer.append(superSt.substring(0, superSt.length() - 1));
-		buffer.append(", this.specialConfigCommands="); //$NON-NLS-1$
-		buffer.append(this.specialConfigCommands);
-		buffer.append(')');
-		return buffer.toString();
-	}
-
-	public void initFromManifest(String manifest) {
-		try {
-			super.setManifest(manifest);
-			Headers headers = Headers.parseManifest(new ByteArrayInputStream(manifest.getBytes()));
-			ManifestElement[] element = ManifestElement.parseHeader("bsn", (String) headers.get(Constants.BUNDLE_SYMBOLICNAME)); //$NON-NLS-1$
-			super.setSymbolicName(element[0].getValue());
-			super.setVersion((String) headers.get(Constants.BUNDLE_VERSION));
-		} catch (BundleException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/IGeneratorInfo.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/IGeneratorInfo.java
deleted file mode 100644
index 0a4f2ac..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/IGeneratorInfo.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-import java.io.File;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.ConfigData;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.LauncherData;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-
-public interface IGeneratorInfo {
-
-	/**
-	 * Returns whether or not to add the default IUs to the published result.
-	 * The default IUs are typically used to configure bundles, features and 
-	 * source bundles.
-	 * @return whether or not to publish default IUs
-	 */
-	public boolean addDefaultIUs();
-
-	/**
-	 * Returns whether or not to append to existing repositories or overwrite.
-	 * @return whether or not to append to existing repositories or overwrite.
-	 */
-	public boolean append();
-
-	/**
-	 * Returns the artifact repository into which any publishable artifacts are published
-	 * or <code>null</code> if none.
-	 * @return a destination artifact repository or <code>null</code>
-	 */
-	public IArtifactRepository getArtifactRepository();
-
-	/**
-	 * Returns a list of locations in which bundles may be found.  The locations may
-	 * be directories to search or actual bundle files.
-	 * @return the list of locations holding bundles to process.
-	 */
-	public File[] getBundleLocations();
-
-	/** 
-	 * Return the configuration data to use during publishing or <code>null</code> 
-	 * if none.  The configuration data details the framework and launcher setup.
-	 *
-	 * @return the configuration data or <code>null</code>
-	 */
-	public ConfigData getConfigData();
-
-	public File getConfigurationLocation();
-
-	public ArrayList getDefaultIUs(Set ius);
-
-	public File getExecutableLocation();
-
-	public File getFeaturesLocation();
-
-	public String getFlavor();
-
-	public boolean getIsUpdateCompatible();
-
-	public File getJRELocation();
-
-	/**
-	 * The platform for the data this location
-	 * @return Returns a pde.build style platform config in the form os_ws_arch
-	 */
-	public String getLauncherConfig();
-
-	public LauncherData getLauncherData();
-
-	public String[][] getMappingRules();
-
-	public IMetadataRepository getMetadataRepository();
-
-	public String getRootId();
-
-	public String getRootVersion();
-
-	public String getProductFile();
-
-	public String getVersionAdvice();
-
-	/**
-	 * Returns the location of the site.xml file, or <code>null</code> if not
-	 * generating for an update site.
-	 * @return The location of site.xml, or <code>null</code>
-	 */
-	public URL getSiteLocation();
-
-	public boolean publishArtifactRepository();
-
-	public boolean publishArtifacts();
-
-	public boolean reuseExistingPack200Files();
-
-	public void reuseExistingPack200Files(boolean publishPack);
-
-	public void setArtifactRepository(IArtifactRepository value);
-
-	public void setFlavor(String value);
-
-	public void setIsUpdateCompatible(boolean isCompatible);
-
-	public void setMetadataRepository(IMetadataRepository value);
-
-	public void setPublishArtifacts(boolean value);
-
-	public void setRootId(String value);
-
-	public void setVersionAdvice(String advice);
-
-	// TODO: This is kind of ugly. It's purpose is to allow us to craft CUs that we know about and need for our build
-	// We should try to replace this with something more generic prior to release
-	public Collection getOtherIUs();
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/MetadataGeneratorHelper.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/MetadataGeneratorHelper.java
deleted file mode 100644
index 5e19f8c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/MetadataGeneratorHelper.java
+++ /dev/null
@@ -1,1116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Genuitec, LLC - added license support
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-import java.io.*;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.p2.metadata.InstallableUnit;
-import org.eclipse.equinox.internal.p2.metadata.generator.Activator;
-import org.eclipse.equinox.internal.p2.metadata.generator.features.SiteCategory;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.service.resolver.*;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.*;
-
-public class MetadataGeneratorHelper {
-	/**
-	 * A capability namespace representing the type of Eclipse resource (bundle, feature, source bundle, etc)
-	 * @see RequiredCapability#getNamespace()
-	 * @see ProvidedCapability#getNamespace()
-	 */
-	public static final String NAMESPACE_ECLIPSE_TYPE = "org.eclipse.equinox.p2.eclipse.type"; //$NON-NLS-1$
-
-	/**
-	 * A capability name in the {@link #NAMESPACE_ECLIPSE_TYPE} namespace 
-	 * representing and OSGi bundle resource
-	 * @see RequiredCapability#getName()
-	 * @see ProvidedCapability#getName()
-	 */
-	public static final String TYPE_ECLIPSE_BUNDLE = "bundle"; //$NON-NLS-1$
-	/**
-	 * A capability name in the {@link #NAMESPACE_ECLIPSE_TYPE} namespace 
-	 * representing a feature
-	 * @see RequiredCapability#getName()
-	 */
-	public static final String TYPE_ECLIPSE_FEATURE = "feature"; //$NON-NLS-1$
-
-	/**
-	 * A capability name in the {@link #NAMESPACE_ECLIPSE_TYPE} namespace 
-	 * representing a source bundle
-	 * @see RequiredCapability#getName()
-	 */
-	public static final String TYPE_ECLIPSE_SOURCE = "source"; //$NON-NLS-1$
-
-	/**
-	 * A capability namespace representing the localization (translation)
-	 * of strings from a specified IU in a specified locale
-	 * @see RequiredCapability#getNamespace()
-	 * @see ProvidedCapability#getNamespace()
-	 * TODO: this should be in API, probably in IInstallableUnit
-	 */
-	public static final String NAMESPACE_IU_LOCALIZATION = "org.eclipse.equinox.p2.localization"; //$NON-NLS-1$
-
-	// Only certain properties in the bundle manifest are assumed to be localized.
-	public static final String[] BUNDLE_LOCALIZED_PROPERTIES = {Constants.BUNDLE_NAME, Constants.BUNDLE_DESCRIPTION, Constants.BUNDLE_VENDOR, Constants.BUNDLE_CONTACTADDRESS, Constants.BUNDLE_DOCURL, Constants.BUNDLE_UPDATELOCATION};
-	public static final int BUNDLE_LOCALIZATION_INDEX = BUNDLE_LOCALIZED_PROPERTIES.length;
-
-	private static final String[] BUNDLE_IU_PROPERTY_MAP = {Constants.BUNDLE_NAME, IInstallableUnit.PROP_NAME, Constants.BUNDLE_DESCRIPTION, IInstallableUnit.PROP_DESCRIPTION, Constants.BUNDLE_VENDOR, IInstallableUnit.PROP_PROVIDER, Constants.BUNDLE_CONTACTADDRESS, IInstallableUnit.PROP_CONTACT, Constants.BUNDLE_DOCURL, IInstallableUnit.PROP_DOC_URL};
-
-	private static final String CAPABILITY_NS_JAVA_PACKAGE = "java.package"; //$NON-NLS-1$
-	private static final String CAPABILITY_NS_OSGI_BUNDLE = "osgi.bundle"; //$NON-NLS-1$
-	private static final String CAPABILITY_NS_OSGI_FRAGMENT = "osgi.fragment"; //$NON-NLS-1$
-
-	private static final String CAPABILITY_NS_UPDATE_FEATURE = "org.eclipse.update.feature"; //$NON-NLS-1$
-
-	private static final Version DEFAULT_JRE_VERSION = new Version("1.6"); //$NON-NLS-1$
-
-	public static final String ECLIPSE_FEATURE_CLASSIFIER = "org.eclipse.update.feature"; //$NON-NLS-1$
-	public static final String OSGI_BUNDLE_CLASSIFIER = "osgi.bundle"; //$NON-NLS-1$
-	public static final String BINARY_ARTIFACT_CLASSIFIER = "binary"; //$NON-NLS-1$
-
-	public static final String INSTALL_FEATURES_FILTER = "(org.eclipse.update.install.features=true)"; //$NON-NLS-1$
-
-	private static final String IU_NAMESPACE = IInstallableUnit.NAMESPACE_IU_ID;
-
-	private static final String LAUNCHER_ID_PREFIX = "org.eclipse.launcher"; //$NON-NLS-1$
-
-	private static final String ECLIPSE_INSTALL_HANDLER_PROP = "org.eclipse.update.installHandler"; //$NON-NLS-1$
-
-	//TODO - need to come up with a way to infer launcher version
-	private static final Version LAUNCHER_VERSION = new Version(1, 0, 0);
-
-	private static final Version versionMax = new Version(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE);
-
-	public static final TouchpointType TOUCHPOINT_NATIVE = MetadataFactory.createTouchpointType("org.eclipse.equinox.p2.native", new Version(1, 0, 0)); //$NON-NLS-1$
-	public static final TouchpointType TOUCHPOINT_OSGI = MetadataFactory.createTouchpointType("org.eclipse.equinox.p2.osgi", new Version(1, 0, 0)); //$NON-NLS-1$
-
-	public static final ProvidedCapability BUNDLE_CAPABILITY = MetadataFactory.createProvidedCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_BUNDLE, new Version(1, 0, 0));
-	public static final ProvidedCapability FEATURE_CAPABILITY = MetadataFactory.createProvidedCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_FEATURE, new Version(1, 0, 0));
-	public static final ProvidedCapability SOURCE_BUNDLE_CAPABILITY = MetadataFactory.createProvidedCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_SOURCE, new Version(1, 0, 0));
-
-	static final String DEFAULT_BUNDLE_LOCALIZATION = "plugin"; //$NON-NLS-1$	
-	static final String PROPERTIES_FILE_EXTENSION = ".properties"; //$NON-NLS-1$
-	static final String MANIFEST_LOCALIZATIONS = "eclipse.p2.manifest.localizations"; //$NON-NLS-1$
-
-	static final Locale DEFAULT_LOCALE = new Locale("df", "LT"); //$NON-NLS-1$//$NON-NLS-2$
-	static final Locale PSEUDO_LOCALE = new Locale("zz", "ZZ"); //$NON-NLS-1$//$NON-NLS-2$
-
-	public static IArtifactDescriptor createArtifactDescriptor(IArtifactKey key, File pathOnDisk, boolean asIs, boolean recur) {
-		//TODO this size calculation is bogus
-		ArtifactDescriptor result = new ArtifactDescriptor(key);
-		if (pathOnDisk != null) {
-			result.setProperty(IArtifactDescriptor.ARTIFACT_SIZE, Long.toString(pathOnDisk.length()));
-			// TODO - this is wrong but I'm testing a work-around for bug 205842
-			result.setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, Long.toString(pathOnDisk.length()));
-		}
-		return result;
-	}
-
-	public static IArtifactDescriptor createPack200ArtifactDescriptor(IArtifactKey key, File pathOnDisk, String installSize) {
-		final String PACKED_FORMAT = "packed"; //$NON-NLS-1$
-		//TODO this size calculation is bogus
-		ArtifactDescriptor result = new ArtifactDescriptor(key);
-		if (pathOnDisk != null) {
-			result.setProperty(IArtifactDescriptor.ARTIFACT_SIZE, installSize);
-			// TODO - this is wrong but I'm testing a work-around for bug 205842
-			result.setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, Long.toString(pathOnDisk.length()));
-		}
-		ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Pack200Unpacker", null, true)}; //$NON-NLS-1$
-		result.setProcessingSteps(steps);
-		result.setProperty(IArtifactDescriptor.FORMAT, PACKED_FORMAT);
-		return result;
-	}
-
-	public static IArtifactKey createBundleArtifactKey(String bsn, String version) {
-		return new ArtifactKey(OSGI_BUNDLE_CLASSIFIER, bsn, new Version(version));
-	}
-
-	public static IInstallableUnit createBundleConfigurationUnit(String iuId, Version iuVersion, boolean isBundleFragment, GeneratorBundleInfo configInfo, String configurationFlavor, String filter) {
-		if (configInfo == null)
-			return null;
-
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = configurationFlavor + iuId;
-		cu.setId(configUnitId);
-		cu.setVersion(iuVersion);
-
-		//Indicate the IU to which this CU apply
-		cu.setHost(new RequiredCapability[] { //
-				MetadataFactory.createRequiredCapability(CAPABILITY_NS_OSGI_BUNDLE, iuId, new VersionRange(iuVersion, true, versionMax, true), null, false, false, true), // 
-						MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_BUNDLE, new VersionRange(new Version(1, 0, 0), true, new Version(2, 0, 0), false), null, false, false, false)});
-
-		//Adds capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, iuVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		Map touchpointData = new HashMap();
-		touchpointData.put("install", "installBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("uninstall", "uninstallBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("configure", createConfigScript(configInfo, isBundleFragment)); //$NON-NLS-1$
-		touchpointData.put("unconfigure", createUnconfigScript(configInfo, isBundleFragment)); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		cu.setFilter(filter);
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	public static IInstallableUnit createBundleIU(BundleDescription bd, Map manifest, boolean isFolderPlugin, IArtifactKey key) {
-		Map manifestLocalizations = null;
-		if (manifest != null && bd.getLocation() != null) {
-			manifestLocalizations = getManifestLocalizations(manifest, new File(bd.getLocation()));
-		}
-
-		return createBundleIU(bd, manifest, isFolderPlugin, key, manifestLocalizations);
-	}
-
-	public static IInstallableUnit createBundleIU(BundleDescription bd, Map manifest, boolean isFolderPlugin, IArtifactKey key, Map manifestLocalizations) {
-		boolean isBinaryBundle = true;
-		if (manifest != null && manifest.containsKey("Eclipse-SourceBundle")) { //$NON-NLS-1$
-			isBinaryBundle = false;
-		}
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(bd.isSingleton());
-		iu.setId(bd.getSymbolicName());
-		iu.setVersion(bd.getVersion());
-		iu.setFilter(bd.getPlatformFilter());
-
-		iu.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(bd.getSymbolicName(), new VersionRange(new Version(0, 0, 0), true, bd.getVersion(), false), IUpdateDescriptor.NORMAL, null));
-
-		boolean isFragment = bd.getHost() != null;
-		//		boolean requiresAFragment = isFragment ? false : requireAFragment(bd, manifest);
-
-		//Process the required bundles
-		BundleSpecification requiredBundles[] = bd.getRequiredBundles();
-		ArrayList reqsDeps = new ArrayList();
-		//		if (requiresAFragment)
-		//			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_TYPE_OSGI_FRAGMENTS, bd.getSymbolicName(), VersionRange.emptyRange, null, false, false));
-		if (isFragment)
-			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_NS_OSGI_BUNDLE, bd.getHost().getName(), bd.getHost().getVersionRange(), null, false, false));
-		for (int j = 0; j < requiredBundles.length; j++)
-			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_NS_OSGI_BUNDLE, requiredBundles[j].getName(), requiredBundles[j].getVersionRange() == VersionRange.emptyRange ? null : requiredBundles[j].getVersionRange(), null, requiredBundles[j].isOptional(), false));
-
-		// Process the import packages
-		ImportPackageSpecification osgiImports[] = bd.getImportPackages();
-		for (int i = 0; i < osgiImports.length; i++) {
-			// TODO we need to sort out how we want to handle wild-carded dynamic imports - for now we ignore them
-			ImportPackageSpecification importSpec = osgiImports[i];
-			String importPackageName = importSpec.getName();
-			if (importPackageName.indexOf('*') != -1)
-				continue;
-
-			VersionRange versionRange = importSpec.getVersionRange() == VersionRange.emptyRange ? null : importSpec.getVersionRange();
-
-			//TODO this needs to be refined to take into account all the attribute handled by imports
-			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_NS_JAVA_PACKAGE, importPackageName, versionRange, null, isOptional(importSpec), false));
-		}
-		iu.setRequiredCapabilities((RequiredCapability[]) reqsDeps.toArray(new RequiredCapability[reqsDeps.size()]));
-
-		// Create set of provided capabilities
-		ArrayList providedCapabilities = new ArrayList();
-		providedCapabilities.add(createSelfCapability(bd.getSymbolicName(), bd.getVersion()));
-		providedCapabilities.add(MetadataFactory.createProvidedCapability(CAPABILITY_NS_OSGI_BUNDLE, bd.getSymbolicName(), bd.getVersion()));
-
-		// Process the export package
-		ExportPackageDescription exports[] = bd.getExportPackages();
-		for (int i = 0; i < exports.length; i++) {
-			//TODO make sure that we support all the refinement on the exports
-			providedCapabilities.add(MetadataFactory.createProvidedCapability(CAPABILITY_NS_JAVA_PACKAGE, exports[i].getName(), exports[i].getVersion() == Version.emptyVersion ? null : exports[i].getVersion()));
-		}
-		// Here we add a bundle capability to identify bundles
-		if (isBinaryBundle)
-			providedCapabilities.add(BUNDLE_CAPABILITY);
-		else
-			providedCapabilities.add(SOURCE_BUNDLE_CAPABILITY);
-
-		if (isFragment)
-			providedCapabilities.add(MetadataFactory.createProvidedCapability(CAPABILITY_NS_OSGI_FRAGMENT, bd.getHost().getName(), bd.getVersion()));
-
-		if (manifestLocalizations != null) {
-			for (Iterator iter = manifestLocalizations.keySet().iterator(); iter.hasNext();) {
-				Locale locale = (Locale) iter.next();
-				Properties translatedStrings = (Properties) manifestLocalizations.get(locale);
-				Enumeration propertyKeys = translatedStrings.propertyNames();
-				while (propertyKeys.hasMoreElements()) {
-					String nextKey = (String) propertyKeys.nextElement();
-					iu.setProperty(locale.toString() + '.' + nextKey, translatedStrings.getProperty(nextKey));
-				}
-				providedCapabilities.add(makeTranslationCapability(bd.getSymbolicName(), locale));
-			}
-		}
-
-		iu.setCapabilities((ProvidedCapability[]) providedCapabilities.toArray(new ProvidedCapability[providedCapabilities.size()]));
-
-		iu.setArtifacts(new IArtifactKey[] {key});
-
-		iu.setTouchpointType(TOUCHPOINT_OSGI);
-
-		// Set certain properties from the manifest header attributes as IU properties.
-		// The values of these attributes may be localized (strings starting with '%')
-		// with the translated values appearing in the localization IU fragments
-		// associated with the bundle IU.
-		if (manifest != null) {
-			int i = 0;
-			while (i < BUNDLE_IU_PROPERTY_MAP.length) {
-				if (manifest.containsKey(BUNDLE_IU_PROPERTY_MAP[i])) {
-					String value = (String) manifest.get(BUNDLE_IU_PROPERTY_MAP[i]);
-					if (value != null && value.length() > 0) {
-						iu.setProperty(BUNDLE_IU_PROPERTY_MAP[i + 1], value);
-					}
-				}
-				i += 2;
-			}
-		}
-
-		// Define the immutable metadata for this IU. In this case immutable means
-		// that this is something that will not impact the configuration.
-		Map touchpointData = new HashMap();
-		if (isFolderPlugin)
-			touchpointData.put("zipped", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("manifest", toManifestString(manifest)); //$NON-NLS-1$
-		iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	public static void createHostLocalizationFragment(IInstallableUnit bundleIU, BundleDescription bd, String hostId, String[] hostBundleManifestValues, Set localizationIUs) {
-		Map hostLocalizations = getHostLocalizations(new File(bd.getLocation()), hostBundleManifestValues);
-		if (hostLocalizations != null) {
-			IInstallableUnitFragment localizationFragment = createLocalizationFragmentOfHost(bd, hostId, hostBundleManifestValues, hostLocalizations);
-			localizationIUs.add(localizationFragment);
-		}
-	}
-
-	/*
-	 * @param hostId
-	 * @param bd
-	 * @param locale
-	 * @param localizedStrings
-	 * @return installableUnitFragment
-	 */
-	private static IInstallableUnitFragment createLocalizationFragmentOfHost(BundleDescription bd, String hostId, String[] hostManifestValues, Map hostLocalizations) {
-		InstallableUnitFragmentDescription fragment = new MetadataFactory.InstallableUnitFragmentDescription();
-		String fragmentId = makeHostLocalizationFragmentId(bd.getSymbolicName());
-		fragment.setId(fragmentId);
-		fragment.setVersion(bd.getVersion()); // TODO: is this a meaningful version?
-
-		HostSpecification hostSpec = bd.getHost();
-		RequiredCapability[] hostReqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, hostSpec.getName(), hostSpec.getVersionRange(), null, false, false, false)};
-		fragment.setHost(hostReqs);
-
-		fragment.setSingleton(true);
-		fragment.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-
-		// Create a provided capability for each locale and add the translated properties.
-		ArrayList providedCapabilities = new ArrayList(hostLocalizations.keySet().size());
-		for (Iterator iter = hostLocalizations.keySet().iterator(); iter.hasNext();) {
-			Locale locale = (Locale) iter.next();
-			Properties translatedStrings = (Properties) hostLocalizations.get(locale);
-
-			Enumeration propertyKeys = translatedStrings.propertyNames();
-			while (propertyKeys.hasMoreElements()) {
-				String nextKey = (String) propertyKeys.nextElement();
-				fragment.setProperty(locale.toString() + '.' + nextKey, translatedStrings.getProperty(nextKey));
-			}
-			providedCapabilities.add(makeTranslationCapability(hostId, locale));
-		}
-		fragment.setCapabilities((ProvidedCapability[]) providedCapabilities.toArray(new ProvidedCapability[providedCapabilities.size()]));
-
-		return MetadataFactory.createInstallableUnitFragment(fragment);
-	}
-
-	/**
-	 * @param id
-	 * @return the id for the iu fragment containing the localized properties
-	 * 		   for the bundle with the given id
-	 */
-	//	private static String makeBundleLocalizationFragmentId(String id) {
-	//		return id + ".translated_properties"; //$NON-NLS-1$
-	//	}
-	/**
-	 * @param id
-	 * @return the id for the iu fragment containing localized properties
-	 * 		   for the fragment with the given id.
-	 */
-	private static String makeHostLocalizationFragmentId(String id) {
-		return id + ".translated_host_properties"; //$NON-NLS-1$
-	}
-
-	private static ProvidedCapability makeTranslationCapability(String hostId, Locale locale) {
-		return MetadataFactory.createProvidedCapability(NAMESPACE_IU_LOCALIZATION, locale.toString(), new Version(1, 0, 0));
-	}
-
-	/**
-	 * Creates an IU corresponding to an update site category
-	 * @param category The category descriptor
-	 * @param featureIUs The IUs of the features that belong to the category
-	 * @param parentCategory The parent category, or <code>null</code>
-	 * @return an IU representing the category
-	 */
-	public static IInstallableUnit createCategoryIU(SiteCategory category, Set featureIUs, IInstallableUnit parentCategory) {
-		InstallableUnitDescription cat = new MetadataFactory.InstallableUnitDescription();
-		cat.setSingleton(true);
-		cat.setId(category.getName());
-		cat.setVersion(Version.emptyVersion);
-		cat.setProperty(IInstallableUnit.PROP_NAME, category.getLabel());
-		cat.setProperty(IInstallableUnit.PROP_DESCRIPTION, category.getDescription());
-
-		ArrayList reqsConfigurationUnits = new ArrayList(featureIUs.size());
-		for (Iterator iterator = featureIUs.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			VersionRange range = new VersionRange(iu.getVersion(), true, iu.getVersion(), true);
-			reqsConfigurationUnits.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), range, iu.getFilter(), false, false));
-		}
-		//note that update sites don't currently support nested categories, but it may be useful to add in the future
-		if (parentCategory != null) {
-			reqsConfigurationUnits.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, parentCategory.getId(), VersionRange.emptyRange, parentCategory.getFilter(), false, false));
-		}
-		cat.setRequiredCapabilities((RequiredCapability[]) reqsConfigurationUnits.toArray(new RequiredCapability[reqsConfigurationUnits.size()]));
-		cat.setCapabilities(new ProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, category.getName(), Version.emptyVersion)});
-		cat.setArtifacts(new IArtifactKey[0]);
-		cat.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, "true"); //$NON-NLS-1$
-		return MetadataFactory.createInstallableUnit(cat);
-	}
-
-	private static String createConfigScript(GeneratorBundleInfo configInfo, boolean isBundleFragment) {
-		if (configInfo == null)
-			return ""; //$NON-NLS-1$
-
-		String configScript = "";//$NON-NLS-1$
-		if (!isBundleFragment && configInfo.getStartLevel() != BundleInfo.NO_LEVEL) {
-			configScript += "setStartLevel(startLevel:" + configInfo.getStartLevel() + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (!isBundleFragment && configInfo.isMarkedAsStarted()) {
-			configScript += "markStarted(started: true);"; //$NON-NLS-1$
-		}
-
-		if (configInfo.getSpecialConfigCommands() != null) {
-			configScript += configInfo.getSpecialConfigCommands();
-		}
-
-		return configScript;
-	}
-
-	private static String createDefaultBundleConfigScript(GeneratorBundleInfo configInfo) {
-		return createConfigScript(configInfo, false);
-	}
-
-	public static IInstallableUnit createDefaultBundleConfigurationUnit(GeneratorBundleInfo configInfo, GeneratorBundleInfo unconfigInfo, String configurationFlavor) {
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = createDefaultConfigUnitId(OSGI_BUNDLE_CLASSIFIER, configurationFlavor);
-		cu.setId(configUnitId);
-		Version configUnitVersion = new Version(1, 0, 0);
-		cu.setVersion(configUnitVersion);
-
-		// Add capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, configUnitVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		// Create a required capability on bundles
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_BUNDLE, VersionRange.emptyRange, null, false, true, false)};
-		cu.setHost(reqs);
-		Map touchpointData = new HashMap();
-
-		touchpointData.put("install", "installBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("uninstall", "uninstallBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("configure", createDefaultBundleConfigScript(configInfo)); //$NON-NLS-1$
-		touchpointData.put("unconfigure", createDefaultBundleUnconfigScript(unconfigInfo)); //$NON-NLS-1$
-
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	private static String createDefaultBundleUnconfigScript(GeneratorBundleInfo unconfigInfo) {
-		return createUnconfigScript(unconfigInfo, false);
-	}
-
-	public static String createDefaultConfigUnitId(String classifier, String configurationFlavor) {
-		return configurationFlavor + "." + classifier + ".default"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public static IInstallableUnit createDefaultFeatureConfigurationUnit(String configurationFlavor) {
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = createDefaultConfigUnitId(ECLIPSE_FEATURE_CLASSIFIER, configurationFlavor);
-		cu.setId(configUnitId);
-		Version configUnitVersion = new Version(1, 0, 0);
-		cu.setVersion(configUnitVersion);
-
-		// Add capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, configUnitVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		// Create a required capability on features
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_FEATURE, VersionRange.emptyRange, null, true, true, false)};
-		cu.setHost(reqs);
-
-		cu.setFilter(INSTALL_FEATURES_FILTER);
-		Map touchpointData = new HashMap();
-		touchpointData.put("install", "installFeature(feature:${artifact},featureId:default,featureVersion:default)"); //$NON-NLS-1$//$NON-NLS-2$
-		touchpointData.put("uninstall", "uninstallFeature(feature:${artifact},featureId:default,featureVersion:default)"); //$NON-NLS-1$//$NON-NLS-2$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	public static IInstallableUnit createDefaultConfigurationUnitForSourceBundles(String configurationFlavor) {
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = createDefaultConfigUnitId("source", configurationFlavor); //$NON-NLS-1$
-		cu.setId(configUnitId);
-		Version configUnitVersion = new Version(1, 0, 0);
-		cu.setVersion(configUnitVersion);
-
-		// Add capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, configUnitVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		// Create a required capability on source providers
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_SOURCE, VersionRange.emptyRange, null, true, true, false)};
-		cu.setHost(reqs);
-		Map touchpointData = new HashMap();
-
-		touchpointData.put("install", "addSourceBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("uninstall", "removeSourceBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	private static void addExtraProperties(IInstallableUnit iiu, Properties extraProperties) {
-		if (iiu instanceof InstallableUnit) {
-			InstallableUnit iu = (InstallableUnit) iiu;
-
-			for (Enumeration e = extraProperties.propertyNames(); e.hasMoreElements();) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-	}
-
-	public static IInstallableUnit[] createEclipseIU(BundleDescription bd, Map manifest, boolean isFolderPlugin, IArtifactKey key, Properties extraProperties) {
-		ArrayList iusCreated = new ArrayList(1);
-
-		IInstallableUnit iu = createBundleIU(bd, manifest, isFolderPlugin, key);
-		addExtraProperties(iu, extraProperties);
-		iusCreated.add(iu);
-
-		return (IInstallableUnit[]) (iusCreated.toArray(new IInstallableUnit[iusCreated.size()]));
-	}
-
-	public static IArtifactKey createFeatureArtifactKey(String fsn, String version) {
-		return new ArtifactKey(ECLIPSE_FEATURE_CLASSIFIER, fsn, new Version(version));
-	}
-
-	public static IInstallableUnit createFeatureJarIU(Feature feature, boolean isExploded) {
-		return createFeatureJarIU(feature, isExploded, null);
-	}
-
-	public static IInstallableUnit createFeatureJarIU(Feature feature, boolean isExploded, Properties extraProperties) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		String id = getTransformedId(feature.getId(), /*isPlugin*/false, /*isGroup*/false);
-		iu.setId(id);
-		Version version = new Version(feature.getVersion());
-		iu.setVersion(version);
-		iu.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, new VersionRange(new Version(0, 0, 0), true, new Version(feature.getVersion()), false), IUpdateDescriptor.NORMAL, null));
-		if (feature.getLicense() != null)
-			iu.setLicense(new License(feature.getLicenseURL(), feature.getLicense()));
-		if (feature.getCopyright() != null)
-			iu.setCopyright(new Copyright(feature.getCopyrightURL(), feature.getCopyright()));
-
-		// The required capabilities are not specified at this level because we don't want the feature jar to be attractive to install.
-
-		iu.setTouchpointType(TOUCHPOINT_OSGI);
-		iu.setFilter(INSTALL_FEATURES_FILTER);
-		iu.setSingleton(true);
-
-		if (feature.getInstallHandler() != null && feature.getInstallHandler().trim().length() > 0) {
-			String installHandlerProperty = "handler=" + feature.getInstallHandler(); //$NON-NLS-1$
-
-			if (feature.getInstallHandlerLibrary() != null)
-				installHandlerProperty += ", library=" + feature.getInstallHandlerLibrary(); //$NON-NLS-1$
-
-			if (feature.getInstallHandlerURL() != null)
-				installHandlerProperty += ", url=" + feature.getInstallHandlerURL(); //$NON-NLS-1$
-
-			iu.setProperty(ECLIPSE_INSTALL_HANDLER_PROP, installHandlerProperty);
-		}
-
-		iu.setCapabilities(new ProvidedCapability[] {createSelfCapability(id, version), FEATURE_CAPABILITY, MetadataFactory.createProvidedCapability(CAPABILITY_NS_UPDATE_FEATURE, feature.getId(), version)});
-		iu.setArtifacts(new IArtifactKey[] {createFeatureArtifactKey(feature.getId(), version.toString())});
-
-		if (isExploded) {
-			// Define the immutable metadata for this IU. In this case immutable means
-			// that this is something that will not impact the configuration.
-			Map touchpointData = new HashMap();
-			touchpointData.put("zipped", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-			iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		}
-
-		if (extraProperties != null) {
-			Enumeration e = extraProperties.propertyNames();
-			while (e.hasMoreElements()) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	public static IInstallableUnit createGroupIU(Feature feature, IInstallableUnit featureIU) {
-		return createGroupIU(feature, featureIU, null);
-	}
-
-	public static IInstallableUnit createGroupIU(Feature feature, IInstallableUnit featureIU, Properties extraProperties) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		String id = getTransformedId(feature.getId(), /*isPlugin*/false, /*isGroup*/true);
-		iu.setId(id);
-		Version version = new Version(feature.getVersion());
-		iu.setVersion(version);
-		iu.setProperty(IInstallableUnit.PROP_NAME, feature.getLabel());
-		if (feature.getLicense() != null)
-			iu.setLicense(new License(feature.getLicenseURL(), feature.getLicense()));
-		if (feature.getCopyright() != null)
-			iu.setCopyright(new Copyright(feature.getCopyrightURL(), feature.getCopyright()));
-		iu.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, new VersionRange(new Version(0, 0, 0), true, new Version(feature.getVersion()), false), IUpdateDescriptor.NORMAL, null));
-
-		FeatureEntry entries[] = feature.getEntries();
-		RequiredCapability[] required = new RequiredCapability[entries.length + 1];
-		for (int i = 0; i < entries.length; i++) {
-			VersionRange range = getVersionRange(entries[i]);
-			required[i] = MetadataFactory.createRequiredCapability(IU_NAMESPACE, getTransformedId(entries[i].getId(), entries[i].isPlugin(), /*isGroup*/true), range, getFilter(entries[i]), entries[i].isOptional(), false);
-		}
-		required[entries.length] = MetadataFactory.createRequiredCapability(IU_NAMESPACE, featureIU.getId(), new VersionRange(featureIU.getVersion(), true, featureIU.getVersion(), true), INSTALL_FEATURES_FILTER, false, false);
-		iu.setRequiredCapabilities(required);
-		iu.setTouchpointType(TouchpointType.NONE);
-		iu.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString());
-		// TODO: shouldn't the filter for the group be constructed from os, ws, arch, nl
-		// 		 of the feature?
-		// iu.setFilter(filter);
-		iu.setCapabilities(new ProvidedCapability[] {createSelfCapability(id, version)});
-
-		if (extraProperties != null) {
-			Enumeration e = extraProperties.propertyNames();
-			while (e.hasMoreElements()) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	/**
-	 * Creates IUs and artifact descriptors for the JRE.  The resulting IUs are added
-	 * to the given set, and the resulting artifact descriptor, if any, is returned.
-	 * If the jreLocation is <code>null</code>, default information is generated.
-	 */
-	public static IArtifactDescriptor createJREData(File jreLocation, Set resultantIUs) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(false);
-		String id = "a.jre"; //$NON-NLS-1$
-		Version version = DEFAULT_JRE_VERSION;
-		iu.setId(id);
-		iu.setVersion(version);
-		iu.setTouchpointType(TOUCHPOINT_NATIVE);
-
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configId = "config." + id;//$NON-NLS-1$
-		cu.setId(configId);
-		cu.setVersion(version);
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, id, new VersionRange(version, true, versionMax, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configId, version)});
-		cu.setTouchpointType(TOUCHPOINT_NATIVE);
-		Map touchpointData = new HashMap();
-
-		if (jreLocation == null || !jreLocation.exists()) {
-			//set some reasonable defaults
-			iu.setVersion(version);
-			iu.setCapabilities(generateJRECapability(id, version, null));
-			resultantIUs.add(MetadataFactory.createInstallableUnit(iu));
-
-			touchpointData.put("install", ""); //$NON-NLS-1$ //$NON-NLS-2$
-			cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-			resultantIUs.add(MetadataFactory.createInstallableUnit(cu));
-			return null;
-		}
-		generateJREIUData(iu, id, version, jreLocation);
-
-		//Generate artifact for JRE
-		IArtifactKey key = new ArtifactKey(BINARY_ARTIFACT_CLASSIFIER, id, version);
-		iu.setArtifacts(new IArtifactKey[] {key});
-		resultantIUs.add(MetadataFactory.createInstallableUnit(iu));
-
-		//Create config info for the CU
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		resultantIUs.add(MetadataFactory.createInstallableUnit(cu));
-
-		//Create the artifact descriptor
-		return createArtifactDescriptor(key, jreLocation, false, true);
-	}
-
-	public static ArtifactKey createLauncherArtifactKey(String id, Version version) {
-		return new ArtifactKey(BINARY_ARTIFACT_CLASSIFIER, id, version);
-	}
-
-	/**
-	 * Creates IUs and artifacts for the Launcher executable. The resulting IUs are added
-	 * to the given set, and the resulting artifact descriptor is returned.
-	 */
-	public static IArtifactDescriptor createLauncherIU(File launcher, String configurationFlavor, Set resultantIUs) {
-		if (launcher == null || !launcher.exists())
-			return null;
-
-		//Create the IU
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(true);
-		String launcherId = LAUNCHER_ID_PREFIX + '_' + launcher.getName();
-		iu.setId(launcherId);
-		iu.setVersion(LAUNCHER_VERSION);
-
-		IArtifactKey key = createLauncherArtifactKey(launcherId, LAUNCHER_VERSION);
-		iu.setArtifacts(new IArtifactKey[] {key});
-		iu.setCapabilities(new ProvidedCapability[] {createSelfCapability(launcherId, LAUNCHER_VERSION)});
-		iu.setTouchpointType(TOUCHPOINT_NATIVE);
-		resultantIUs.add(MetadataFactory.createInstallableUnit(iu));
-
-		//Create the CU
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = configurationFlavor + launcherId;
-		cu.setId(configUnitId);
-		cu.setVersion(LAUNCHER_VERSION);
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, launcherId, new VersionRange(LAUNCHER_VERSION, true, versionMax, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, LAUNCHER_VERSION)});
-		cu.setTouchpointType(TOUCHPOINT_NATIVE);
-		Map touchpointData = new HashMap();
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(Activator.getContext(), EnvironmentInfo.class.getName());
-		if (!info.getOS().equals(org.eclipse.osgi.service.environment.Constants.OS_WIN32)) {
-			if (info.getOS().equals(org.eclipse.osgi.service.environment.Constants.OS_MACOSX)) {
-				configurationData += " chmod(targetDir:${installFolder}/Eclipse.app/Contents/MacOS, targetFile:eclipse, permissions:755);"; //$NON-NLS-1$
-				generateLauncherSetter("Eclipse", launcherId, LAUNCHER_VERSION, "macosx", null, null, resultantIUs);
-			} else
-				configurationData += " chmod(targetDir:${installFolder}, targetFile:" + launcher.getName() + ", permissions:755);"; //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			generateLauncherSetter("eclipse", launcherId, LAUNCHER_VERSION, "win32", null, null, resultantIUs);
-		}
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		resultantIUs.add(MetadataFactory.createInstallableUnitFragment(cu));
-
-		//Create the artifact descriptor
-		return createArtifactDescriptor(key, launcher, false, true);
-	}
-
-	public static void generateLauncherSetter(String launcherName, String iuId, Version version, String os, String ws, String arch, Set result) {
-		InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription();
-		iud.setId(iuId + '.' + launcherName);
-		iud.setVersion(version);
-		iud.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_OSGI);
-
-		if (os != null || ws != null || arch != null) {
-			String filterOs = os != null ? "(os=" + os + ")" : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			String filterWs = ws != null ? "(ws=" + ws + ")" : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			String filterArch = arch != null ? "(arch=" + arch + ")" : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			iud.setFilter("(& " + filterOs + filterWs + filterArch + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		Map touchpointData = new HashMap();
-		touchpointData.put("configure", "setLauncherName(name:" + launcherName + ")");
-		touchpointData.put("unconfigure", "setLauncherName()");
-		iud.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		result.add(MetadataFactory.createInstallableUnit(iud));
-	}
-
-	public static ProvidedCapability createSelfCapability(String installableUnitId, Version installableUnitVersion) {
-		return MetadataFactory.createProvidedCapability(IU_NAMESPACE, installableUnitId, installableUnitVersion);
-	}
-
-	private static String createUnconfigScript(GeneratorBundleInfo unconfigInfo, boolean isBundleFragment) {
-		if (unconfigInfo == null)
-			return ""; //$NON-NLS-1$
-		String unconfigScript = "";//$NON-NLS-1$
-		if (!isBundleFragment && unconfigInfo.getStartLevel() != BundleInfo.NO_LEVEL) {
-			unconfigScript += "setStartLevel(startLevel:" + BundleInfo.NO_LEVEL + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (!isBundleFragment && unconfigInfo.isMarkedAsStarted()) {
-			unconfigScript += "markStarted(started: false);"; //$NON-NLS-1$
-		}
-
-		if (unconfigInfo.getSpecialUnconfigCommands() != null) {
-			unconfigScript += unconfigInfo.getSpecialUnconfigCommands();
-		}
-		return unconfigScript;
-
-	}
-
-	private static ProvidedCapability[] generateJRECapability(String installableUnitId, Version installableUnitVersion, InputStream profileStream) {
-		if (profileStream == null) {
-			//use the 1.6 profile stored in the generator bundle
-			try {
-				profileStream = Activator.getContext().getBundle().getEntry("JavaSE-1.6.profile").openStream(); //$NON-NLS-1$
-			} catch (IOException e) {
-				throw new RuntimeException(e);
-			}
-		}
-		Properties p = new Properties();
-		try {
-			p.load(profileStream);
-			ManifestElement[] jrePackages = ManifestElement.parseHeader("org.osgi.framework.system.packages", (String) p.get("org.osgi.framework.system.packages")); //$NON-NLS-1$ //$NON-NLS-2$
-			ProvidedCapability[] exportedPackageAsCapabilities = new ProvidedCapability[jrePackages.length + 1];
-			exportedPackageAsCapabilities[0] = createSelfCapability(installableUnitId, installableUnitVersion);
-			for (int i = 1; i <= jrePackages.length; i++) {
-				exportedPackageAsCapabilities[i] = MetadataFactory.createProvidedCapability(CAPABILITY_NS_JAVA_PACKAGE, jrePackages[i - 1].getValue(), null);
-			}
-			return exportedPackageAsCapabilities;
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (BundleException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			if (profileStream != null) {
-				try {
-					profileStream.close();
-				} catch (IOException e) {
-					//ignore secondary failure
-				}
-			}
-		}
-		return new ProvidedCapability[0];
-	}
-
-	private static void generateJREIUData(InstallableUnitDescription iu, String installableUnitId, Version installableUnitVersion, File jreLocation) {
-		//Look for a JRE profile file to set version and capabilities
-		File[] profiles = jreLocation.listFiles(new FileFilter() {
-			public boolean accept(File pathname) {
-				return pathname.getAbsolutePath().endsWith(".profile"); //$NON-NLS-1$
-			}
-		});
-		if (profiles.length != 1) {
-			iu.setVersion(DEFAULT_JRE_VERSION);
-			iu.setCapabilities(generateJRECapability(installableUnitId, installableUnitVersion, null));
-			return;
-		}
-		String profileName = profiles[0].getAbsolutePath().substring(profiles[0].getAbsolutePath().lastIndexOf('/'));
-		Version version = DEFAULT_JRE_VERSION;
-		//TODO Find a better way to determine JRE version
-		if (profileName.indexOf("1.6") > 0) { //$NON-NLS-1$
-			version = new Version("1.6"); //$NON-NLS-1$
-		} else if (profileName.indexOf("1.5") > 0) { //$NON-NLS-1$
-			version = new Version("1.5"); //$NON-NLS-1$
-		} else if (profileName.indexOf("1.4") > 0) { //$NON-NLS-1$
-			version = new Version("1.4"); //$NON-NLS-1$
-		}
-		iu.setVersion(version);
-		try {
-			iu.setCapabilities(generateJRECapability(installableUnitId, installableUnitVersion, new FileInputStream(profiles[0])));
-		} catch (FileNotFoundException e) {
-			//Shouldn't happen, but ignore and fall through to use default
-		}
-	}
-
-	public static String getFilter(FeatureEntry entry) {
-		StringBuffer result = new StringBuffer();
-		result.append("(&"); //$NON-NLS-1$
-		if (entry.getFilter() != null)
-			result.append(entry.getFilter());
-		if (entry.getOS() != null)
-			result.append("(osgi.os=" + entry.getOS() + ')');//$NON-NLS-1$
-		if (entry.getWS() != null)
-			result.append("(osgi.ws=" + entry.getWS() + ')');//$NON-NLS-1$
-		if (entry.getArch() != null)
-			result.append("(osgi.arch=" + entry.getArch() + ')');//$NON-NLS-1$
-		if (entry.getNL() != null)
-			result.append("(osgi.nl=" + entry.getNL() + ')');//$NON-NLS-1$
-		if (result.length() == 2)
-			return null;
-		result.append(')');
-		return result.toString();
-	}
-
-	public static String getTransformedId(String original, boolean isPlugin, boolean isGroup) {
-		return (isPlugin ? original : original + (isGroup ? ".feature.group" : ".feature.jar")); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	public static VersionRange getVersionRange(FeatureEntry entry) {
-		String versionSpec = entry.getVersion();
-		if (versionSpec == null)
-			// TODO should really be returning VersionRange.emptyRange here...
-			return null;
-		Version version = new Version(versionSpec);
-		if (!entry.isRequires()) {
-			if ("0.0.0".equals(entry.getVersion())) //$NON-NLS-1$
-				return VersionRange.emptyRange;
-			return new VersionRange(version, true, version, true);
-		}
-		String match = entry.getMatch();
-		if (match == null)
-			// TODO should really be returning VersionRange.emptyRange here...
-			return null;
-		if (match.equals("perfect")) //$NON-NLS-1$
-			return new VersionRange(version, true, version, true);
-		if (match.equals("equivalent")) { //$NON-NLS-1$
-			Version upper = new Version(version.getMajor(), version.getMinor() + 1, 0);
-			return new VersionRange(version, true, upper, false);
-		}
-		if (match.equals("compatible")) { //$NON-NLS-1$
-			Version upper = new Version(version.getMajor() + 1, 0, 0);
-			return new VersionRange(version, true, upper, false);
-		}
-		if (match.equals("greaterOrEqual")) //$NON-NLS-1$
-			return new VersionRange(version, true, new VersionRange(null).getMaximum(), true);
-		return null;
-	}
-
-	private static boolean isOptional(ImportPackageSpecification importedPackage) {
-		if (importedPackage.getDirective(Constants.RESOLUTION_DIRECTIVE).equals(ImportPackageSpecification.RESOLUTION_DYNAMIC) || importedPackage.getDirective(Constants.RESOLUTION_DIRECTIVE).equals(ImportPackageSpecification.RESOLUTION_OPTIONAL))
-			return true;
-		return false;
-	}
-
-	private static String toManifestString(Map p) {
-		if (p == null)
-			return null;
-		Collection properties = p.entrySet();
-		StringBuffer result = new StringBuffer();
-		for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
-			Map.Entry aProperty = (Map.Entry) iterator.next();
-			if (aProperty.getKey().equals(BundleDescriptionFactory.BUNDLE_FILE_KEY))
-				continue;
-			result.append(aProperty.getKey()).append(": ").append(aProperty.getValue()).append('\n'); //$NON-NLS-1$
-		}
-		return result.toString();
-	}
-
-	// Return a map from locale to property set for the manifest localizations
-	// from the given bundle directory and given bundle localization path/name
-	// manifest property value.
-	private static Map getManifestLocalizations(Map manifest, File bundleLocation) {
-		Map localizations;
-		Locale defaultLocale = null; // = Locale.ENGLISH; // TODO: get this from GeneratorInfo
-		String[] bundleManifestValues = getManifestCachedValues(manifest);
-		String bundleLocalization = bundleManifestValues[BUNDLE_LOCALIZATION_INDEX];
-
-		if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && //$NON-NLS-1$
-				bundleLocation.isFile()) {
-			localizations = getJarManifestLocalization(bundleLocation, bundleLocalization, defaultLocale, bundleManifestValues);
-		} else {
-			localizations = getDirManifestLocalization(bundleLocation, bundleLocalization, defaultLocale, bundleManifestValues);
-		}
-
-		return localizations;
-	}
-
-	public static String[] getManifestCachedValues(Map manifest) {
-		String[] cachedValues = new String[BUNDLE_LOCALIZED_PROPERTIES.length + 1];
-		for (int j = 0; j < MetadataGeneratorHelper.BUNDLE_LOCALIZED_PROPERTIES.length; j++) {
-			String value = (String) manifest.get(BUNDLE_LOCALIZED_PROPERTIES[j]);
-			if (value != null && value.length() > 1 && value.charAt(0) == '%') {
-				cachedValues[j] = value.substring(1);
-			}
-		}
-		String localizationFile = (String) manifest.get(org.osgi.framework.Constants.BUNDLE_LOCALIZATION);
-		cachedValues[BUNDLE_LOCALIZATION_INDEX] = (localizationFile != null ? localizationFile : DEFAULT_BUNDLE_LOCALIZATION);
-		return cachedValues;
-	}
-
-	// Return a map from locale to property set for the manifest localizations
-	// from the given bundle directory and given bundle localization path/name
-	// manifest property value.
-	public static Map getHostLocalizations(File bundleLocation, String[] hostBundleManifestValues) {
-		Map localizations;
-		Locale defaultLocale = null; // = Locale.ENGLISH; // TODO: get this from GeneratorInfo
-		String hostBundleLocalization = hostBundleManifestValues[BUNDLE_LOCALIZATION_INDEX];
-
-		if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && //$NON-NLS-1$
-				bundleLocation.isFile()) {
-			localizations = getJarManifestLocalization(bundleLocation, hostBundleLocalization, defaultLocale, hostBundleManifestValues);
-		} else {
-			localizations = getDirManifestLocalization(bundleLocation, hostBundleLocalization, defaultLocale, hostBundleManifestValues);
-		}
-
-		return localizations;
-	}
-
-	private static Map getJarManifestLocalization(File bundleLocation, String bundleLocalization, Locale defaultLocale, String[] bundleManifestValues) {
-		ZipFile jarFile = null;
-		Map localizations = new HashMap(4);
-		try {
-			jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-			for (Enumeration entries = jarFile.entries(); entries.hasMoreElements();) {
-				ZipEntry nextEntry = (ZipEntry) entries.nextElement();
-				String nextName = nextEntry.getName();
-				String localeString = getLocaleString(nextName, bundleLocalization);
-
-				if (!nextEntry.isDirectory() && localeString != null) {
-					Locale nextLocale = getLocale(localeString);
-					InputStream stream = null;
-					try {
-						stream = jarFile.getInputStream(nextEntry);
-						Properties properties = new Properties();
-						properties.load(stream);
-						Properties localizedStrings = getLocalizedProperties(bundleManifestValues, properties);
-						if (localizedStrings.size() > 0) {
-							localizations.put(nextLocale, localizedStrings);
-							if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-								localizations.put(nextLocale, localizedStrings);
-							}
-						}
-					} finally {
-						if (stream != null)
-							stream.close();
-					}
-				}
-			}
-		} catch (IOException ioe) {
-			ioe.printStackTrace();
-		} finally {
-			if (jarFile != null) {
-				try {
-					jarFile.close();
-				} catch (IOException ioe) {
-					// do nothing
-				}
-			}
-		}
-
-		return localizations;
-	}
-
-	private static Map getDirManifestLocalization(File bundleLocation, String bundleLocalization, Locale defaultLocale, String[] hostBundleManifestValues) {
-		File localizationPath = new File(bundleLocation, bundleLocalization);
-		File localizationDir = localizationPath.getParentFile();
-		final String localizationFile = localizationPath.getName();
-		MetadataGeneratorHelper foo = new MetadataGeneratorHelper();
-		String[] localizationFiles = localizationDir.list(foo.new LocalizationFileFilter() {
-			public boolean accept(File directory, String filename) {
-				return (getLocaleString(filename, localizationFile) != null ? true : false);
-			}
-		});
-
-		HashMap localizations = null;
-
-		if (localizationFiles != null) {
-			localizations = new HashMap(localizationFiles.length);
-			for (int i = 0; i < localizationFiles.length; i++) {
-				String nextFile = localizationFiles[i];
-				Locale nextLocale = getLocale(getLocaleString(nextFile, localizationFile));
-
-				try {
-					Properties properties = loadProperties(bundleLocation, nextFile);
-					Properties localizedStrings = getLocalizedProperties(hostBundleManifestValues, properties);
-					if (localizedStrings.size() > 0) {
-						localizations.put(nextLocale, localizedStrings);
-						if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-							localizations.put(nextLocale, localizedStrings);
-						}
-					}
-				} catch (IOException ioe) {
-					ioe.printStackTrace();
-				}
-			}
-		}
-
-		return localizations;
-	}
-
-	private abstract class LocalizationFileFilter implements FilenameFilter {
-
-		public LocalizationFileFilter() {
-			// Nothing to do
-		}
-
-		/* (non-Javadoc)
-		 * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
-		 */
-		public abstract boolean accept(File directory, String filename);
-	}
-
-	static public String getLocaleString(String filename, String filenamePrefix) {
-		String localeString = null;
-		if (filename.startsWith(filenamePrefix) && filename.endsWith(PROPERTIES_FILE_EXTENSION)) {
-			if (filename.length() > filenamePrefix.length() + PROPERTIES_FILE_EXTENSION.length()) {
-				localeString = filename.substring(filenamePrefix.length() + 1, filename.length() - PROPERTIES_FILE_EXTENSION.length());
-			} else {
-				localeString = ""; //$NON-NLS-1$
-			}
-		}
-		return localeString;
-	}
-
-	private static Properties loadProperties(File bundleLocation, String localizationFile) throws IOException {
-		Properties result = new Properties();
-		InputStream propertyStream = null;
-		try {
-			try {
-				if (bundleLocation.isDirectory())
-					propertyStream = new FileInputStream(new File(bundleLocation, localizationFile));
-				else {
-					URLConnection connection = new URL("jar:" + bundleLocation.toURL().toExternalForm() + "!/" + localizationFile).openConnection(); //$NON-NLS-1$ //$NON-NLS-2$
-					connection.setUseCaches(false);
-					propertyStream = connection.getInputStream();
-				}
-			} catch (FileNotFoundException e) {
-				// if there is no messages file then just return;
-				return result;
-			}
-			result.load(propertyStream);
-		} finally {
-			if (propertyStream != null)
-				propertyStream.close();
-		}
-		return result;
-	}
-
-	static private Locale getLocale(String localeString) {
-		Locale locale = DEFAULT_LOCALE;
-		if (localeString.length() == 5 && localeString.indexOf('_') == 2) {
-			locale = new Locale(localeString.substring(0, 2), localeString.substring(3, 5));
-		} else if (localeString.length() == 2) {
-			locale = new Locale(localeString.substring(0, 2));
-		}
-		return locale;
-	}
-
-	static private Properties getLocalizedProperties(String[] bundleManifestKeys, Properties properties) {
-		Properties localizedProperties = new Properties();
-		for (int i = 0; i < BUNDLE_LOCALIZED_PROPERTIES.length; i++) {
-			String key = bundleManifestKeys[i];
-			if (key != null) {
-				String localizedValue = properties.getProperty(key);
-				if (localizedValue != null)
-					localizedProperties.put(key, localizedValue);
-			}
-		}
-		return localizedProperties;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/URLEntry.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/URLEntry.java
deleted file mode 100644
index 8e928f6..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/URLEntry.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.provisional.p2.metadata.generator;
-
-public class URLEntry {
-	private String annotation;
-	private String url;
-
-	public URLEntry() {
-	}
-
-	public URLEntry(String url, String annotation) {
-		this.url = url;
-		this.annotation = annotation;
-	}
-
-	public void setAnnotation(String annotation) {
-		this.annotation = annotation;
-	}
-
-	public String getAnnotation() {
-		return annotation;
-	}
-
-	public void setURL(String url) {
-		this.url = url;
-	}
-
-	public String getURL() {
-		return url;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java
deleted file mode 100644
index ffe35cc..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.ant;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.eclipse.equinox.internal.p2.metadata.generator.EclipseGeneratorApplication;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.EclipseInstallGeneratorInfoProvider;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Generator.GeneratorResult;
-
-/**
- * An Ant task to call the p2 Metadata Generator application.
- * 
- * @since 1.0
- */
-public class GeneratorTask extends Task {
-
-	protected EclipseInstallGeneratorInfoProvider provider = null;
-	protected EclipseGeneratorApplication generator = null;
-
-	static private GeneratorResult result;
-	private String mode;
-
-	/* (non-Javadoc)
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		try {
-			if ("incremental".equals(mode)) { //$NON-NLS-1$
-				if (result == null)
-					result = new GeneratorResult();
-				generator.setIncrementalResult(result);
-				generator.setGeneratorRootIU(false);
-			} else if ("final".equals(mode) && result != null) { //$NON-NLS-1$
-				generator.setIncrementalResult(result);
-				generator.setGeneratorRootIU(true);
-			}
-
-			generator.run(provider);
-
-			if (!"incremental".equals(mode)) { //$NON-NLS-1$
-				provider = null;
-				generator = null;
-				result = null;
-			}
-		} catch (Exception e) {
-			throw new BuildException(TaskMessages.exception_errorOccurredCallingGenerator, e);
-		}
-	}
-
-	public void setAppend(String value) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setAppend(Boolean.valueOf(value).booleanValue());
-	}
-
-	public void setArtifactRepository(String location) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setArtifactLocation(location);
-	}
-
-	public void setBase(String value) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setBase(value);
-	}
-
-	public void setBundles(String value) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setBundles(value);
-	}
-
-	public void setCompress(String value) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setCompress(value);
-	}
-
-	public void setConfig(String value) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setOperation("-config", value); //$NON-NLS-1$
-	}
-
-	public void setInplace(String value) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setOperation("-inplace", value); //$NON-NLS-1$
-	}
-
-	public void setSource(String location) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setOperation("-source", location); //$NON-NLS-1$
-	}
-
-	public void setUpdateSite(String value) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setOperation("-update", value); //$NON-NLS-1$
-	}
-
-	public void setExe(String value) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setExecutableLocation(value);
-	}
-
-	public void setFeatures(String value) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setFeatures(value);
-	}
-
-	public void setFlavor(String flavor) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setFlavor(flavor);
-	}
-
-	public void setLauncherConfig(String launcherConfig) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setLauncherConfig(launcherConfig);
-	}
-
-	public void setMetadataRepository(String location) {
-		if (generator == null)
-			generator = new EclipseGeneratorApplication();
-		generator.setMetadataLocation(location);
-	}
-
-	public void setNoDefaultIUs(String value) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setAddDefaultIUs(!Boolean.valueOf(value).booleanValue());
-	}
-
-	public void setP2OS(String value) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setOS(value);
-	}
-
-	public void setProductFile(String file) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setProductFile(file);
-	}
-
-	public void setPublishArtifactRepository(String value) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setPublishArtifactRepository(Boolean.valueOf(value).booleanValue());
-	}
-
-	public void setPublishArtifacts(String value) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setPublishArtifacts(Boolean.valueOf(value).booleanValue());
-	}
-
-	public void setRoot(String root) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setRootId(root);
-	}
-
-	public void setRootVersion(String rootVersion) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setRootVersion(rootVersion);
-	}
-
-	public void setMode(String mode) {
-		this.mode = mode;
-	}
-
-	public void setVersionAdvice(String advice) {
-		if (provider == null)
-			provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setVersionAdvice(advice);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java b/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java
deleted file mode 100644
index 77e7103..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.ant;
-
-import org.eclipse.osgi.util.NLS;
-
-public class TaskMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.metadata.generator.ant.messages";//$NON-NLS-1$
-
-	public static String exception_errorOccurredCallingGenerator;
-	public static String exception_errorArtifactRepo;
-	public static String exception_errorMetadataRepo;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, TaskMessages.class);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties b/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties
deleted file mode 100644
index 2c2eb1c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.generator/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-exception_errorOccurredCallingGenerator = An error occurred when calling generator.
-exception_errorArtifactRepo = Error setting artifact repository {0}.
-exception_errorMetadataRepo = Error setting metadata repository {0}.
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/.classpath b/bundles/org.eclipse.equinox.p2.metadata.repository/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/.project b/bundles/org.eclipse.equinox.p2.metadata.repository/.project
deleted file mode 100644
index d382ba8..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.metadata.repository</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 904df31..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,329 +0,0 @@
-#Fri Feb 22 11:22:59 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 6b7580c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:22 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.metadata.repository/META-INF/MANIFEST.MF
deleted file mode 100644
index 07dd76c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,39 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.metadata.repository;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Export-Package: org.eclipse.equinox.internal.p2.metadata.repository;x-friends:="org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.engine",
- org.eclipse.equinox.internal.p2.metadata.repository.io;x-friends:="org.eclipse.equinox.p2.engine",
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository
-Import-Package: org.eclipse.core.runtime.preferences,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.p2.persistence,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.eventbus,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.core.repository,
- org.eclipse.osgi.service.datalocation;version="1.0.0",
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.prefs;version="1.1.0",
- org.xml.sax
-Bundle-Activator: org.eclipse.equinox.internal.p2.metadata.repository.Activator
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.equinox.registry,
- org.eclipse.ecf;bundle-version="1.2.0",
- org.eclipse.ecf.filetransfer;bundle-version="2.0.0",
- org.eclipse.osgi;bundle-version="3.4.0"
-Eclipse-BuddyPolicy: registered
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/about.html b/bundles/org.eclipse.equinox.p2.metadata.repository/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/build.properties b/bundles/org.eclipse.equinox.p2.metadata.repository/build.properties
deleted file mode 100644
index 3eeba16..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.xml,\
-               plugin.properties
-src.includes = about.html,\
-               schema/
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/plugin.properties b/bundles/org.eclipse.equinox.p2.metadata.repository/plugin.properties
deleted file mode 100644
index 44b0907..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Metadata Repository
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/plugin.xml b/bundles/org.eclipse.equinox.p2.metadata.repository/plugin.xml
deleted file mode 100644
index 468b603..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/plugin.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension-point id="metadataRepositories" name="Metadata Repositories" schema="schema/metadataRepositories.exsd"/>
-   <extension id="simpleRepository"  point="org.eclipse.equinox.p2.metadata.repository.metadataRepositories">
-		<filter suffix="content.xml"/>
-		<factory class="org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.SimpleMetadataRepositoryFactory"/>
-   </extension>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/schema/metadataRepositories.exsd b/bundles/org.eclipse.equinox.p2.metadata.repository/schema/metadataRepositories.exsd
deleted file mode 100644
index 0612390..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/schema/metadataRepositories.exsd
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.equinox.p2.metadata.repository">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.equinox.p2.metadata.repository" id="metadataRepositories" name="Metadata Repositories"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to provide artifact repository implementations
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="factory"/>
-            <element ref="filter" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the fully-qualified name of a class which implements 
-&lt;samp&gt;org.eclipse.equinox.p2.artifact.repository.IArtifactRepository&lt;/samp&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.equinox.p2.artifact.repository.IArtifactRepository"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="filter">
-      <complexType>
-         <attribute name="suffix" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         org.eclipse.equinox.p2.artifact.repository 0.1.0
-      </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>
-         The value of the class attribute must represent an 
-implementor of &lt;tt&gt;org.eclipse.equinox.p2.artifact.repository.IArtifactRepository&lt;/tt&gt;
-      </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>
-         Copyright (c) 2007 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which 
-accompanies this distribution, and is available at &lt;a 
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Activator.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Activator.java
deleted file mode 100644
index aa39c9c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Activator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	public static final String ID = "org.eclipse.equinox.p2.metadata.repository"; //$NON-NLS-1$
-	public static final String REPO_PROVIDER_XPT = ID + '.' + "metadataRepositories"; //$NON-NLS-1$
-	private static BundleContext bundleContext;
-
-	public static BundleContext getContext() {
-		return bundleContext;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.bundleContext = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		Activator.bundleContext = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/ECFMetadataTransport.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/ECFMetadataTransport.java
deleted file mode 100644
index 6ef5db4..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/ECFMetadataTransport.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import org.eclipse.core.runtime.*;
-import org.eclipse.ecf.core.*;
-import org.eclipse.ecf.filetransfer.*;
-import org.eclipse.ecf.filetransfer.events.*;
-import org.eclipse.ecf.filetransfer.identity.FileCreateException;
-import org.eclipse.ecf.filetransfer.identity.FileIDFactory;
-import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class ECFMetadataTransport {
-
-	/**
-	 * The singleton transport instance.
-	 */
-	private static ECFMetadataTransport instance;
-
-	private final ServiceTracker retrievalFactoryTracker;
-
-	public static synchronized ECFMetadataTransport getInstance() {
-		if (instance == null) {
-			instance = new ECFMetadataTransport();
-		}
-		return instance;
-	}
-
-	private ECFMetadataTransport() {
-		retrievalFactoryTracker = new ServiceTracker(Activator.getContext(), IRetrieveFileTransferFactory.class.getName(), null);
-		retrievalFactoryTracker.open();
-	}
-
-	public IStatus download(String toDownload, OutputStream target, IProgressMonitor monitor) {
-		IRetrieveFileTransferFactory factory = (IRetrieveFileTransferFactory) retrievalFactoryTracker.getService();
-		if (factory == null)
-			return new Status(IStatus.ERROR, Activator.ID, "ECF Transfer manager not available");
-
-		return transfer(factory.newInstance(), toDownload, target, monitor);
-	}
-
-	/**
-	 * Gets the last modified date for the specified file.
-	 * @param location - The URL location of the file.
-	 * @return A <code>long</code> representing the date. Returns <code>0</code> if the file is not found or an error occurred.
-	 */
-	public long getLastModified(String location) {
-		IContainer container;
-		try {
-			container = ContainerFactory.getDefault().createContainer();
-		} catch (ContainerCreateException e) {
-			return 0;
-		}
-		IRemoteFileSystemBrowserContainerAdapter adapter = (IRemoteFileSystemBrowserContainerAdapter) container.getAdapter(IRemoteFileSystemBrowserContainerAdapter.class);
-		if (adapter == null) {
-			return 0;
-		}
-		IRemoteFile remoteFile = checkFile(adapter, location);
-		if (remoteFile == null) {
-			return 0;
-		}
-		return remoteFile.getInfo().getLastModified();
-	}
-
-	private IRemoteFile checkFile(final IRemoteFileSystemBrowserContainerAdapter retrievalContainer, final String location) {
-		final Object[] result = new Object[1];
-		final Boolean[] done = new Boolean[1];
-		done[0] = new Boolean(false);
-		IRemoteFileSystemListener listener = new IRemoteFileSystemListener() {
-			public void handleRemoteFileEvent(IRemoteFileSystemEvent event) {
-				if (event instanceof IRemoteFileSystemBrowseEvent) {
-					IRemoteFileSystemBrowseEvent fsbe = (IRemoteFileSystemBrowseEvent) event;
-					IRemoteFile[] remoteFiles = fsbe.getRemoteFiles();
-					if (remoteFiles != null && remoteFiles.length > 0) {
-						synchronized (result) {
-							result[0] = remoteFiles[0];
-							done[0] = new Boolean(true);
-							result.notify();
-						}
-					} else {
-						synchronized (result) {
-							result[0] = null;
-							done[0] = new Boolean(true);
-							result.notify();
-						}
-					}
-				}
-			}
-		};
-		try {
-			retrievalContainer.sendBrowseRequest(FileIDFactory.getDefault().createFileID(retrievalContainer.getBrowseNamespace(), location), listener);
-		} catch (RemoteFileSystemException e) {
-			return null;
-		} catch (FileCreateException e) {
-			return null;
-		}
-		synchronized (result) {
-			while (!done[0].booleanValue()) {
-				boolean logged = false;
-				try {
-					result.wait();
-				} catch (InterruptedException e) {
-					if (!logged)
-						LogHelper.log(new Status(IStatus.WARNING, Activator.ID, "Unexpected interrupt while waiting on ECF browse", e)); //$NON-NLS-1$
-				}
-			}
-		}
-		return (IRemoteFile) result[0];
-	}
-
-	private IStatus transfer(final IRetrieveFileTransferContainerAdapter retrievalContainer, final String toDownload, final OutputStream target, final IProgressMonitor monitor) {
-		final IStatus[] result = new IStatus[1];
-		IFileTransferListener listener = new IFileTransferListener() {
-
-			public void handleTransferEvent(IFileTransferEvent event) {
-				if (event instanceof IIncomingFileTransferReceiveStartEvent) {
-					IIncomingFileTransferReceiveStartEvent rse = (IIncomingFileTransferReceiveStartEvent) event;
-					if (target != null) {
-						try {
-							rse.receive(target);
-						} catch (IOException e) {
-							IStatus status = convertToStatus(e);
-							synchronized (result) {
-								result[0] = status;
-								result.notify();
-							}
-						}
-					}
-				}
-				if (event instanceof IIncomingFileTransferReceiveDataEvent) {
-					IIncomingFileTransfer source = ((IIncomingFileTransferReceiveDataEvent) event).getSource();
-					if (monitor != null) {
-						if (monitor.isCanceled())
-							source.cancel();
-					}
-				}
-				if (event instanceof IIncomingFileTransferReceiveDoneEvent) {
-					IStatus status = convertToStatus(((IIncomingFileTransferReceiveDoneEvent) event).getException());
-					synchronized (result) {
-						result[0] = status;
-						result.notify();
-					}
-				}
-			}
-		};
-
-		try {
-			retrievalContainer.sendRetrieveRequest(FileIDFactory.getDefault().createFileID(retrievalContainer.getRetrieveNamespace(), toDownload), listener, null);
-		} catch (IncomingFileTransferException e) {
-			return e.getStatus();
-		} catch (FileCreateException e) {
-			return e.getStatus();
-		}
-		synchronized (result) {
-			while (result[0] == null) {
-				boolean logged = false;
-				try {
-					result.wait();
-				} catch (InterruptedException e) {
-					if (!logged)
-						LogHelper.log(new Status(IStatus.WARNING, Activator.ID, "Unexpected interrupt while waiting on ECF transfer", e)); //$NON-NLS-1$
-				}
-			}
-		}
-
-		return result[0];
-	}
-
-	protected IStatus convertToStatus(Exception e) {
-		if (e == null)
-			return Status.OK_STATUS;
-		if (e instanceof UserCancelledException)
-			return new Status(IStatus.CANCEL, Activator.ID, e.getMessage(), e);
-		return new Status(IStatus.ERROR, Activator.ID, e.getMessage(), e);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/LocalMetadataRepository.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/LocalMetadataRepository.java
deleted file mode 100644
index 629e814..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/LocalMetadataRepository.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Prashant Deva - Bug 194674 [prov] Provide write access to metadata repository
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import java.util.jar.JarEntry;
-import java.util.jar.JarOutputStream;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository;
-
-/**
- * A metadata repository that resides in the local file system.  If the repository
- * location is a directory, this implementation will traverse the directory structure
- * and combine any metadata repository files that are found.
- */
-public class LocalMetadataRepository extends AbstractMetadataRepository {
-	static final private String CONTENT_FILENAME = "content"; //$NON-NLS-1$
-	static final private String REPOSITORY_TYPE = LocalMetadataRepository.class.getName();
-	static final private Integer REPOSITORY_VERSION = new Integer(1);
-	static final private String JAR_EXTENSION = ".jar"; //$NON-NLS-1$
-	static final private String XML_EXTENSION = ".xml"; //$NON-NLS-1$
-
-	protected HashSet units = new LinkedHashSet();
-
-	private static File getActualLocation(URL location, String extension) {
-		String spec = location.getFile();
-		if (spec.endsWith(CONTENT_FILENAME + extension))
-			return new File(spec + extension);
-		if (spec.endsWith("/")) //$NON-NLS-1$
-			spec += CONTENT_FILENAME;
-		else
-			spec += "/" + CONTENT_FILENAME; //$NON-NLS-1$
-		return new File(spec + extension);
-	}
-
-	public static File getActualLocation(URL location) {
-		return getActualLocation(location, XML_EXTENSION);
-	}
-
-	/**
-	 * This no argument constructor is called when restoring an existing repository.
-	 */
-	public LocalMetadataRepository() {
-		super();
-	}
-
-	/**
-	 * This constructor is used when creating a new local repository.
-	 * @param location The location of the repository
-	 * @param name The name of the repository
-	 */
-	public LocalMetadataRepository(URL location, String name) {
-		super(name == null ? (location != null ? location.toExternalForm() : "") : name, REPOSITORY_TYPE, REPOSITORY_VERSION.toString(), location, null, null); //$NON-NLS-1$
-		if (!location.getProtocol().equals("file")) //$NON-NLS-1$
-			throw new IllegalArgumentException("Invalid local repository location: " + location); //$NON-NLS-1$
-		//when creating a repository, we must ensure it exists on disk so a subsequent load will succeed
-		save();
-	}
-
-	public void addInstallableUnits(IInstallableUnit[] installableUnits) {
-		if (installableUnits == null || installableUnits.length == 0)
-			return;
-		units.addAll(Arrays.asList(installableUnits));
-		save();
-	}
-
-	public void initialize(RepositoryState state) {
-		this.name = state.Name;
-		this.type = state.Type;
-		this.version = state.Version.toString();
-		this.provider = state.Provider;
-		this.description = state.Description;
-		this.location = state.Location;
-		this.properties = state.Properties;
-		this.units.addAll(Arrays.asList(state.Units));
-	}
-
-	// use this method to setup any transient fields etc after the object has been restored from a stream
-	public void initializeAfterLoad(URL aLocation) {
-		this.location = aLocation;
-	}
-
-	public boolean isModifiable() {
-		return true;
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		return query.perform(units.iterator(), collector);
-	}
-
-	public void removeAll() {
-		units.clear();
-		save();
-	}
-
-	public boolean removeInstallableUnits(Query query, IProgressMonitor monitor) {
-		boolean changed = false;
-		for (Iterator it = units.iterator(); it.hasNext();)
-			if (query.isMatch(it.next())) {
-				it.remove();
-				changed = true;
-			}
-		if (changed)
-			save();
-		return changed;
-	}
-
-	public void revertToBackup(LocalMetadataRepository backup) {
-		name = backup.name;
-		type = backup.type;
-		version = backup.version;
-		location = backup.location;
-		description = backup.description;
-		provider = backup.provider;
-		properties = backup.properties;
-		units = backup.units;
-	}
-
-	private void save() {
-		File file = getActualLocation(location);
-		File jarFile = getActualLocation(location, JAR_EXTENSION);
-		boolean compress = "true".equalsIgnoreCase((String) properties.get(PROP_COMPRESSED)); //$NON-NLS-1$
-		try {
-			OutputStream output = null;
-			if (!compress) {
-				if (jarFile.exists()) {
-					jarFile.delete();
-				}
-				if (!file.exists()) {
-					if (!file.getParentFile().exists())
-						file.getParentFile().mkdirs();
-					file.createNewFile();
-				}
-				output = new FileOutputStream(file);
-			} else {
-				if (file.exists()) {
-					file.delete();
-				}
-				if (!jarFile.exists()) {
-					if (!jarFile.getParentFile().exists())
-						jarFile.getParentFile().mkdirs();
-					jarFile.createNewFile();
-				}
-				JarEntry jarEntry = new JarEntry(file.getName());
-				JarOutputStream jOutput = new JarOutputStream(new FileOutputStream(jarFile));
-				jOutput.putNextEntry(jarEntry);
-				output = jOutput;
-			}
-			super.setProperty(IRepository.PROP_TIMESTAMP, Long.toString(System.currentTimeMillis()));
-			new MetadataRepositoryIO().write(this, output);
-		} catch (IOException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_WRITE, "Error saving metadata repository: " + location, e)); //$NON-NLS-1$
-		}
-	}
-
-	public String setProperty(String key, String newValue) {
-		String oldValue = super.setProperty(key, newValue);
-		if (oldValue == newValue || (oldValue != null && oldValue.equals(newValue)))
-			return oldValue;
-		save();
-		//force repository manager to reload this repository because it caches properties
-		MetadataRepositoryManager manager = (MetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		if (manager.removeRepository(getLocation()))
-			manager.addRepository(this);
-		return oldValue;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Messages.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Messages.java
deleted file mode 100644
index 40f0fd0..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/Messages.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.metadata.repository.messages"; //$NON-NLS-1$
-
-	static {
-		// initialize resource bundles
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-
-	public static String io_failedRead;
-	public static String io_failedWrite;
-	public static String io_IncompatibleVersion;
-	public static String io_parseError;
-
-	public static String REPO_LOADING;
-	public static String REPOMGR_ADDING_REPO;
-
-	public static String repoMan_exists;
-	public static String repoMan_failedRead;
-	public static String repoMan_internalError;
-	public static String repoMan_notExists;
-	public static String repoMan_unknownType;
-	public static String repoMan_invalidLocation;
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java
deleted file mode 100644
index 6c897c8..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Prashant Deva - Bug 194674 [prov] Provide write access to metadata repository
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository;
-
-import java.io.*;
-import java.net.URL;
-import javax.xml.parsers.ParserConfigurationException;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.p2.metadata.repository.io.MetadataParser;
-import org.eclipse.equinox.internal.p2.metadata.repository.io.MetadataWriter;
-import org.eclipse.equinox.internal.p2.persistence.XMLWriter;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository.RepositoryState;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-import org.xml.sax.*;
-
-/**
- * This class reads and writes provisioning metadata.
- */
-public class MetadataRepositoryIO {
-
-	/**
-	 * Reads metadata from the given stream, and returns the contained array
-	 * of abstract metadata repositories.
-	 * This method performs buffering, and closes the stream when finished.
-	 */
-	public IMetadataRepository read(URL location, InputStream input, IProgressMonitor monitor) throws ProvisionException {
-		BufferedInputStream bufferedInput = null;
-		try {
-			try {
-				bufferedInput = new BufferedInputStream(input);
-
-				Parser repositoryParser = new Parser(Activator.getContext(), Activator.ID);
-				repositoryParser.parse(input, monitor);
-				IStatus result = repositoryParser.getStatus();
-				switch (result.getSeverity()) {
-					case IStatus.CANCEL :
-						throw new OperationCanceledException();
-					case IStatus.ERROR :
-						throw new ProvisionException(result);
-					case IStatus.WARNING :
-					case IStatus.INFO :
-						LogHelper.log(result);
-				}
-				return repositoryParser.getRepository();
-			} finally {
-				if (bufferedInput != null)
-					bufferedInput.close();
-			}
-		} catch (IOException ioe) {
-			String msg = NLS.bind(Messages.io_failedRead, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_READ, msg, ioe));
-		}
-	}
-
-	/**
-	 *
-	 */
-	public void write(IMetadataRepository repository, OutputStream output) throws IOException {
-		OutputStream bufferedOutput = null;
-		try {
-			bufferedOutput = new BufferedOutputStream(output);
-			Writer repositoryWriter = new Writer(bufferedOutput, repository.getClass());
-			repositoryWriter.write(repository);
-		} finally {
-			if (bufferedOutput != null) {
-				bufferedOutput.close();
-			}
-		}
-	}
-
-	private interface XMLConstants extends org.eclipse.equinox.internal.p2.metadata.repository.io.XMLConstants {
-
-		// Constants defining the structure of the XML for a MetadataRepository
-
-		// A format version number for metadata repository XML.
-		public static final String XML_VERSION = "1.0.0"; //$NON-NLS-1$
-		public static final Version CURRENT_VERSION = new Version(XML_VERSION);
-		public static final VersionRange XML_TOLERANCE = new VersionRange(CURRENT_VERSION, true, new Version(2, 0, 0), false);
-
-		// Constants for processing Instructions
-		public static final String PI_REPOSITORY_TARGET = "metadataRepository"; //$NON-NLS-1$
-
-		// Constants for metadata repository elements
-		public static final String REPOSITORY_ELEMENT = "repository"; //$NON-NLS-1$
-
-	}
-
-	protected XMLWriter.ProcessingInstruction[] createPI(Class repositoryClass) {
-		//TODO We should remove this processing instruction, but currently old clients rely on this. See bug 210450.
-		return new XMLWriter.ProcessingInstruction[] {XMLWriter.ProcessingInstruction.makeClassVersionInstruction(XMLConstants.PI_REPOSITORY_TARGET, repositoryClass, XMLConstants.CURRENT_VERSION)};
-	}
-
-	// XML writer for a IMetadataRepository
-	protected class Writer extends MetadataWriter implements XMLConstants {
-
-		public Writer(OutputStream output, Class repositoryClass) throws IOException {
-			super(output, createPI(repositoryClass));
-		}
-
-		/**
-		 * Write the given metadata repository to the output stream.
-		 */
-		public void write(IMetadataRepository repository) {
-			start(REPOSITORY_ELEMENT);
-			attribute(NAME_ATTRIBUTE, repository.getName());
-			attribute(TYPE_ATTRIBUTE, repository.getType());
-			attribute(VERSION_ATTRIBUTE, repository.getVersion());
-			attributeOptional(PROVIDER_ATTRIBUTE, repository.getProvider());
-			attributeOptional(DESCRIPTION_ATTRIBUTE, repository.getDescription()); // TODO: could be cdata?
-
-			writeProperties(repository.getProperties());
-			Collector units = repository.query(InstallableUnitQuery.ANY, new Collector(), null);
-			writeInstallableUnits(units.iterator(), units.size());
-
-			end(REPOSITORY_ELEMENT);
-			flush();
-		}
-	}
-
-	/*
-	 * 	Parser for the contents of a metadata repository,
-	 * 	as written by the Writer class.
-	 */
-	private class Parser extends MetadataParser implements XMLConstants {
-
-		private IMetadataRepository theRepository = null;
-		protected Class theRepositoryClass = null;
-
-		public Parser(BundleContext context, String bundleId) {
-			super(context, bundleId);
-		}
-
-		public synchronized void parse(InputStream stream, IProgressMonitor monitor) throws IOException {
-			this.status = null;
-			setProgressMonitor(monitor);
-			monitor.beginTask(Messages.REPO_LOADING, IProgressMonitor.UNKNOWN);
-			try {
-				// TODO: currently not caching the parser since we make no assumptions
-				//		 or restrictions on concurrent parsing
-				getParser();
-				RepositoryHandler repositoryHandler = new RepositoryHandler();
-				xmlReader.setContentHandler(new RepositoryDocHandler(REPOSITORY_ELEMENT, repositoryHandler));
-				xmlReader.parse(new InputSource(stream));
-				if (isValidXML()) {
-					theRepository = repositoryHandler.getRepository();
-				}
-			} catch (SAXException e) {
-				throw new IOException(e.getMessage());
-			} catch (ParserConfigurationException e) {
-				throw new IOException(e.getMessage());
-			} finally {
-				monitor.done();
-				stream.close();
-			}
-		}
-
-		public IMetadataRepository getRepository() {
-			return theRepository;
-		}
-
-		public Class getRepositoryClass() {
-			return theRepositoryClass;
-		}
-
-		protected Object getRootObject() {
-			return theRepository;
-		}
-
-		private final class RepositoryDocHandler extends DocHandler {
-
-			public RepositoryDocHandler(String rootName, RootHandler rootHandler) {
-				super(rootName, rootHandler);
-			}
-
-			public void processingInstruction(String target, String data) throws SAXException {
-				if (PI_REPOSITORY_TARGET.equals(target)) {
-					Version repositoryVersion = extractPIVersion(target, data);
-					if (!MetadataRepositoryIO.XMLConstants.XML_TOLERANCE.isIncluded(repositoryVersion)) {
-						throw new SAXException(NLS.bind(Messages.io_IncompatibleVersion, repositoryVersion, MetadataRepositoryIO.XMLConstants.XML_TOLERANCE));
-					}
-				}
-			}
-
-		}
-
-		private final class RepositoryHandler extends RootHandler {
-
-			private final String[] required = new String[] {NAME_ATTRIBUTE, TYPE_ATTRIBUTE, VERSION_ATTRIBUTE};
-			private final String[] optional = new String[] {DESCRIPTION_ATTRIBUTE, PROVIDER_ATTRIBUTE};
-
-			private InstallableUnitsHandler unitsHandler = null;
-			private PropertiesHandler propertiesHandler = null;
-
-			private AbstractMetadataRepository repository = null;
-
-			private RepositoryState state = new RepositoryState();
-
-			public RepositoryHandler() {
-				super();
-			}
-
-			public IMetadataRepository getRepository() {
-				return repository;
-			}
-
-			protected void handleRootAttributes(Attributes attributes) {
-				String[] values = parseAttributes(attributes, required, optional);
-				Version version = checkVersion(this.elementHandled, VERSION_ATTRIBUTE, values[2]);
-				state.Name = values[0];
-				state.Type = values[1];
-				state.Version = version;
-				state.Description = values[3];
-				state.Provider = values[4];
-				state.Location = null;
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				checkCancel();
-				if (PROPERTIES_ELEMENT.equals(name)) {
-					if (propertiesHandler == null) {
-						propertiesHandler = new PropertiesHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else if (INSTALLABLE_UNITS_ELEMENT.equals(name)) {
-					if (unitsHandler == null) {
-						unitsHandler = new InstallableUnitsHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-
-			protected void finished() {
-				if (isValidXML()) {
-					state.Properties = (propertiesHandler == null ? new OrderedProperties(0) //
-							: propertiesHandler.getProperties());
-					state.Units = (unitsHandler == null ? new IInstallableUnit[0] //
-							: unitsHandler.getUnits());
-					try {
-						//can't create repository if missing type - this is already logged when parsing attributes
-						if (state.Type == null)
-							return;
-						//migration support for change to MetadataCache (bug 211934)
-						if (state.Type.equals("org.eclipse.equinox.internal.p2.installregistry.MetadataCache")) //$NON-NLS-1$
-							state.Type = "org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository"; //$NON-NLS-1$
-						Class clazz = Class.forName(state.Type);
-						Object repositoryObject = clazz.newInstance();
-						if (repositoryObject instanceof AbstractMetadataRepository) {
-							repository = (AbstractMetadataRepository) repositoryObject;
-							repository.initialize(state);
-						}
-					} catch (InstantiationException e) {
-						// TODO: Throw a SAXException
-						e.printStackTrace();
-					} catch (IllegalAccessException e) {
-						// TODO: Throw a SAXException
-						e.printStackTrace();
-					} catch (ClassNotFoundException e) {
-						// TODO: Throw a SAXException
-						e.printStackTrace();
-					}
-				}
-			}
-		}
-
-		protected String getErrorMessage() {
-			return Messages.io_parseError;
-		}
-
-		public String toString() {
-			// TODO:
-			return null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java
deleted file mode 100644
index 888ebdf..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java
+++ /dev/null
@@ -1,651 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository;
-
-import java.lang.ref.SoftReference;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
-import org.eclipse.equinox.internal.p2.core.helpers.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.ProvisioningListener;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.RepositoryEvent;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.IMetadataRepositoryFactory;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * Default implementation of {@link IMetadataRepositoryManager}.
- */
-public class MetadataRepositoryManager implements IMetadataRepositoryManager, ProvisioningListener {
-	static class RepositoryInfo {
-		String description;
-		boolean isSystem = false;
-		URL location;
-		String name;
-		SoftReference repository;
-	}
-
-	private static final String ATTR_SUFFIX = "suffix"; //$NON-NLS-1$
-	private static final String DEFAULT_SUFFIX = "content.xml"; //$NON-NLS-1$
-	private static final String EL_FILTER = "filter"; //$NON-NLS-1$
-
-	private static final String FACTORY = "factory"; //$NON-NLS-1$
-	private static final String KEY_DESCRIPTION = "description"; //$NON-NLS-1$
-	private static final String KEY_NAME = "name"; //$NON-NLS-1$
-	private static final String KEY_PROVIDER = "provider"; //$NON-NLS-1$
-	private static final String KEY_SYSTEM = "isSystem"; //$NON-NLS-1$
-	private static final String KEY_TYPE = "type"; //$NON-NLS-1$
-	private static final String KEY_URL = "url"; //$NON-NLS-1$
-	private static final String KEY_VERSION = "version"; //$NON-NLS-1$
-
-	private static final String NODE_REPOSITORIES = "repositories"; //$NON-NLS-1$
-
-	/**
-	 * Map of String->RepositoryInfo, where String is the repository key
-	 * obtained via getKey(URL).
-	 */
-	private Map repositories = null;
-
-	//lock object to be held when referring to the repositories field
-	private final Object repositoryLock = new Object();
-
-	/**
-	 * Cache List of repositories that are not reachable. Maintain cache
-	 * for short duration because repository may become available at any time.
-	 */
-	private SoftReference unavailableRepositories;
-
-	public MetadataRepositoryManager() {
-		IProvisioningEventBus bus = (IProvisioningEventBus) ServiceHelper.getService(Activator.getContext(), IProvisioningEventBus.class.getName());
-		if (bus != null)
-			bus.addListener(this);
-		//initialize repositories lazily
-	}
-
-	public void addRepository(IMetadataRepository repository) {
-		RepositoryInfo info = new RepositoryInfo();
-		info.repository = new SoftReference(repository);
-		info.name = repository.getName();
-		info.description = repository.getDescription();
-		info.location = repository.getLocation();
-		String value = (String) repository.getProperties().get(IRepository.PROP_SYSTEM);
-		info.isSystem = value == null ? false : Boolean.valueOf(value).booleanValue();
-		boolean added = true;
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			added = repositories.put(getKey(repository), info) == null;
-		}
-		// save the given repository in the preferences.
-		remember(repository);
-		if (added)
-			broadcastChangeEvent(repository.getLocation(), IRepository.TYPE_METADATA, RepositoryEvent.ADDED);
-	}
-
-	public void addRepository(URL location) {
-		Assert.isNotNull(location);
-		RepositoryInfo info = new RepositoryInfo();
-		info.location = location;
-		boolean added = true;
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			added = repositories.put(getKey(location), info) == null;
-		}
-		// save the given repository in the preferences.
-		remember(info);
-		if (added)
-			broadcastChangeEvent(location, IRepository.TYPE_METADATA, RepositoryEvent.ADDED);
-	}
-
-	/**
-	 * TODO Eliminate duplication with ArtifactRepositoryManager.
-	 */
-	protected void broadcastChangeEvent(URL location, int repositoryType, int kind) {
-		IProvisioningEventBus bus = (IProvisioningEventBus) ServiceHelper.getService(Activator.getContext(), IProvisioningEventBus.class.getName());
-		if (bus != null)
-			bus.publishEvent(new RepositoryEvent(location, repositoryType, kind));
-	}
-
-	/**
-	 * Check if we recently attempted to load the given location and failed
-	 * to find anything. Returns <code>true</code> if the repository was not
-	 * found, and <code>false</code> otherwise.
-	 */
-	private boolean checkNotFound(URL location) {
-		if (unavailableRepositories == null)
-			return false;
-		List badRepos = (List) unavailableRepositories.get();
-		if (badRepos == null)
-			return false;
-		return badRepos.contains(location);
-	}
-
-	/**
-	 * Clear the fact that we tried to load a repository at this location and did not find anything.
-	 */
-	private void clearNotFound(URL location) {
-		List badRepos;
-		if (unavailableRepositories != null) {
-			badRepos = (List) unavailableRepositories.get();
-			if (badRepos != null) {
-				badRepos.remove(location);
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Returns the executable extension, or <code>null</code> if there
-	 * was no corresponding extension, or an error occurred loading it
-	 */
-	private Object createExecutableExtension(IExtension extension, String element) {
-		IConfigurationElement[] elements = extension.getConfigurationElements();
-		CoreException failure = null;
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i].getName().equals(element)) {
-				try {
-					return elements[i].createExecutableExtension("class"); //$NON-NLS-1$
-				} catch (CoreException e) {
-					log("Error loading repository extension: " + extension.getUniqueIdentifier(), failure); //$NON-NLS-1$
-					return null;
-				}
-			}
-		}
-		log("Malformed repository extension: " + extension.getUniqueIdentifier(), null); //$NON-NLS-1$
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager#createRepository(java.net.URL, java.lang.String, java.lang.String)
-	 */
-	public IMetadataRepository createRepository(URL location, String name, String type) throws ProvisionException {
-		Assert.isNotNull(location);
-		Assert.isNotNull(name);
-		Assert.isNotNull(type);
-		try {
-			//repository should not already exist
-			loadRepository(location, (IProgressMonitor) null);
-			fail(location, ProvisionException.REPOSITORY_EXISTS);
-		} catch (ProvisionException e) {
-			//expected - fall through and create the new repository
-		}
-		IExtension extension = RegistryFactory.getRegistry().getExtension(Activator.REPO_PROVIDER_XPT, type);
-		if (extension == null)
-			fail(location, ProvisionException.REPOSITORY_UNKNOWN_TYPE);
-		IMetadataRepositoryFactory factory = (IMetadataRepositoryFactory) createExecutableExtension(extension, FACTORY);
-		if (factory == null)
-			fail(location, ProvisionException.REPOSITORY_FAILED_READ);
-		IMetadataRepository result = factory.create(location, name, type);
-		if (result == null)
-			fail(location, ProvisionException.REPOSITORY_FAILED_READ);
-		clearNotFound(location);
-		return result;
-	}
-
-	private void fail(URL location, int code) throws ProvisionException {
-		throw new ProvisionException(failStatus(location, code));
-	}
-
-	private IStatus failStatus(URL location, int code) {
-		String msg = null;
-		switch (code) {
-			case ProvisionException.REPOSITORY_EXISTS :
-				msg = NLS.bind(Messages.repoMan_exists, location);
-				break;
-			case ProvisionException.REPOSITORY_UNKNOWN_TYPE :
-				msg = NLS.bind(Messages.repoMan_unknownType, location);
-				break;
-			case ProvisionException.REPOSITORY_FAILED_READ :
-				msg = NLS.bind(Messages.repoMan_failedRead, location);
-				break;
-			case ProvisionException.REPOSITORY_NOT_FOUND :
-				msg = NLS.bind(Messages.repoMan_notExists, location);
-				break;
-			case ProvisionException.REPOSITORY_INVALID_LOCATION :
-				msg = NLS.bind(Messages.repoMan_invalidLocation, location);
-				break;
-		}
-		if (msg == null)
-			msg = Messages.repoMan_internalError;
-		return new Status(IStatus.ERROR, Activator.ID, code, msg, null);
-	}
-
-	private IExtension[] findMatchingRepositoryExtensions(String suffix) {
-		IConfigurationElement[] elt = RegistryFactory.getRegistry().getConfigurationElementsFor(Activator.REPO_PROVIDER_XPT);
-		int count = 0;
-		for (int i = 0; i < elt.length; i++) {
-			if (elt[i].getName().equals("filter")) { //$NON-NLS-1$
-				if (!elt[i].getAttribute("suffix").equals(suffix)) { //$NON-NLS-1$
-					elt[i] = null;
-				} else {
-					count++;
-				}
-			} else {
-				elt[i] = null;
-			}
-		}
-		IExtension[] results = new IExtension[count];
-		for (int i = 0; i < elt.length; i++) {
-			if (elt[i] != null)
-				results[--count] = elt[i].getDeclaringExtension();
-		}
-		return results;
-	}
-
-	private String[] getAllSuffixes() {
-		IConfigurationElement[] elements = RegistryFactory.getRegistry().getConfigurationElementsFor(Activator.REPO_PROVIDER_XPT);
-		ArrayList result = new ArrayList(elements.length);
-		result.add(DEFAULT_SUFFIX);
-		for (int i = 0; i < elements.length; i++) {
-			if (elements[i].getName().equals(EL_FILTER)) {
-				String suffix = elements[i].getAttribute(ATTR_SUFFIX);
-				if (!result.contains(suffix))
-					result.add(suffix);
-			}
-		}
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	/*
-	 * Return a string key based on the given repository which
-	 * is suitable for use as a preference node name.
-	 */
-	private String getKey(IMetadataRepository repository) {
-		return getKey(repository.getLocation());
-	}
-
-	/*
-	 * Return a string key based on the given repository location which
-	 * is suitable for use as a preference node name.
-	 */
-	private String getKey(URL location) {
-		return location.toExternalForm().replace('/', '_');
-	}
-
-	public URL[] getKnownRepositories(int flags) {
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			ArrayList result = new ArrayList();
-			int i = 0;
-			for (Iterator it = repositories.values().iterator(); it.hasNext(); i++) {
-				RepositoryInfo info = (RepositoryInfo) it.next();
-				if (matchesFlags(info, flags))
-					result.add(info.location);
-			}
-			return (URL[]) result.toArray(new URL[result.size()]);
-		}
-	}
-
-	/*
-	 * Return the preference node which is the root for where we store the repository information.
-	 */
-	private Preferences getPreferences() {
-		return new ConfigurationScope().getNode(Activator.ID).node(NODE_REPOSITORIES);
-	}
-
-	public IMetadataRepository getRepository(URL location) {
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			for (Iterator it = repositories.values().iterator(); it.hasNext();) {
-				RepositoryInfo info = (RepositoryInfo) it.next();
-				if (URLUtil.sameURL(info.location, location)) {
-					if (info.repository == null)
-						return null;
-					IMetadataRepository repo = (IMetadataRepository) info.repository.get();
-					//update our repository info because the repository may have changed
-					if (repo != null)
-						addRepository(repo);
-					return repo;
-				}
-			}
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager#getRepositoryProperty(java.net.URL, java.lang.String)
-	 */
-	public String getRepositoryProperty(URL location, String key) {
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			for (Iterator it = repositories.values().iterator(); it.hasNext();) {
-				RepositoryInfo info = (RepositoryInfo) it.next();
-				if (URLUtil.sameURL(info.location, location)) {
-					if (IRepository.PROP_DESCRIPTION.equals(key))
-						return info.description;
-					if (IRepository.PROP_NAME.equals(key))
-						return info.name;
-					// Key not known, return null
-					return null;
-				}
-			}
-			// Repository not found, return null
-			return null;
-		}
-	}
-
-	public IMetadataRepository loadRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		Assert.isNotNull(location);
-		IMetadataRepository result = getRepository(location);
-		if (result != null)
-			return result;
-		MultiStatus notFoundStatus = new MultiStatus(Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, NLS.bind(Messages.repoMan_notExists, location.toExternalForm()), null);
-		if (checkNotFound(location))
-			throw new ProvisionException(notFoundStatus);
-		String[] suffixes = getAllSuffixes();
-		SubMonitor sub = SubMonitor.convert(monitor, Messages.REPOMGR_ADDING_REPO, suffixes.length * 100);
-		try {
-			for (int i = 0; i < suffixes.length; i++) {
-				result = loadRepository(location, suffixes[i], sub.newChild(100), notFoundStatus);
-				if (result != null) {
-					addRepository(result);
-					return result;
-				}
-			}
-		} finally {
-			sub.done();
-		}
-		rememberNotFound(location);
-		throw new ProvisionException(notFoundStatus);
-	}
-
-	/**
-	 * Try to load a pre-existing repo at the given location
-	 */
-	private IMetadataRepository loadRepository(URL location, String suffix, SubMonitor monitor, MultiStatus failures) {
-		IExtension[] providers = findMatchingRepositoryExtensions(suffix);
-		// Loop over the candidates and return the first one that successfully loads
-		monitor.beginTask("", providers.length * 10); //$NON-NLS-1$
-		for (int i = 0; i < providers.length; i++) {
-			IMetadataRepositoryFactory factory = (IMetadataRepositoryFactory) createExecutableExtension(providers[i], FACTORY);
-			try {
-				if (factory != null)
-					return factory.load(location, monitor.newChild(10));
-			} catch (ProvisionException e) {
-				if (e.getStatus().getCode() != ProvisionException.REPOSITORY_NOT_FOUND)
-					failures.add(e.getStatus());
-				//keep trying with other factories
-			}
-		}
-		return null;
-	}
-
-	protected void log(String message, Throwable t) {
-		LogHelper.log(new Status(IStatus.ERROR, Activator.ID, message, t));
-	}
-
-	private boolean matchesFlags(RepositoryInfo info, int flags) {
-		if ((flags & REPOSITORIES_SYSTEM) == REPOSITORIES_SYSTEM)
-			if (!info.isSystem)
-				return false;
-		if ((flags & REPOSITORIES_NON_SYSTEM) == REPOSITORIES_NON_SYSTEM)
-			if (info.isSystem)
-				return false;
-		if ((flags & REPOSITORIES_LOCAL) == REPOSITORIES_LOCAL)
-			return "file".equals(info.location.getProtocol()); //$NON-NLS-1$
-		return true;
-	}
-
-	/*(non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.core.eventbus.ProvisioningListener#notify(java.util.EventObject)
-	 */
-	public void notify(EventObject o) {
-		if (o instanceof RepositoryEvent) {
-			RepositoryEvent event = (RepositoryEvent) o;
-			if (event.getKind() == RepositoryEvent.DISCOVERED && event.getRepositoryType() == IRepository.TYPE_METADATA)
-				addRepository(event.getRepositoryLocation());
-		}
-	}
-
-	/**
-	 * Sets a preference and returns <code>true</code> if the preference
-	 * was actually changed.
-	 */
-	private boolean putValue(Preferences node, String key, String newValue) {
-		String oldValue = node.get(key, null);
-		if (oldValue == newValue || (oldValue != null && oldValue.equals(newValue)))
-			return false;
-		if (newValue == null)
-			node.remove(key);
-		else
-			node.put(key, newValue);
-		return true;
-	}
-
-	/**
-	 * Performs a query against all of the installable units of each known 
-	 * repository, accumulating any objects that satisfy the query in the 
-	 * provided collector.
-	 * <p>
-	 * Note that using this method can be quite expensive, as every known
-	 * metadata repository will be loaded in order to query each one.  If a
-	 * client wishes to query only certain repositories, it is better to use
-	 * {@link #getKnownRepositories(int)} to filter the list of repositories
-	 * loaded and then query each of the returned repositories.
-	 * <p>
-	 * This method is long-running; progress and cancellation are provided
-	 * by the given progress monitor. 
-	 * 
-	 * @param query The query to perform against each installable unit in each known repository
-	 * @param collector Collects the results of the query
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return The collector argument
-	 */
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		URL[] locations = getKnownRepositories(REPOSITORIES_ALL);
-		SubMonitor sub = SubMonitor.convert(monitor, locations.length * 10);
-		for (int i = 0; i < locations.length; i++) {
-			try {
-				loadRepository(locations[i], sub.newChild(9)).query(query, collector, sub.newChild(1));
-			} catch (ProvisionException e) {
-				//ignore this repository for this query
-			}
-		}
-		sub.done();
-		return collector;
-	}
-
-	public IMetadataRepository refreshRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		clearNotFound(location);
-		if (!removeRepository(location))
-			fail(location, ProvisionException.REPOSITORY_NOT_FOUND);
-		return loadRepository(location, monitor);
-	}
-
-	/*
-	 * Save the list of repositories in the preference store.
-	 */
-	private boolean remember(IMetadataRepository repository) {
-		boolean changed = false;
-		Preferences node = getPreferences().node(getKey(repository));
-		changed |= putValue(node, KEY_URL, repository.getLocation().toExternalForm());
-		changed |= putValue(node, KEY_DESCRIPTION, repository.getDescription());
-		changed |= putValue(node, KEY_NAME, repository.getName());
-		changed |= putValue(node, KEY_PROVIDER, repository.getProvider());
-		changed |= putValue(node, KEY_TYPE, repository.getType());
-		changed |= putValue(node, KEY_VERSION, repository.getVersion());
-		changed |= putValue(node, KEY_SYSTEM, (String) repository.getProperties().get(IRepository.PROP_SYSTEM));
-		if (changed)
-			saveToPreferences();
-		return changed;
-	}
-
-	/*
-	 * Save the list of repositories in the preference store.
-	 */
-	private boolean remember(RepositoryInfo info) {
-		boolean changed = false;
-		Preferences node = getPreferences().node(getKey(info.location));
-		changed |= putValue(node, KEY_URL, info.location.toExternalForm());
-		changed |= putValue(node, KEY_SYSTEM, Boolean.toString(info.isSystem));
-		changed |= putValue(node, KEY_DESCRIPTION, info.description);
-		changed |= putValue(node, KEY_NAME, info.name);
-		if (changed)
-			saveToPreferences();
-		return changed;
-	}
-
-	/**
-	 * Cache the fact that we tried to load a repository at this location and did not find anything.
-	 */
-	private void rememberNotFound(URL location) {
-		List badRepos;
-		if (unavailableRepositories != null) {
-			badRepos = (List) unavailableRepositories.get();
-			if (badRepos != null) {
-				badRepos.add(location);
-				return;
-			}
-		}
-		badRepos = new ArrayList();
-		badRepos.add(location);
-		unavailableRepositories = new SoftReference(badRepos);
-	}
-
-	public boolean removeRepository(URL toRemove) {
-		Assert.isNotNull(toRemove);
-		final String repoKey = getKey(toRemove);
-		synchronized (repositoryLock) {
-			if (repositories == null)
-				restoreRepositories();
-			if (repositories.remove(repoKey) == null)
-				return false;
-		}
-		// remove the repository from the preference store
-		try {
-			getPreferences().node(repoKey).removeNode();
-			saveToPreferences();
-		} catch (BackingStoreException e) {
-			log("Error saving preferences", e); //$NON-NLS-1$
-		}
-		broadcastChangeEvent(toRemove, IRepository.TYPE_METADATA, RepositoryEvent.REMOVED);
-		return true;
-	}
-
-	/**
-	 * Restore the list of repositories from the preference store.
-	 */
-	private void restoreFromPreferences() {
-		// restore the list of repositories from the preference store
-		Preferences node = getPreferences();
-		String[] children;
-		try {
-			children = node.childrenNames();
-		} catch (BackingStoreException e) {
-			log("Error restoring repositories from preferences", e); //$NON-NLS-1$
-			return;
-		}
-		for (int i = 0; i < children.length; i++) {
-			Preferences child = node.node(children[i]);
-			String locationString = child.get(KEY_URL, null);
-			if (locationString == null)
-				continue;
-			try {
-				RepositoryInfo info = new RepositoryInfo();
-				info.location = new URL(locationString);
-				info.name = child.get(KEY_NAME, null);
-				info.description = child.get(KEY_DESCRIPTION, null);
-				info.isSystem = child.getBoolean(KEY_SYSTEM, false);
-				repositories.put(getKey(info.location), info);
-			} catch (MalformedURLException e) {
-				log("Error while restoring repository: " + locationString, e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Restores metadata repositories specified as system properties.
-	 */
-	private void restoreFromSystemProperty() {
-		String locationString = Activator.getContext().getProperty("eclipse.p2.metadataRepository"); //$NON-NLS-1$
-		if (locationString == null)
-			return;
-		StringTokenizer tokenizer = new StringTokenizer(locationString, ","); //$NON-NLS-1$
-		while (tokenizer.hasMoreTokens()) {
-			String pathString = tokenizer.nextToken();
-			try {
-				RepositoryInfo info = new RepositoryInfo();
-				info.location = new URL(pathString);
-				repositories.put(getKey(info.location), info);
-			} catch (MalformedURLException e) {
-				log("Error while restoring repository " + pathString, e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Restores the repository list.
-	 */
-	protected void restoreRepositories() {
-		synchronized (repositoryLock) {
-			repositories = new HashMap();
-			restoreFromSystemProperty();
-			restoreFromPreferences();
-		}
-	}
-
-	/*
-	 * Save the repository list in the file-system
-	 */
-	private void saveToPreferences() {
-		try {
-			getPreferences().flush();
-		} catch (BackingStoreException e) {
-			log("Error while saving repositories in preferences", e); //$NON-NLS-1$
-		}
-	}
-
-	public IStatus validateRepositoryLocation(URL location, IProgressMonitor monitor) {
-		Assert.isNotNull(location);
-		IMetadataRepository result = getRepository(location);
-		if (result != null)
-			return Status.OK_STATUS;
-		String[] suffixes = getAllSuffixes();
-		SubMonitor sub = SubMonitor.convert(monitor, Messages.REPO_LOADING, suffixes.length * 100);
-		IStatus status = new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, NLS.bind(Messages.repoMan_notExists, location.toExternalForm()), null);
-		for (int i = 0; i < suffixes.length; i++) {
-			SubMonitor loopMonitor = sub.newChild(100);
-			IExtension[] providers = findMatchingRepositoryExtensions(suffixes[i]);
-			// Loop over the candidates and return the first one that successfully loads
-			loopMonitor.beginTask("", providers.length * 10); //$NON-NLS-1$
-			for (int j = 0; j < providers.length; j++) {
-				IMetadataRepositoryFactory factory = (IMetadataRepositoryFactory) createExecutableExtension(providers[j], FACTORY);
-				if (factory != null) {
-					status = factory.validate(location, loopMonitor.newChild(10));
-					if (status.isOK()) {
-						sub.done();
-						return status;
-					}
-				}
-			}
-
-		}
-		sub.done();
-		return status;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java
deleted file mode 100644
index 8f645fe..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Prashant Deva - Bug 194674 [prov] Provide write access to metadata repository
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository;
-
-/**
- * A metadata repository backed by an arbitrary URL.
- */
-public class URLMetadataRepository extends AbstractMetadataRepository {
-
-	public static final String CONTENT_FILENAME = "content"; //$NON-NLS-1$
-	public static final String XML_EXTENSION = ".xml"; //$NON-NLS-1$
-	private static final String REPOSITORY_TYPE = URLMetadataRepository.class.getName();
-	private static final Integer REPOSITORY_VERSION = new Integer(1);
-
-	transient protected URL content;
-	protected HashSet units = new LinkedHashSet();
-
-	public static URL getActualLocation(URL base) {
-		return getActualLocation(base, XML_EXTENSION);
-	}
-
-	public static URL getActualLocation(URL base, String extension) {
-		if (extension == null) {
-			extension = XML_EXTENSION;
-		}
-		String spec = base.toExternalForm();
-		if (spec.endsWith(CONTENT_FILENAME + extension))
-			try {
-				return new URL(spec + extension);
-			} catch (MalformedURLException e1) {
-				return null;
-			}
-		if (spec.endsWith("/")) //$NON-NLS-1$
-			spec += CONTENT_FILENAME;
-		else
-			spec += "/" + CONTENT_FILENAME; //$NON-NLS-1$
-		try {
-			return new URL(spec + extension);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-
-	public URLMetadataRepository() {
-		super();
-	}
-
-	public URLMetadataRepository(URL location, String name) {
-		super(name == null ? (location != null ? location.toExternalForm() : "") : name, REPOSITORY_TYPE, REPOSITORY_VERSION.toString(), location, null, null); //$NON-NLS-1$
-		content = getActualLocation(location);
-	}
-
-	protected URL getContentURL() {
-		return content;
-	}
-
-	public void initialize(RepositoryState state) {
-		this.name = state.Name;
-		this.type = state.Type;
-		this.version = state.Version.toString();
-		this.provider = state.Provider;
-		this.description = state.Description;
-		this.location = state.Location;
-		this.properties = state.Properties;
-		this.units.addAll(Arrays.asList(state.Units));
-	}
-
-	// Use this method to setup any transient fields etc after the object has been restored from a stream
-	public void initializeAfterLoad(URL repoLocation) {
-		this.location = repoLocation;
-		content = getActualLocation(location);
-	}
-
-	public boolean isModifiable() {
-		return false;
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		return query.perform(units.iterator(), collector);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java
deleted file mode 100644
index 72f27e3..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java
+++ /dev/null
@@ -1,623 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Genuitec, LLC - added license support
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository.io;
-
-import java.util.*;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.p2.persistence.XMLParser;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-
-public abstract class MetadataParser extends XMLParser implements XMLConstants {
-
-	public MetadataParser(BundleContext context, String bundleId) {
-		super(context, bundleId);
-	}
-
-	protected class InstallableUnitsHandler extends AbstractHandler {
-
-		private ArrayList units;
-
-		public InstallableUnitsHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, INSTALLABLE_UNITS_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			units = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-		}
-
-		public IInstallableUnit[] getUnits() {
-			int size = units.size();
-			IInstallableUnit[] result = new IInstallableUnit[size];
-			int i = 0;
-			for (Iterator it = units.iterator(); it.hasNext(); i++) {
-				InstallableUnitDescription desc = (InstallableUnitDescription) it.next();
-				result[i] = MetadataFactory.createInstallableUnit(desc);
-			}
-			return result;
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(INSTALLABLE_UNIT_ELEMENT)) {
-				new InstallableUnitHandler(this, attributes, units);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class InstallableUnitHandler extends AbstractHandler {
-
-		private final String[] required = new String[] {ID_ATTRIBUTE, VERSION_ATTRIBUTE};
-		private final String[] optional = new String[] {SINGLETON_ATTRIBUTE};
-
-		InstallableUnitDescription currentUnit = null;
-
-		private PropertiesHandler propertiesHandler = null;
-		private ProvidedCapabilitiesHandler providedCapabilitiesHandler = null;
-		private RequiredCapabilitiesHandler requiredCapabilitiesHandler = null;
-		private HostRequiredCapabilitiesHandler hostRequiredCapabilitiesHandler = null;
-		private TextHandler filterHandler = null;
-		private ArtifactsHandler artifactsHandler = null;
-		private TouchpointTypeHandler touchpointTypeHandler = null;
-		private TouchpointDataHandler touchpointDataHandler = null;
-		private UpdateDescriptorHandler updateDescriptorHandler = null;
-		private LicensesHandler licensesHandler = null;
-		private CopyrightHandler copyrightHandler = null;
-
-		private String id;
-		private Version version;
-		private boolean singleton;
-
-		private List units;
-
-		public InstallableUnitHandler(AbstractHandler parentHandler, Attributes attributes, List units) {
-			super(parentHandler, INSTALLABLE_UNIT_ELEMENT);
-			String[] values = parseAttributes(attributes, required, optional);
-			this.units = units;
-			//skip entire IU if the id is missing
-			if (values[0] == null)
-				return;
-
-			id = values[0];
-			version = checkVersion(INSTALLABLE_UNIT_ELEMENT, VERSION_ATTRIBUTE, values[1]);
-			singleton = checkBoolean(INSTALLABLE_UNIT_ELEMENT, SINGLETON_ATTRIBUTE, values[2], true).booleanValue();
-		}
-
-		public IInstallableUnit getInstallableUnit() {
-			return MetadataFactory.createInstallableUnit(currentUnit);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			checkCancel();
-			if (PROPERTIES_ELEMENT.equals(name)) {
-				if (propertiesHandler == null) {
-					propertiesHandler = new PropertiesHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (PROVIDED_CAPABILITIES_ELEMENT.equals(name)) {
-				if (providedCapabilitiesHandler == null) {
-					providedCapabilitiesHandler = new ProvidedCapabilitiesHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (REQUIRED_CAPABILITIES_ELEMENT.equals(name)) {
-				if (requiredCapabilitiesHandler == null) {
-					requiredCapabilitiesHandler = new RequiredCapabilitiesHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (HOST_REQUIRED_CAPABILITIES_ELEMENT.equals(name)) {
-				if (hostRequiredCapabilitiesHandler == null) {
-					hostRequiredCapabilitiesHandler = new HostRequiredCapabilitiesHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (IU_FILTER_ELEMENT.equals(name)) {
-				if (filterHandler == null) {
-					filterHandler = new TextHandler(this, IU_FILTER_ELEMENT, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (ARTIFACT_KEYS_ELEMENT.equals(name)) {
-				if (artifactsHandler == null) {
-					artifactsHandler = new ArtifactsHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (TOUCHPOINT_TYPE_ELEMENT.equals(name)) {
-				if (touchpointTypeHandler == null) {
-					touchpointTypeHandler = new TouchpointTypeHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (TOUCHPOINT_DATA_ELEMENT.equals(name)) {
-				if (touchpointDataHandler == null) {
-					touchpointDataHandler = new TouchpointDataHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (UPDATE_DESCRIPTOR_ELEMENT.equals(name)) {
-				if (updateDescriptorHandler == null)
-					updateDescriptorHandler = new UpdateDescriptorHandler(this, attributes);
-			} else if (LICENSES_ELEMENT.equals(name)) {
-				if (licensesHandler == null) {
-					licensesHandler = new LicensesHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else if (COPYRIGHT_ELEMENT.equals(name)) {
-				if (copyrightHandler == null) {
-					copyrightHandler = new CopyrightHandler(this, attributes);
-				} else {
-					duplicateElement(this, name, attributes);
-				}
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-
-		protected void finished() {
-			if (isValidXML()) {
-				if (hostRequiredCapabilitiesHandler == null || hostRequiredCapabilitiesHandler.getHostRequiredCapabilities().length == 0) {
-					currentUnit = new InstallableUnitDescription();
-				} else {
-					currentUnit = new MetadataFactory.InstallableUnitFragmentDescription();
-					((InstallableUnitFragmentDescription) currentUnit).setHost(hostRequiredCapabilitiesHandler.getHostRequiredCapabilities());
-				}
-				currentUnit.setId(id);
-				currentUnit.setVersion(version);
-				currentUnit.setSingleton(singleton);
-				OrderedProperties properties = (propertiesHandler == null ? new OrderedProperties(0) : propertiesHandler.getProperties());
-				String updateFrom = null;
-				VersionRange updateRange = null;
-				for (Enumeration e = properties.keys(); e.hasMoreElements();) {
-					String key = (String) e.nextElement();
-					String value = properties.getProperty(key);
-					//Backward compatibility
-					if (key.equals("equinox.p2.update.from")) {
-						updateFrom = value;
-						continue;
-					}
-					if (key.equals("equinox.p2.update.range")) {
-						updateRange = new VersionRange(value);
-						continue;
-					}
-					//End of backward compatibility
-					currentUnit.setProperty(key, value);
-				}
-				//Backward compatibility
-				if (updateFrom != null && updateRange != null)
-					currentUnit.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(updateFrom, updateRange, IUpdateDescriptor.NORMAL, null));
-				//End of backward compatibility
-
-				if (licensesHandler != null) {
-					License license = licensesHandler.getLicense();
-					currentUnit.setLicense(license);
-				}
-
-				if (copyrightHandler != null) {
-					Copyright copyright = copyrightHandler.getCopyright();
-					currentUnit.setCopyright(copyright);
-				}
-
-				ProvidedCapability[] providedCapabilities = (providedCapabilitiesHandler == null ? new ProvidedCapability[0] : providedCapabilitiesHandler.getProvidedCapabilities());
-				currentUnit.setCapabilities(providedCapabilities);
-				RequiredCapability[] requiredCapabilities = (requiredCapabilitiesHandler == null ? new RequiredCapability[0] : requiredCapabilitiesHandler.getRequiredCapabilities());
-				currentUnit.setRequiredCapabilities(requiredCapabilities);
-				if (filterHandler != null) {
-					currentUnit.setFilter(filterHandler.getText());
-				}
-				IArtifactKey[] artifacts = (artifactsHandler == null ? new IArtifactKey[0] : artifactsHandler.getArtifactKeys());
-				currentUnit.setArtifacts(artifacts);
-				if (touchpointTypeHandler != null) {
-					currentUnit.setTouchpointType(touchpointTypeHandler.getTouchpointType());
-				} else {
-					// TODO: create an error
-				}
-				TouchpointData[] touchpointData = (touchpointDataHandler == null ? new TouchpointData[0] : touchpointDataHandler.getTouchpointData());
-				for (int i = 0; i < touchpointData.length; i++)
-					currentUnit.addTouchpointData(touchpointData[i]);
-				if (updateDescriptorHandler != null)
-					currentUnit.setUpdateDescriptor(updateDescriptorHandler.getUpdateDescriptor());
-				units.add(currentUnit);
-			}
-		}
-	}
-
-	protected class ProvidedCapabilitiesHandler extends AbstractHandler {
-
-		private List providedCapabilities;
-
-		public ProvidedCapabilitiesHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, PROVIDED_CAPABILITIES_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			providedCapabilities = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-		}
-
-		public ProvidedCapability[] getProvidedCapabilities() {
-			return (ProvidedCapability[]) providedCapabilities.toArray(new ProvidedCapability[providedCapabilities.size()]);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(PROVIDED_CAPABILITY_ELEMENT)) {
-				new ProvidedCapabilityHandler(this, attributes, providedCapabilities);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class ProvidedCapabilityHandler extends AbstractHandler {
-
-		private final String[] required = new String[] {NAMESPACE_ATTRIBUTE, NAME_ATTRIBUTE, VERSION_ATTRIBUTE};
-
-		public ProvidedCapabilityHandler(AbstractHandler parentHandler, Attributes attributes, List capabilities) {
-			super(parentHandler, PROVIDED_CAPABILITY_ELEMENT);
-			String[] values = parseRequiredAttributes(attributes, required);
-			Version version = checkVersion(PROVIDED_CAPABILITY_ELEMENT, VERSION_ATTRIBUTE, values[2]);
-			capabilities.add(MetadataFactory.createProvidedCapability(values[0], values[1], version));
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			invalidElement(name, attributes);
-		}
-	}
-
-	protected class HostRequiredCapabilitiesHandler extends AbstractHandler {
-		private List requiredCapabilities;
-
-		public HostRequiredCapabilitiesHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, HOST_REQUIRED_CAPABILITIES_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			requiredCapabilities = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-		}
-
-		public RequiredCapability[] getHostRequiredCapabilities() {
-			return (RequiredCapability[]) requiredCapabilities.toArray(new RequiredCapability[requiredCapabilities.size()]);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(REQUIRED_CAPABILITY_ELEMENT)) {
-				new RequiredCapabilityHandler(this, attributes, requiredCapabilities);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class RequiredCapabilitiesHandler extends AbstractHandler {
-		private List requiredCapabilities;
-
-		public RequiredCapabilitiesHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, REQUIRED_CAPABILITIES_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			requiredCapabilities = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-		}
-
-		public RequiredCapability[] getRequiredCapabilities() {
-			return (RequiredCapability[]) requiredCapabilities.toArray(new RequiredCapability[requiredCapabilities.size()]);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(REQUIRED_CAPABILITY_ELEMENT)) {
-				new RequiredCapabilityHandler(this, attributes, requiredCapabilities);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class RequiredCapabilityHandler extends AbstractHandler {
-
-		private final String[] required = new String[] {NAMESPACE_ATTRIBUTE, NAME_ATTRIBUTE, VERSION_RANGE_ATTRIBUTE};
-		private final String[] optional = new String[] {CAPABILITY_OPTIONAL_ATTRIBUTE, CAPABILITY_MULTIPLE_ATTRIBUTE, CAPABILITY_GREED_ATTRIBUTE};
-
-		private RequiredCapability currentCapability = null;
-
-		private TextHandler filterHandler = null;
-		private CapabilitySelectorsHandler selectorsHandler = null;
-
-		public RequiredCapabilityHandler(AbstractHandler parentHandler, Attributes attributes, List capabilities) {
-			super(parentHandler, REQUIRED_CAPABILITY_ELEMENT);
-			String[] values = parseAttributes(attributes, required, optional);
-			VersionRange range = checkVersionRange(REQUIRED_CAPABILITY_ELEMENT, VERSION_RANGE_ATTRIBUTE, values[2]);
-			boolean isOptional = checkBoolean(REQUIRED_CAPABILITY_ELEMENT, CAPABILITY_OPTIONAL_ATTRIBUTE, values[3], false).booleanValue();
-			boolean isMultiple = checkBoolean(REQUIRED_CAPABILITY_ELEMENT, CAPABILITY_MULTIPLE_ATTRIBUTE, values[4], false).booleanValue();
-			boolean isGreedy = checkBoolean(REQUIRED_CAPABILITY_ELEMENT, CAPABILITY_GREED_ATTRIBUTE, values[5], true).booleanValue();
-			currentCapability = MetadataFactory.createRequiredCapability(values[0], values[1], range, null, isOptional, isMultiple, isGreedy);
-			capabilities.add(currentCapability);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(CAPABILITY_FILTER_ELEMENT)) {
-				filterHandler = new TextHandler(this, CAPABILITY_FILTER_ELEMENT, attributes);
-			} else if (name.equals(CAPABILITY_SELECTORS_ELEMENT)) {
-				selectorsHandler = new CapabilitySelectorsHandler(this, attributes);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-
-		protected void finished() {
-			if (isValidXML()) {
-				if (currentCapability != null) {
-					if (filterHandler != null) {
-						currentCapability.setFilter(filterHandler.getText());
-					}
-					if (selectorsHandler != null) {
-						currentCapability.setSelectors(selectorsHandler.getSelectors());
-					}
-				}
-			}
-		}
-	}
-
-	protected class ArtifactsHandler extends AbstractHandler {
-
-		private List artifacts;
-
-		public ArtifactsHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, ARTIFACT_KEYS_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			artifacts = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-		}
-
-		public IArtifactKey[] getArtifactKeys() {
-			return (IArtifactKey[]) artifacts.toArray(new IArtifactKey[artifacts.size()]);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(ARTIFACT_KEY_ELEMENT)) {
-				new ArtifactHandler(this, attributes, artifacts);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class ArtifactHandler extends AbstractHandler {
-
-		private final String[] required = new String[] {CLASSIFIER_ATTRIBUTE, ID_ATTRIBUTE, VERSION_ATTRIBUTE};
-
-		public ArtifactHandler(AbstractHandler parentHandler, Attributes attributes, List artifacts) {
-			super(parentHandler, ARTIFACT_KEY_ELEMENT);
-			String[] values = parseRequiredAttributes(attributes, required);
-			Version version = checkVersion(ARTIFACT_KEY_ELEMENT, VERSION_ATTRIBUTE, values[2]);
-			artifacts.add(new ArtifactKey(values[0], values[1], version));
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			invalidElement(name, attributes);
-		}
-	}
-
-	protected class CapabilitySelectorsHandler extends AbstractHandler {
-
-		private List selectors;
-
-		public CapabilitySelectorsHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, CAPABILITY_SELECTORS_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			selectors = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-		}
-
-		public String[] getSelectors() {
-			return (String[]) selectors.toArray(new String[selectors.size()]);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(CAPABILITY_SELECTOR_ELEMENT)) {
-				new TextHandler(this, CAPABILITY_SELECTOR_ELEMENT, attributes, selectors);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class TouchpointTypeHandler extends AbstractHandler {
-
-		private final String[] required = new String[] {ID_ATTRIBUTE, VERSION_ATTRIBUTE};
-
-		TouchpointType touchpointType = null;
-
-		public TouchpointTypeHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, TOUCHPOINT_TYPE_ELEMENT);
-			String[] values = parseRequiredAttributes(attributes, required);
-			Version version = checkVersion(TOUCHPOINT_TYPE_ELEMENT, VERSION_ATTRIBUTE, values[1]);
-			touchpointType = MetadataFactory.createTouchpointType(values[0], version);
-		}
-
-		public TouchpointType getTouchpointType() {
-			return touchpointType;
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			invalidElement(name, attributes);
-		}
-	}
-
-	protected class TouchpointDataHandler extends AbstractHandler {
-
-		TouchpointData touchpointData = null;
-
-		List data = null;
-
-		public TouchpointDataHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, TOUCHPOINT_DATA_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			data = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(4));
-		}
-
-		public TouchpointData[] getTouchpointData() {
-			TouchpointData[] result = new TouchpointData[data.size()];
-			for (int i = 0; i < result.length; i++)
-				result[i] = ((TouchpointInstructionsHandler) data.get(i)).getTouchpointData();
-			return result;
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(TOUCHPOINT_DATA_INSTRUCTIONS_ELEMENT)) {
-				data.add(new TouchpointInstructionsHandler(this, attributes, data));
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class TouchpointInstructionsHandler extends AbstractHandler {
-
-		Map instructions = null;
-
-		public TouchpointInstructionsHandler(AbstractHandler parentHandler, Attributes attributes, List data) {
-			super(parentHandler, TOUCHPOINT_DATA_INSTRUCTIONS_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			instructions = (size != null ? new LinkedHashMap(new Integer(size).intValue()) : new LinkedHashMap(4));
-		}
-
-		public TouchpointData getTouchpointData() {
-			return MetadataFactory.createTouchpointData(instructions);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(TOUCHPOINT_DATA_INSTRUCTION_ELEMENT)) {
-				new TouchpointInstructionHandler(this, attributes, instructions);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-	}
-
-	protected class TouchpointInstructionHandler extends TextHandler {
-
-		private final String[] required = new String[] {TOUCHPOINT_DATA_INSTRUCTION_KEY_ATTRIBUTE};
-
-		Map instructions = null;
-		String key = null;
-
-		public TouchpointInstructionHandler(AbstractHandler parentHandler, Attributes attributes, Map instructions) {
-			super(parentHandler, TOUCHPOINT_DATA_INSTRUCTION_ELEMENT);
-			key = parseRequiredAttributes(attributes, required)[0];
-			this.instructions = instructions;
-		}
-
-		protected void finished() {
-			if (isValidXML()) {
-				if (key != null) {
-					instructions.put(key, getText());
-				}
-			}
-		}
-	}
-
-	protected class UpdateDescriptorHandler extends TextHandler {
-		private final String[] required = new String[] {ID_ATTRIBUTE, VERSION_RANGE_ATTRIBUTE};
-		private final String[] optional = new String[] {UPDATE_DESCRIPTOR_SEVERITY, DESCRIPTION_ATTRIBUTE};
-
-		private IUpdateDescriptor descriptor;
-
-		public UpdateDescriptorHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, INSTALLABLE_UNIT_ELEMENT);
-			String[] values = parseAttributes(attributes, required, optional);
-			VersionRange range = checkVersionRange(REQUIRED_CAPABILITY_ELEMENT, VERSION_RANGE_ATTRIBUTE, values[1]);
-			int severity = new Integer(values[2]).intValue();
-			descriptor = MetadataFactory.createUpdateDescriptor(values[0], range, severity, values[3]);
-		}
-
-		public IUpdateDescriptor getUpdateDescriptor() {
-			return descriptor;
-		}
-	}
-
-	/**
-	 * 	Handler for a list of licenses.
-	 */
-	protected class LicensesHandler extends AbstractHandler {
-		// Note this handler is set up to handle multiple license elements, but for now
-		// the API for IInstallableUnit only reflects one.
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=216911
-		private List licenses;
-
-		public LicensesHandler(ContentHandler parentHandler, Attributes attributes) {
-			super(parentHandler, LICENSES_ELEMENT);
-			String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-			licenses = (size != null ? new ArrayList(new Integer(size).intValue()) : new ArrayList(2));
-		}
-
-		public License getLicense() {
-			if (licenses.size() == 0)
-				return null;
-			return (License) licenses.get(0);
-		}
-
-		public void startElement(String name, Attributes attributes) {
-			if (name.equals(LICENSE_ELEMENT)) {
-				new LicenseHandler(this, attributes, licenses);
-			} else {
-				invalidElement(name, attributes);
-			}
-		}
-
-	}
-
-	/**
-	 * 	Handler for a license in an list of licenses.
-	 */
-	protected class LicenseHandler extends TextHandler {
-
-		String url = null;
-
-		private final List licenses;
-
-		public LicenseHandler(AbstractHandler parentHandler, Attributes attributes, List licenses) {
-			super(parentHandler, LICENSE_ELEMENT);
-			url = parseOptionalAttribute(attributes, URL_ATTRIBUTE);
-			this.licenses = licenses;
-		}
-
-		protected void finished() {
-			if (isValidXML()) {
-				licenses.add(new License(url, getText()));
-			}
-		}
-	}
-
-	/**
-	 * 	Handler for a copyright.
-	 */
-	protected class CopyrightHandler extends TextHandler {
-
-		String url = null;
-		private Copyright copyright;
-
-		public CopyrightHandler(AbstractHandler parentHandler, Attributes attributes) {
-			super(parentHandler, COPYRIGHT_ELEMENT);
-			url = parseOptionalAttribute(attributes, URL_ATTRIBUTE);
-		}
-
-		protected void finished() {
-			if (isValidXML()) {
-				copyright = new Copyright(url, getText());
-			}
-		}
-
-		public Copyright getCopyright() {
-			return copyright;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataWriter.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataWriter.java
deleted file mode 100644
index 685932c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataWriter.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Genuitec, LLC - added license support
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository.io;
-
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.metadata.repository.Activator;
-import org.eclipse.equinox.internal.p2.persistence.XMLWriter;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-
-public abstract class MetadataWriter extends XMLWriter implements XMLConstants {
-
-	public MetadataWriter(OutputStream output, ProcessingInstruction[] piElements) throws UnsupportedEncodingException {
-		super(output, piElements);
-		// TODO: add a processing instruction for the metadata version
-	}
-
-	/**
-	 * Writes a list of {@link IInstallableUnit}.
-	 * @param units An Iterator of {@link IInstallableUnit}.
-	 * @param size The number of units to write
-	 */
-	protected void writeInstallableUnits(Iterator units, int size) {
-		if (size == 0)
-			return;
-		start(INSTALLABLE_UNITS_ELEMENT);
-		attribute(COLLECTION_SIZE_ATTRIBUTE, size);
-		while (units.hasNext())
-			writeInstallableUnit((IInstallableUnit) units.next());
-		end(INSTALLABLE_UNITS_ELEMENT);
-	}
-
-	protected void writeInstallableUnit(IInstallableUnit resolvedIU) {
-		IInstallableUnit iu = resolvedIU.unresolved();
-		start(INSTALLABLE_UNIT_ELEMENT);
-		attribute(ID_ATTRIBUTE, iu.getId());
-		attribute(VERSION_ATTRIBUTE, iu.getVersion());
-		attribute(SINGLETON_ATTRIBUTE, iu.isSingleton(), true);
-		//		attribute(FRAGMENT_ATTRIBUTE, iu.isFragment(), false);
-
-		if (iu.isFragment() && iu instanceof IInstallableUnitFragment) {
-			IInstallableUnitFragment fragment = (IInstallableUnitFragment) iu;
-			writeHostRequiredCapabilities(fragment.getHost());
-		}
-
-		writeUpdateDescriptor(resolvedIU, resolvedIU.getUpdateDescriptor());
-		writeProperties(iu.getProperties());
-		writeProvidedCapabilities(iu.getProvidedCapabilities());
-		writeRequiredCapabilities(iu.getRequiredCapabilities());
-		writeTrimmedCdata(IU_FILTER_ELEMENT, iu.getFilter());
-
-		writeArtifactKeys(iu.getArtifacts());
-		writeTouchpointType(iu.getTouchpointType());
-		writeTouchpointData(iu.getTouchpointData());
-		writeLicenses(iu.getLicense());
-		writeCopyright(iu.getCopyright());
-
-		end(INSTALLABLE_UNIT_ELEMENT);
-	}
-
-	protected void writeHostRequiredCapabilities(RequiredCapability[] capabilities) {
-		if (capabilities != null && capabilities.length > 0) {
-			start(HOST_REQUIRED_CAPABILITIES_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, capabilities.length);
-			for (int i = 0; i < capabilities.length; i++) {
-				writeRequiredCapability(capabilities[i]);
-			}
-			end(HOST_REQUIRED_CAPABILITIES_ELEMENT);
-		}
-	}
-
-	protected void writeProvidedCapabilities(ProvidedCapability[] capabilities) {
-		if (capabilities != null && capabilities.length > 0) {
-			start(PROVIDED_CAPABILITIES_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, capabilities.length);
-			for (int i = 0; i < capabilities.length; i++) {
-				start(PROVIDED_CAPABILITY_ELEMENT);
-				attribute(NAMESPACE_ATTRIBUTE, capabilities[i].getNamespace());
-				attribute(NAME_ATTRIBUTE, capabilities[i].getName());
-				attribute(VERSION_ATTRIBUTE, capabilities[i].getVersion());
-				end(PROVIDED_CAPABILITY_ELEMENT);
-			}
-			end(PROVIDED_CAPABILITIES_ELEMENT);
-		}
-	}
-
-	protected void writeRequiredCapabilities(RequiredCapability[] capabilities) {
-		if (capabilities != null && capabilities.length > 0) {
-			start(REQUIRED_CAPABILITIES_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, capabilities.length);
-			for (int i = 0; i < capabilities.length; i++) {
-				writeRequiredCapability(capabilities[i]);
-			}
-			end(REQUIRED_CAPABILITIES_ELEMENT);
-		}
-	}
-
-	protected void writeUpdateDescriptor(IInstallableUnit iu, IUpdateDescriptor descriptor) {
-		if (descriptor == null)
-			return;
-
-		start(UPDATE_DESCRIPTOR_ELEMENT);
-		attribute(ID_ATTRIBUTE, descriptor.getId());
-		attribute(VERSION_RANGE_ATTRIBUTE, descriptor.getRange());
-		attribute(UPDATE_DESCRIPTOR_SEVERITY, descriptor.getSeverity());
-		attribute(DESCRIPTION_ATTRIBUTE, descriptor.getDescription());
-		end(UPDATE_DESCRIPTOR_ELEMENT);
-
-	}
-
-	protected void writeRequiredCapability(RequiredCapability capability) {
-		start(REQUIRED_CAPABILITY_ELEMENT);
-		attribute(NAMESPACE_ATTRIBUTE, capability.getNamespace());
-		attribute(NAME_ATTRIBUTE, capability.getName());
-		attribute(VERSION_RANGE_ATTRIBUTE, capability.getRange());
-		attribute(CAPABILITY_OPTIONAL_ATTRIBUTE, capability.isOptional(), false);
-		attribute(CAPABILITY_MULTIPLE_ATTRIBUTE, capability.isMultiple(), false);
-		attribute(CAPABILITY_GREED_ATTRIBUTE, capability.isGreedy(), true);
-		writeTrimmedCdata(CAPABILITY_FILTER_ELEMENT, capability.getFilter());
-
-		String[] selectors = capability.getSelectors();
-		if (selectors.length > 0) {
-			start(CAPABILITY_SELECTORS_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, selectors.length);
-			for (int j = 0; j < selectors.length; j++) {
-				writeTrimmedCdata(CAPABILITY_SELECTOR_ELEMENT, selectors[j]);
-			}
-			end(CAPABILITY_SELECTORS_ELEMENT);
-		}
-
-		end(REQUIRED_CAPABILITY_ELEMENT);
-	}
-
-	protected void writeArtifactKeys(IArtifactKey[] artifactKeys) {
-		if (artifactKeys != null && artifactKeys.length > 0) {
-			start(ARTIFACT_KEYS_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, artifactKeys.length);
-			for (int i = 0; i < artifactKeys.length; i++) {
-				start(ARTIFACT_KEY_ELEMENT);
-				attribute(ARTIFACT_KEY_CLASSIFIER_ATTRIBUTE, artifactKeys[i].getClassifier());
-				attribute(ID_ATTRIBUTE, artifactKeys[i].getId());
-				attribute(VERSION_ATTRIBUTE, artifactKeys[i].getVersion());
-				end(ARTIFACT_KEY_ELEMENT);
-			}
-			end(ARTIFACT_KEYS_ELEMENT);
-		}
-	}
-
-	protected void writeTouchpointType(TouchpointType touchpointType) {
-		start(TOUCHPOINT_TYPE_ELEMENT);
-		attribute(ID_ATTRIBUTE, touchpointType.getId());
-		attribute(VERSION_ATTRIBUTE, touchpointType.getVersion());
-		end(TOUCHPOINT_TYPE_ELEMENT);
-	}
-
-	protected void writeTouchpointData(TouchpointData[] touchpointData) {
-		if (touchpointData != null && touchpointData.length > 0) {
-			start(TOUCHPOINT_DATA_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, touchpointData.length);
-			for (int i = 0; i < touchpointData.length; i++) {
-				TouchpointData nextData = touchpointData[i];
-				Map instructions = nextData.getInstructions();
-				if (instructions.size() > 0) {
-					start(TOUCHPOINT_DATA_INSTRUCTIONS_ELEMENT);
-					attribute(COLLECTION_SIZE_ATTRIBUTE, instructions.size());
-					for (Iterator iter = instructions.entrySet().iterator(); iter.hasNext();) {
-						Map.Entry entry = (Map.Entry) iter.next();
-						start(TOUCHPOINT_DATA_INSTRUCTION_ELEMENT);
-						attribute(TOUCHPOINT_DATA_INSTRUCTION_KEY_ATTRIBUTE, entry.getKey());
-						cdata((String) entry.getValue(), true);
-						end(TOUCHPOINT_DATA_INSTRUCTION_ELEMENT);
-					}
-				}
-			}
-			end(TOUCHPOINT_DATA_ELEMENT);
-		}
-	}
-
-	private void writeTrimmedCdata(String element, String filter) {
-		String trimmed;
-		if (filter != null && (trimmed = filter.trim()).length() > 0) {
-			start(element);
-			cdata(trimmed);
-			end(element);
-		}
-	}
-
-	private void writeLicenses(License license) {
-		if (license != null) {
-			// In the future there may be more than one license, so we write this 
-			// as a collection of one.
-			// See bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=216911
-			start(LICENSES_ELEMENT);
-			attribute(COLLECTION_SIZE_ATTRIBUTE, 1);
-			start(LICENSE_ELEMENT);
-			if (license.getURL() != null)
-				attribute(URL_ATTRIBUTE, license.getURL().toExternalForm());
-			cdata(license.getBody(), true);
-			end(LICENSE_ELEMENT);
-			end(LICENSES_ELEMENT);
-		}
-	}
-
-	private void writeCopyright(Copyright copyright) {
-		if (copyright != null) {
-			start(COPYRIGHT_ELEMENT);
-			try {
-				if (copyright.getURL() != null)
-					attribute(URL_ATTRIBUTE, copyright.getURL().toExternalForm());
-			} catch (IllegalStateException ise) {
-				LogHelper.log(new Status(IStatus.INFO, Activator.ID, "Error writing the copyright URL: " + copyright.getURL())); //$NON-NLS-1$
-			}
-			cdata(copyright.getBody(), true);
-			end(COPYRIGHT_ELEMENT);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/XMLConstants.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/XMLConstants.java
deleted file mode 100644
index 5e7957a..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/XMLConstants.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.repository.io;
-
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public interface XMLConstants extends org.eclipse.equinox.internal.p2.persistence.XMLConstants {
-
-	// Constants defining the structure of the XML for metadata objects
-
-	// A format version number for metadata XML.
-	public static final Version CURRENT_VERSION = new Version(0, 0, 1);
-	public static final VersionRange XML_TOLERANCE = new VersionRange(CURRENT_VERSION, true, new Version(2, 0, 0), false);
-
-	// Constants for processing Instructions
-	public static final String PI_METADATA_TARGET = "metadata"; //$NON-NLS-1$
-
-	// Constants for metadata elements
-	public static final String INSTALLABLE_UNITS_ELEMENT = "units"; //$NON-NLS-1$
-	public static final String INSTALLABLE_UNIT_ELEMENT = "unit"; //$NON-NLS-1$
-
-	// Constants for sub-elements of an installable unit element
-	public static final String ARTIFACT_KEYS_ELEMENT = "artifacts"; //$NON-NLS-1$
-	public static final String ARTIFACT_KEY_ELEMENT = "artifact"; //$NON-NLS-1$
-	public static final String REQUIRED_CAPABILITIES_ELEMENT = "requires"; //$NON-NLS-1$
-	public static final String HOST_REQUIRED_CAPABILITIES_ELEMENT = "hostRequirements"; //$NON-NLS-1$
-	public static final String REQUIRED_CAPABILITY_ELEMENT = "required"; //$NON-NLS-1$
-	public static final String PROVIDED_CAPABILITIES_ELEMENT = "provides"; //$NON-NLS-1$
-	public static final String PROVIDED_CAPABILITY_ELEMENT = "provided"; //$NON-NLS-1$
-	public static final String TOUCHPOINT_TYPE_ELEMENT = "touchpoint"; //$NON-NLS-1$
-	public static final String TOUCHPOINT_DATA_ELEMENT = "touchpointData"; //$NON-NLS-1$
-	public static final String IU_FILTER_ELEMENT = "filter"; //$NON-NLS-1$
-	public static final String UPDATE_DESCRIPTOR_ELEMENT = "update"; //$NON-NLS-1$
-
-	// Constants for attributes of an installable unit element
-	public static final String SINGLETON_ATTRIBUTE = "singleton"; //$NON-NLS-1$
-	public static final String FRAGMENT_ATTRIBUTE = "fragment"; //$NON-NLS-1$
-
-	// Constants for sub-elements of a required capability element
-	public static final String CAPABILITY_FILTER_ELEMENT = "filter"; //$NON-NLS-1$
-	public static final String CAPABILITY_SELECTORS_ELEMENT = "selectors"; //$NON-NLS-1$
-	public static final String CAPABILITY_SELECTOR_ELEMENT = "selector"; //$NON-NLS-1$
-
-	// Constants for attributes of a required capability element
-	public static final String CAPABILITY_OPTIONAL_ATTRIBUTE = "optional"; //$NON-NLS-1$
-	public static final String CAPABILITY_MULTIPLE_ATTRIBUTE = "multiple"; //$NON-NLS-1$
-	public static final String CAPABILITY_GREED_ATTRIBUTE = "greedy"; //$NON-NLS-1$
-
-	// Constants for attributes of an artifact key element
-	public static final String ARTIFACT_KEY_CLASSIFIER_ATTRIBUTE = "classifier"; //$NON-NLS-1$
-
-	// Constants for sub-elements of a touchpoint data element
-	public static final String TOUCHPOINT_DATA_INSTRUCTIONS_ELEMENT = "instructions"; //$NON-NLS-1$
-	public static final String TOUCHPOINT_DATA_INSTRUCTION_ELEMENT = "instruction"; //$NON-NLS-1$
-
-	// Constants for attributes of an a touchpoint data instruction element
-	public static final String TOUCHPOINT_DATA_INSTRUCTION_KEY_ATTRIBUTE = "key"; //$NON-NLS-1$
-
-	// Constants for attributes of an update descriptor
-	public static final String UPDATE_DESCRIPTOR_SEVERITY = "severity"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/messages.properties b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/messages.properties
deleted file mode 100644
index 7542e54..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/messages.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-io_failedRead=Unable to read repository at {0}
-io_failedWrite=Unable to write repository at {0}
-io_IncompatibleVersion=\
-	Metadata repository has incompatible version {0}; expected {1}
-io_parseError=\
-	Error parsing metadata repository
-
-REPO_LOADING = Loading the repository {0}
-REPOMGR_ADDING_REPO = Adding repository {0}
-
-repoMan_exists=Repository already exists at {0}
-repoMan_failedRead=The repository could not be read: {0}
-repoMan_internalError=Internal error
-repoMan_notExists=No repository found at {0}
-repoMan_unknownType=Unknown repository type at {0}
-repoMan_invalidLocation={0} is not a valid repository location
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java
deleted file mode 100644
index 8f10889..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepository.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.repository;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.query.IQueryable;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository;
-
-/**
- * A metadata repository stores information about a set of installable units
- * <p>
- * This interface is not intended to be implemented by clients.  Metadata repository
- * implementations must subclass {@link AbstractMetadataRepository} rather than 
- * implementing this interface directly.
- * </p>
- */
-public interface IMetadataRepository extends IRepository, IQueryable {
-
-	/** 
-	 * Add the given installable units to this repository
-	 * @param installableUnits the installable unts to add
-	 */
-	public void addInstallableUnits(IInstallableUnit[] installableUnits);
-
-	/**
-	 * Removes all installable units that match the given query from this repository.
-	 * 
-	 * @param query the installable units to remove
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return <code>true</code> if any units were actually removed, and
-	 * <code>false</code> otherwise
-	 */
-	public boolean removeInstallableUnits(Query query, IProgressMonitor monitor);
-
-	/**
-	 * Remove all installable units from this repository.  
-	 */
-	public void removeAll();
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepositoryManager.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepositoryManager.java
deleted file mode 100644
index b6c8480..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/p2/metadata/repository/IMetadataRepositoryManager.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.repository;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.RepositoryEvent;
-import org.eclipse.equinox.internal.provisional.p2.query.IQueryable;
-
-/**
- * The metadata repository manager is used to create, access, and manipulate
- * {@link IMetadataRepository} instances. The manager keeps track of a 
- * set of known repositories, and provides caching of these known repositories
- * to avoid unnecessary loading of repositories from the disk or network.  The
- * manager fires {@link RepositoryEvent}s when the set of known repositories
- * changes.
- * 
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IMetadataRepositoryManager extends IQueryable {
-
-	/**
-	 * Constant used to indicate that all repositories are of interest.
-	 */
-	public static final int REPOSITORIES_ALL = 0;
-
-	/**
-	 * Constant used to indicate that system repositories are of interest.
-	 * @see IRepository#PROP_SYSTEM
-	 * @see #getKnownRepositories(int)
-	 */
-	public static final int REPOSITORIES_SYSTEM = 1 << 0;
-
-	/**
-	 * Constant used to indicate that non-system repositories are of interest
-	 * @see IRepository#PROP_SYSTEM
-	 * @see #getKnownRepositories(int)
-	 */
-	public static final int REPOSITORIES_NON_SYSTEM = 1 << 1;
-
-	/**
-	 * Constant used to indicate that local repositories are of interest.
-	 * @see #getKnownRepositories(int)
-	 */
-	public static final int REPOSITORIES_LOCAL = 1 << 2;
-
-	/**
-	 * Repository type for a simple repository based on a URL or local file system location.
-	 */
-	public static final String TYPE_SIMPLE_REPOSITORY = "org.eclipse.equinox.p2.metadata.repository.simpleRepository"; //$NON-NLS-1$
-
-	/**
-	 * Adds a repository to the list of metadata repositories tracked by the repository
-	 * manager.
-	 * @param location The location of the metadata repository to add
-	 */
-	public void addRepository(URL location);
-
-	/**
-	 * Creates and returns a new empty metadata repository of the given type at 
-	 * the given location.
-	 * <p>
-	 * The resulting repository is <b>not</b> added to the list of repositories tracked by
-	 * the repository manager. Clients must make a subsequent call to {@link #addRepository(URL)}
-	 * if they want the repository manager to remember the repository for subsequent
-	 * load attempts.
-	 * </p>
-	 * 
-	 * @param location the location for the new repository
-	 * @param name the name of the new repository
-	 * @param type the kind of repository to create
-	 * @return the newly created repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>The repository type is unknown.</li>
-	 * <li>There was an error writing to the given repository location.</li>
-	 * <li>A repository already exists at that location.</li>
-	 * </ul>
-	 */
-	public IMetadataRepository createRepository(URL location, String name, String type) throws ProvisionException;
-
-	/**
-	 * Returns the metadata repository locations known to the repository manager.
-	 * <p>
-	 * Note that the repository manager does not guarantee that a valid repository
-	 * exists at any of the returned locations at any particular moment in time.
-	 * A subsequent attempt to load a repository at any of the given locations may
-	 * or may not succeed.
-	 * 
-	 * @param flags an integer bit-mask indicating which repositories should be
-	 * returned.  <code>REPOSITORIES_ALL</code> can be used as the mask when
-	 * all repositories should be returned.  Where multiple masks are combined, only
-	 * the repositories that satisfy all the given criteria are returned. For example,
-	 * a flag value of (REPOSITORIES_SYSTEM|REPOSITORIES_LOCAL) will only
-	 * return repositories that are both system and local repositories.
-	 * 
-	 * @return the locations of the repositories managed by this repository manager.
-	 * 
-	 * @see #REPOSITORIES_ALL
-	 * @see #REPOSITORIES_SYSTEM
-	 * @see #REPOSITORIES_LOCAL
-	 * @see #REPOSITORIES_NON_SYSTEM
-	 */
-	public URL[] getKnownRepositories(int flags);
-
-	/**
-	 * Returns the property associated with the repository at the given URL, 
-	 * without loading the repository.
-	 * <p>
-	 * Note that some properties for a repository can only be
-	 * determined when that repository is loaded.  This method will return <code>null</code>
-	 * for such properties.  Only values for the properties that are already
-	 * known by a repository manager will be returned. 
-	 * <p>
-	 * If a client wishes to retrieve a property value from a repository 
-	 * regardless of the cost of retrieving it, the client should load the 
-	 * repository and then retrieve the property from the repository itself.
-	 * 
-	 * @param location the URL of the repository in question
-	 * @param key the String key of the property desired
-	 * @return the value of the property, or <code>null</code> if the repository
-	 * does not exist, the value does not exist, or the property value 
-	 * could not be determined without loading the repository.
-	 * 
-	 * @see #loadRepository(URL, IProgressMonitor)
-	 * @see IRepository#getProperties()
-	 * 
-	 */
-	public String getRepositoryProperty(URL location, String key);
-
-	/**
-	 * Loads a repository corresponding to the given URL.  If a repository has
-	 * previously been loaded at the given location, the same cached repository
-	 * may be returned.
-	 * <p>
-	 * The resulting repository is added to the list of repositories tracked by
-	 * the repository manager. Clients must make a subsequent call to {@link #removeRepository(URL)}
-	 * if they do not want the repository manager to remember the repository for subsequent
-	 * load attempts.
-	 * </p>
-	 * 
-	 * @param location The location of the repository to load
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return The loaded metadata repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IMetadataRepository loadRepository(URL location, IProgressMonitor monitor) throws ProvisionException;
-
-	/**
-	 * Refreshes the repository corresponding to the given URL. This method discards
-	 * any cached state held by the repository manager and reloads the repository
-	 * contents. The provided repository location must already be known to the repository
-	 * manager.
-	 * 
-	 * @param location The location of the repository to refresh
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return The refreshed metadata repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>The location is not known to the repository manager.</li>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IMetadataRepository refreshRepository(URL location, IProgressMonitor monitor) throws ProvisionException;
-
-	/**
-	 * Removes the metadata repository at the given location from the list of
-	 * metadata repositories tracked by the repository manager.  The underlying
-	 * repository is not deleted.
-	 * 
-	 * @param location The location of the repository to remove
-	 * @return <code>true</code> if a repository was removed, and 
-	 * <code>false</code> otherwise.
-	 */
-	public boolean removeRepository(URL location);
-
-	/**
-	 * Validates a given URL and returns a status indicating whether a valid repository is likely
-	 * to be found at the given URL.  Callers must assume that the validity of a 
-	 * repository location cannot be completely determined until an attempt to load 
-	 * the repository is made.  
-	 * 
-	 * @param location The location of the repository to validate
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return A status indicating whether a valid repository is likely located at the
-	 * location.  A status with severity <code>OK</code> indicates that the repository is
-	 * likely to be loadable, or that as much validation as could be done was successful.
-	 * Reasons for a non-OK status include:
-	 * <ul>
-	 * <li>The specified location is not a valid repository location.</li>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IStatus validateRepositoryLocation(URL location, IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/AbstractMetadataRepository.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/AbstractMetadataRepository.java
deleted file mode 100644
index 2523c2b..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/AbstractMetadataRepository.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository;
-
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.osgi.framework.Version;
-
-/**
- * The common base class for all metadata repositories.
- * <p>
- * Clients may subclass this class.
- * <p>
- */
-public abstract class AbstractMetadataRepository extends AbstractRepository implements IMetadataRepository {
-
-	public static class RepositoryState {
-		public String Name;
-		public String Type;
-		public Version Version;
-		public String Provider;
-		public String Description;
-		public URL Location;
-		public Map Properties;
-		public IInstallableUnit[] Units;
-	}
-
-	public AbstractMetadataRepository() {
-		super("noName", "noType", "noVersion", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public abstract void initialize(RepositoryState state);
-
-	protected AbstractMetadataRepository(String name, String type, String version, URL location, String description, String provider) {
-		super(name, type, version, location, description, provider);
-	}
-
-	public void addInstallableUnits(IInstallableUnit[] installableUnit) {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-	}
-
-	public void removeAll() {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-	}
-
-	public boolean removeInstallableUnits(Query query, IProgressMonitor monitor) {
-		if (!isModifiable())
-			throw new UnsupportedOperationException("Repository not modifiable");
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/IMetadataRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/IMetadataRepositoryFactory.java
deleted file mode 100644
index e23d1ed..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/IMetadataRepositoryFactory.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-
-public interface IMetadataRepositoryFactory {
-
-	/**
-	 * Creates and returns a new empty metadata repository of the given type at 
-	 * the given location.
-	 * 
-	 * @param location the location for the new repository
-	 * @param name the name of the new repository
-	 * @param type the kind of repository to create
-	 * @return the newly created repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>The repository type is not supported by this factory.</li>
-	 * <li>There was an error writing to the given repository location.</li>
-	 * </ul>
-	 */
-	public IMetadataRepository create(URL location, String name, String type) throws ProvisionException;
-
-	/**
-	 * Loads a repository corresponding to the given URL.
-	 * 
-	 * @param location The location of the repository to load
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return The loaded metadata repository
-	 * @throws ProvisionException if the repository could not be created.  Reasons include:
-	 * <ul>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IMetadataRepository load(URL location, IProgressMonitor monitor) throws ProvisionException;
-
-	/**
-	 * Validates a candidate repository URL and returns a status indicating the
-	 * likelihood of a valid repository being located at the location.  Implementors 
-	 * should make all attempts to validate the URL that can be made without 
-	 * actually loading the repository.  The computation for this method must be 
-	 * significantly faster than loading the repository.  Early detectable error 
-	 * conditions, such as the non-existence of the location, or an inability to read 
-	 * the location, should be determined in this method.
-	 * 
-	 * @param location The location of the repository to validate
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting is not desired
-	 * @return A status indicating whether a valid repository is likely located at the
-	 * location.  A status with severity <code>OK</code> indicates that the repository is
-	 * likely to be loadable, or that as much validation as could be done was successful.
-	 * Reasons for a non-OK status include:
-	 * <ul>
-	 * <li>The specified location is not a valid repository location.</li>
-	 * <li>There is no existing repository at that location.</li>
-	 * <li>The repository at that location could not be read.</li>
-	 * </ul>
-	 */
-	public IStatus validate(URL location, IProgressMonitor monitor);
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/SimpleMetadataRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/SimpleMetadataRepositoryFactory.java
deleted file mode 100644
index 360ae1c..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/provisional/spi/p2/metadata/repository/SimpleMetadataRepositoryFactory.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository;
-
-import java.io.*;
-import java.net.URL;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.*;
-import org.eclipse.equinox.internal.p2.metadata.repository.*;
-import org.eclipse.equinox.internal.p2.metadata.repository.Messages;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.osgi.util.NLS;
-
-public class SimpleMetadataRepositoryFactory implements IMetadataRepositoryFactory {
-
-	private static final String JAR_EXTENSION = ".jar"; //$NON-NLS-1$
-	private static final String XML_EXTENSION = ".xml"; //$NON-NLS-1$
-	private static final String CONTENT_FILENAME = "content"; //$NON-NLS-1$
-	private static final String PROTOCOL_FILE = "file"; //$NON-NLS-1$
-
-	public IMetadataRepository create(URL location, String name, String type) {
-		if (location.getProtocol().equals("file")) //$NON-NLS-1$
-			return new LocalMetadataRepository(location, name);
-		return new URLMetadataRepository(location, name);
-	}
-
-	/**
-	 * Returns a file in the local file system that contains the contents of the
-	 * metadata repository at the given location.
-	 */
-	private File getLocalFile(URL location, IProgressMonitor monitor) throws IOException, ProvisionException {
-		File localFile = null;
-		URL jarLocation = URLMetadataRepository.getActualLocation(location, JAR_EXTENSION);
-		URL xmlLocation = URLMetadataRepository.getActualLocation(location, XML_EXTENSION);
-		// If the repository is local, we can return the repository file directly
-		if (PROTOCOL_FILE.equals(xmlLocation.getProtocol())) {
-			//look for a compressed local file
-			localFile = new File(jarLocation.getPath());
-			if (localFile.exists())
-				return localFile;
-			//look for an uncompressed local file
-			localFile = new File(xmlLocation.getPath());
-			if (localFile.exists())
-				return localFile;
-			String msg = NLS.bind(Messages.io_failedRead, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, msg, null));
-		}
-		//file is not local, so we need to get a locally cached copy
-		AgentLocation agentLocation = (AgentLocation) ServiceHelper.getService(Activator.getContext(), AgentLocation.class.getName());
-		URL dataArea = agentLocation.getDataArea(Activator.ID + "/cache/"); //$NON-NLS-1$
-		File dataAreaFile = URLUtil.toFile(dataArea);
-		int hashCode = location.hashCode();
-		URL remoteLocation;
-		long remoteTimestamp = getTransport().getLastModified(jarLocation.toExternalForm());
-		if (remoteTimestamp != 0) {
-			//remote file is in jar form
-			remoteLocation = jarLocation;
-			localFile = new File(dataAreaFile, CONTENT_FILENAME + hashCode + JAR_EXTENSION);
-		} else {
-			//check for remote file in xml form
-			remoteTimestamp = getTransport().getLastModified(xmlLocation.toExternalForm());
-			if (remoteTimestamp == 0) {
-				//there is no remote file in either form
-				String msg = NLS.bind(Messages.io_failedRead, location);
-				throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, msg, null));
-			}
-			remoteLocation = xmlLocation;
-			localFile = new File(dataAreaFile, CONTENT_FILENAME + hashCode + XML_EXTENSION);
-		}
-		long cacheTimestamp = localFile.lastModified();
-		//if the cache is out of date, refresh with latest contents
-		if (remoteTimestamp > cacheTimestamp) {
-			localFile.getParentFile().mkdirs();
-			OutputStream metadata = new BufferedOutputStream(new FileOutputStream(localFile));
-			try {
-				IStatus result = getTransport().download(remoteLocation.toExternalForm(), metadata, monitor);
-				if (!result.isOK())
-					throw new ProvisionException(result);
-			} finally {
-				metadata.close();
-			}
-		}
-		return localFile;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.IMetadataRepositoryFactory#validate(java.net.URL, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus validate(URL location, IProgressMonitor monitor) {
-		try {
-			validateAndLoad(location, false, monitor);
-		} catch (ProvisionException e) {
-			return e.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.IMetadataRepositoryFactory#load(java.net.URL, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IMetadataRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		return validateAndLoad(location, true, monitor);
-	}
-
-	protected IMetadataRepository validateAndLoad(URL location, boolean doLoad, IProgressMonitor monitor) throws ProvisionException {
-		long time = 0;
-		final String debugMsg = "Validating and loading metadata repository "; //$NON-NLS-1$
-		if (Tracing.DEBUG_METADATA_PARSING) {
-			Tracing.debug(debugMsg + location);
-			time = -System.currentTimeMillis();
-		}
-		SubMonitor sub = SubMonitor.convert(monitor, 400);
-		try {
-			File localFile = getLocalFile(location, sub.newChild(300));
-			InputStream inStream = new BufferedInputStream(new FileInputStream(localFile));
-			JarInputStream jarStream = null;
-			try {
-				//if reading from a jar, obtain a stream on the entry with the actual contents
-				if (localFile.getAbsolutePath().endsWith(JAR_EXTENSION)) {
-					jarStream = new JarInputStream(inStream);
-					JarEntry jarEntry = jarStream.getNextJarEntry();
-					String entryName = URLMetadataRepository.CONTENT_FILENAME + URLMetadataRepository.XML_EXTENSION;
-					while (jarEntry != null && (!entryName.equals(jarEntry.getName()))) {
-						jarEntry = jarStream.getNextJarEntry();
-					}
-					if (jarEntry == null)
-						throw new FileNotFoundException(NLS.bind(Messages.repoMan_invalidLocation, location));
-				}
-				//parse the repository descriptor file
-				sub.setWorkRemaining(100);
-				if (doLoad) {
-					InputStream descriptorStream = jarStream != null ? jarStream : inStream;
-					IMetadataRepository result = new MetadataRepositoryIO().read(localFile.toURL(), descriptorStream, sub.newChild(100));
-					if (result instanceof LocalMetadataRepository)
-						((LocalMetadataRepository) result).initializeAfterLoad(location);
-					if (result instanceof URLMetadataRepository)
-						((URLMetadataRepository) result).initializeAfterLoad(location);
-					if (Tracing.DEBUG_METADATA_PARSING) {
-						time += System.currentTimeMillis();
-						Tracing.debug(debugMsg + "time (ms): " + time); //$NON-NLS-1$ 
-					}
-					return result;
-				}
-			} finally {
-				safeClose(jarStream);
-				safeClose(inStream);
-			}
-		} catch (FileNotFoundException e) {
-			String msg = NLS.bind(Messages.io_failedRead, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, msg, e));
-		} catch (IOException e) {
-			String msg = NLS.bind(Messages.io_failedRead, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_READ, msg, e));
-		} finally {
-			if (monitor != null)
-				monitor.done();
-		}
-		return null;
-	}
-
-	/**
-	 * Closes a stream, ignoring any secondary exceptions
-	 */
-	private void safeClose(InputStream stream) {
-		if (stream == null)
-			return;
-		try {
-			stream.close();
-		} catch (IOException e) {
-			//ignore
-		}
-	}
-
-	private ECFMetadataTransport getTransport() {
-		return ECFMetadataTransport.getInstance();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/.classpath b/bundles/org.eclipse.equinox.p2.metadata/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.metadata/.project b/bundles/org.eclipse.equinox.p2.metadata/.project
deleted file mode 100644
index 86f07f8..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.metadata</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ed5b63b..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,347 +0,0 @@
-#Mon Nov 05 17:01:21 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 38d7fa9..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Mon Nov 05 17:01:21 EST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
deleted file mode 100644
index 9e25dde..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.metadata;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Export-Package: org.eclipse.equinox.internal.p2.metadata;
-  x-friends:="org.eclipse.equinox.p2.metadata.generator,
-   org.eclipse.equinox.p2.metadata.repository,
-   org.eclipse.equinox.p2.engine,
-   org.eclipse.equinox.p2.artifact.repository,
-   org.eclipse.equinox.p2.artifact.optimizers,
-   org.eclipse.equinox.p2.artifact.processors",
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query
-Import-Package: org.eclipse.osgi.service.resolver;version="1.1.0",
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0"
-Bundle-Activator: org.eclipse.equinox.internal.p2.metadata.MetadataActivator
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.equinox.p2.core
diff --git a/bundles/org.eclipse.equinox.p2.metadata/about.html b/bundles/org.eclipse.equinox.p2.metadata/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata/build.properties b/bundles/org.eclipse.equinox.p2.metadata/build.properties
deleted file mode 100644
index a6b8330..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.metadata/plugin.properties b/bundles/org.eclipse.equinox.p2.metadata/plugin.properties
deleted file mode 100644
index 45dee75..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Metadata
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ArtifactKey.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ArtifactKey.java
deleted file mode 100644
index ab018b9..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ArtifactKey.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata;
-
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.osgi.framework.Version;
-
-/** 
- * The concrete type for representing IArtifactKey's.
- * <p>
- * See {link IArtifact for a description of the lifecycle of artifact keys) 
- */
-public class ArtifactKey implements IArtifactKey {
-	private static final String SEPARATOR = ","; //$NON-NLS-1$
-
-	private final String id;
-	private final String classifier;
-	private final Version version;
-
-	private static String[] getArrayFromList(String stringList, String separator) {
-		if (stringList == null || stringList.trim().length() == 0)
-			return new String[0];
-		ArrayList list = new ArrayList();
-		boolean separatorSeen = true;
-		StringTokenizer tokens = new StringTokenizer(stringList, separator, true);
-		while (tokens.hasMoreTokens()) {
-			String token = tokens.nextToken().trim();
-			if (token.equals(separator)) {
-				if (separatorSeen)
-					list.add(""); //$NON-NLS-1$
-				separatorSeen = true;
-			} else {
-				separatorSeen = false;
-				if (token.length() != 0)
-					list.add(token);
-			}
-		}
-		if (separatorSeen)
-			list.add(""); //$NON-NLS-1$
-		return (String[]) list.toArray(new String[list.size()]);
-	}
-
-	public static IArtifactKey parse(String specification) {
-		String[] parts = getArrayFromList(specification, SEPARATOR);
-		if (parts.length < 2 || parts.length > 3)
-			throw new IllegalArgumentException("Unexpected number of parts in artifact key: " + specification); //$NON-NLS-1$
-		Version version = Version.emptyVersion;
-		if (parts.length == 3 && parts[2].trim().length() > 0)
-			version = Version.parseVersion(parts[2]);
-		try {
-			return new ArtifactKey(parts[0], parts[1], version);
-		} catch (IllegalArgumentException e) {
-			throw (IllegalArgumentException) new IllegalArgumentException("Wrong version syntax in artifact key: " + specification).initCause(e); //$NON-NLS-1$
-		}
-	}
-
-	public ArtifactKey(String classifier, String id, Version version) {
-		super();
-		Assert.isNotNull(classifier);
-		Assert.isNotNull(id);
-		Assert.isNotNull(version);
-		if (classifier.indexOf(SEPARATOR) != -1)
-			throw new IllegalArgumentException("comma not allowed in classifier"); //$NON-NLS-1$
-		if (id.indexOf(SEPARATOR) != -1)
-			throw new IllegalArgumentException("comma not allowed in id"); //$NON-NLS-1$
-		this.classifier = classifier;
-		this.id = id;
-		this.version = version;
-	}
-
-	public String getClassifier() {
-		return classifier;
-	}
-
-	public Version getVersion() {
-		return version;
-	}
-
-	public int hashCode() {
-		int hash = id.hashCode();
-		hash = 17 * hash + getVersion().hashCode();
-		hash = 17 * hash + classifier.hashCode();
-		return hash;
-	}
-
-	public String toString() {
-		return id + '/' + classifier + '/' + getVersion();
-	}
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof IArtifactKey))
-			return false;
-		IArtifactKey ak = (IArtifactKey) obj;
-		return ak.getId().equals(id) && ak.getVersion().equals(getVersion()) && ak.getClassifier().equals(classifier);
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String toExternalForm() {
-		StringBuffer data = new StringBuffer(classifier).append(SEPARATOR);
-		data.append(id).append(SEPARATOR);
-		data.append(version.toString());
-		return data.toString();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnit.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnit.java
deleted file mode 100644
index 943fcc6..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnit.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Genuitec, LLC - added license support
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata;
-
-import java.util.ArrayList;
-import java.util.Map;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.osgi.framework.Version;
-
-public class InstallableUnit implements IInstallableUnit {
-
-	private static final OrderedProperties NO_PROPERTIES = new OrderedProperties();
-	private static final ProvidedCapability[] NO_PROVIDES = new ProvidedCapability[0];
-	private static final RequiredCapability[] NO_REQUIRES = new RequiredCapability[0];
-	private static final TouchpointData[] NO_TOUCHPOINT_DATA = new TouchpointData[0];
-
-	String applicabilityFilter;
-	private IArtifactKey[] artifacts;
-	private String filter;
-
-	private String id;
-
-	private OrderedProperties properties;
-	ProvidedCapability[] providedCapabilities = NO_PROVIDES;
-	private RequiredCapability[] requires;
-
-	private boolean singleton;
-
-	private ArrayList touchpointData = null;
-
-	private TouchpointType touchpointType;
-
-	private Version version;
-
-	private IUpdateDescriptor updateInfo;
-	private License license;
-	private Copyright copyright;
-
-	public InstallableUnit() {
-		super();
-	}
-
-	public void addProperties(Map newProperties) {
-		if (properties == null)
-			properties = new OrderedProperties(newProperties.size());
-		properties.putAll(newProperties);
-	}
-
-	protected void addProvidedCapability(ProvidedCapability capability) {
-		if (providedCapabilities != null && providedCapabilities.length > 0) {
-			ProvidedCapability[] result = new ProvidedCapability[providedCapabilities.length + 1];
-			result[0] = capability;
-			System.arraycopy(providedCapabilities, 0, result, 1, providedCapabilities.length);
-			providedCapabilities = result;
-		} else {
-			providedCapabilities = new ProvidedCapability[] {capability};
-		}
-	}
-
-	public void addTouchpointData(TouchpointData newData) {
-		ensureTouchpointDataCapacity(1);
-		touchpointData.add(newData);
-	}
-
-	public int compareTo(Object toCompareTo) {
-		if (!(toCompareTo instanceof IInstallableUnit)) {
-			return -1;
-		}
-		IInstallableUnit other = (IInstallableUnit) toCompareTo;
-		if (getId().compareTo(other.getId()) == 0)
-			return (getVersion().compareTo(other.getVersion()));
-		return getId().compareTo(other.getId());
-	}
-
-	private void ensureTouchpointDataCapacity(int size) {
-		if (touchpointData != null) {
-			touchpointData.ensureCapacity(size);
-		} else {
-			touchpointData = new ArrayList(size);
-		}
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (!(obj instanceof IInstallableUnit))
-			return false;
-		final IInstallableUnit other = (IInstallableUnit) obj;
-		if (id == null) {
-			if (other.getId() != null)
-				return false;
-		} else if (!id.equals(other.getId()))
-			return false;
-		if (getVersion() == null) {
-			if (other.getVersion() != null)
-				return false;
-		} else if (!getVersion().equals(other.getVersion()))
-			return false;
-		return true;
-	}
-
-	public String getApplicabilityFilter() {
-		return applicabilityFilter;
-	}
-
-	public IArtifactKey[] getArtifacts() {
-		return artifacts;
-	}
-
-	public String getFilter() {
-		return filter;
-	}
-
-	public IInstallableUnitFragment[] getFragments() {
-		return null;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Get an <i>unmodifiable copy</i> of the properties
-	 * associated with the installable unit.
-	 * 
-	 * @return an <i>unmodifiable copy</i> of the IU properties.
-	 */
-	public Map getProperties() {
-		return OrderedProperties.unmodifiableProperties(properties());
-	}
-
-	public String getProperty(String key) {
-		return properties().getProperty(key);
-	}
-
-	public ProvidedCapability[] getProvidedCapabilities() {
-		return (providedCapabilities != null ? providedCapabilities : NO_PROVIDES);
-	}
-
-	public RequiredCapability[] getRequiredCapabilities() {
-		return requires != null ? requires : NO_REQUIRES;
-
-	}
-
-	public TouchpointData[] getTouchpointData() {
-		return (touchpointData == null ? NO_TOUCHPOINT_DATA //
-				: (TouchpointData[]) touchpointData.toArray(new TouchpointData[touchpointData.size()]));
-	}
-
-	public TouchpointType getTouchpointType() {
-		return touchpointType != null ? touchpointType : TouchpointType.NONE;
-	}
-
-	public Version getVersion() {
-		return version;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((id == null) ? 0 : id.hashCode());
-		result = prime * result + ((getVersion() == null) ? 0 : getVersion().hashCode());
-		return result;
-	}
-
-	public boolean isFragment() {
-		return false;
-	}
-
-	public boolean isResolved() {
-		return false;
-	}
-
-	public boolean isSingleton() {
-		return singleton;
-	}
-
-	private OrderedProperties properties() {
-		return (properties != null ? properties : NO_PROPERTIES);
-	}
-
-	public void setApplicabilityFilter(String ldapFilter) {
-		applicabilityFilter = ldapFilter;
-	}
-
-	public void setArtifacts(IArtifactKey[] value) {
-		artifacts = value;
-	}
-
-	public void setCapabilities(ProvidedCapability[] exportedCapabilities) {
-		providedCapabilities = exportedCapabilities;
-	}
-
-	public void setFilter(String filter) {
-		this.filter = filter;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	// TODO: resolve the schizophrenia between the singleton immutable data
-	//	   	 and the public returned touchpoint data array.
-	public void setImmutableTouchpointData(TouchpointData immutableData) {
-		ensureTouchpointDataCapacity(4);
-		touchpointData.add(immutableData);
-	}
-
-	public String setProperty(String key, String value) {
-		if (value == null)
-			return (properties != null ? (String) properties.remove(key) : null);
-		if (properties == null)
-			properties = new OrderedProperties();
-		return (String) properties.setProperty(key, value);
-	}
-
-	public void setRequiredCapabilities(RequiredCapability[] capabilities) {
-		if (capabilities == NO_REQUIRES) {
-			this.requires = null;
-		} else {
-			//copy array for safety
-			this.requires = (RequiredCapability[]) capabilities.clone();
-		}
-	}
-
-	public void setSingleton(boolean singleton) {
-		this.singleton = singleton;
-	}
-
-	public void setTouchpointType(TouchpointType type) {
-		this.touchpointType = (type != TouchpointType.NONE ? type : null);
-	}
-
-	public void setVersion(Version newVersion) {
-		this.version = (newVersion != null ? newVersion : Version.emptyVersion);
-	}
-
-	public String toString() {
-		return id + ' ' + getVersion();
-	}
-
-	public IInstallableUnit unresolved() {
-		return this;
-	}
-
-	public IUpdateDescriptor getUpdateDescriptor() {
-		return updateInfo;
-	}
-
-	public void setUpdateDescriptor(IUpdateDescriptor updateInfo) {
-		this.updateInfo = updateInfo;
-	}
-
-	public void setLicense(License license) {
-		this.license = license;
-	}
-
-	public License getLicense() {
-		return license;
-	}
-
-	public void setCopyright(Copyright copyright) {
-		this.copyright = copyright;
-	}
-
-	public Copyright getCopyright() {
-		return copyright;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitFragment.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitFragment.java
deleted file mode 100644
index 7c8b725..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitFragment.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnitFragment;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-
-public class InstallableUnitFragment extends InstallableUnit implements IInstallableUnitFragment {
-
-	private RequiredCapability[] hostRequirements;
-
-	public InstallableUnitFragment() {
-		super();
-	}
-
-	public void setHost(RequiredCapability[] hostRequirements) {
-		if (hostRequirements == null)
-			return;
-		this.hostRequirements = hostRequirements;
-		addRequiredCapability(hostRequirements);
-	}
-
-	private void addRequiredCapability(RequiredCapability[] toAdd) {
-		RequiredCapability[] current = super.getRequiredCapabilities();
-		RequiredCapability[] result = new RequiredCapability[current.length + toAdd.length];
-		System.arraycopy(current, 0, result, 0, current.length);
-		System.arraycopy(toAdd, 0, result, current.length, toAdd.length);
-		setRequiredCapabilities(result);
-	}
-
-	public boolean isFragment() {
-		return true;
-	}
-
-	public RequiredCapability[] getHost() {
-		return hostRequirements;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/Messages.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/Messages.java
deleted file mode 100644
index 8cfcdbc..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/Messages.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.metadata.messages"; //$NON-NLS-1$
-
-	static {
-		// load message values from bundle file and assign to fields below
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String QUERY_PROGRESS;
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/MetadataActivator.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/MetadataActivator.java
deleted file mode 100644
index efa03e3..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/MetadataActivator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class MetadataActivator implements BundleActivator {
-	public static final String PI_METADATA = "org.eclipse.equinox.p2.metadata"; //$NON-NLS-1$
-	public static BundleContext context;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext aContext) throws Exception {
-		MetadataActivator.context = aContext;
-	}
-
-	public void stop(BundleContext aContext) throws Exception {
-		MetadataActivator.context = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java
deleted file mode 100644
index 821cea3..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors: 
- * 		IBM Corporation - initial API and implementation
- * 		Genuitec, LLC - added license support
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata;
-
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.osgi.framework.Version;
-
-public class ResolvedInstallableUnit implements IInstallableUnit {
-	private static IInstallableUnit[] NO_IU = new IInstallableUnit[0];
-
-	private IInstallableUnit[] fragments = NO_IU;
-	protected IInstallableUnit original;
-
-	public ResolvedInstallableUnit(IInstallableUnit resolved) {
-		this.original = resolved;
-	}
-
-	public ResolvedInstallableUnit(IInstallableUnit resolved, IInstallableUnitFragment[] fragments) {
-		this.original = resolved;
-		this.fragments = fragments;
-	}
-
-	public IInstallableUnitFragment[] getFragments() {
-		ArrayList result = new ArrayList();
-		if (fragments != null)
-			result.addAll(Arrays.asList(fragments));
-		for (int i = 0; i < result.size(); i++) {
-			IInstallableUnit fragment = (IInstallableUnit) result.get(i);
-			if (fragment.isResolved())
-				result.addAll(Arrays.asList(fragment.getFragments()));
-		}
-		return (IInstallableUnitFragment[]) result.toArray(new IInstallableUnitFragment[result.size()]);
-	}
-
-	public IArtifactKey[] getArtifacts() {
-		return original.getArtifacts();
-	}
-
-	public String getFilter() {
-		return original.getFilter();
-	}
-
-	public String getId() {
-		return original.getId();
-	}
-
-	public String getProperty(String key) {
-		return original.getProperty(key);
-	}
-
-	public Map getProperties() {
-		return original.getProperties();
-	}
-
-	public ProvidedCapability[] getProvidedCapabilities() {
-		ArrayList result = new ArrayList();
-		result.addAll(Arrays.asList(original.getProvidedCapabilities()));
-		for (int i = 0; i < fragments.length; i++) {
-			result.addAll(Arrays.asList(fragments[i].getProvidedCapabilities()));
-		}
-		return original.getProvidedCapabilities();
-	}
-
-	public RequiredCapability[] getRequiredCapabilities() {
-		ArrayList result = new ArrayList();
-		result.addAll(Arrays.asList(original.getRequiredCapabilities()));
-		for (int i = 0; i < fragments.length; i++) {
-			result.addAll(Arrays.asList(fragments[i].getRequiredCapabilities()));
-		}
-		return (RequiredCapability[]) result.toArray(new RequiredCapability[result.size()]);
-
-	}
-
-	public TouchpointData[] getTouchpointData() {
-		ArrayList result = new ArrayList();
-		result.addAll(Arrays.asList(original.getTouchpointData()));
-		for (int i = 0; i < fragments.length; i++) {
-			TouchpointData[] data = fragments[i].getTouchpointData();
-			for (int j = 0; j < data.length; j++) {
-				result.add(data[j]);
-			}
-		}
-		return (TouchpointData[]) result.toArray(new TouchpointData[result.size()]);
-	}
-
-	public TouchpointType getTouchpointType() {
-		return original.getTouchpointType();
-	}
-
-	public Version getVersion() {
-		return original.getVersion();
-	}
-
-	public boolean isFragment() {
-		return original.isFragment();
-	}
-
-	public boolean isSingleton() {
-		return original.isSingleton();
-	}
-
-	public boolean equals(Object obj) {
-		//TODO This is pretty ugly....
-		boolean result = original.equals(obj);
-		if (result)
-			return true;
-		if (obj instanceof ResolvedInstallableUnit)
-			return original.equals(((ResolvedInstallableUnit) obj).original);
-		return false;
-	}
-
-	public int hashCode() {
-		// TODO Auto-generated method stub
-		return original.hashCode();
-	}
-
-	public String toString() {
-		return "[R]" + original.toString(); //$NON-NLS-1$
-	}
-
-	public IInstallableUnit getOriginal() {
-		return original;
-	}
-
-	public int compareTo(Object toCompareTo) {
-		if (!(toCompareTo instanceof IInstallableUnit)) {
-			return -1;
-		}
-		IInstallableUnit other = (IInstallableUnit) toCompareTo;
-		if (getId().compareTo(other.getId()) == 0)
-			return (getVersion().compareTo(other.getVersion()));
-		return getId().compareTo(other.getId());
-	}
-
-	public boolean isResolved() {
-		return true;
-	}
-
-	public IInstallableUnit unresolved() {
-		return original.unresolved();
-	}
-
-	public IUpdateDescriptor getUpdateDescriptor() {
-		return original.getUpdateDescriptor();
-	}
-
-	public License getLicense() {
-		return original.getLicense();
-	}
-
-	public Copyright getCopyright() {
-		return original.getCopyright();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/UpdateDescriptor.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/UpdateDescriptor.java
deleted file mode 100644
index e379219..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/UpdateDescriptor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IUpdateDescriptor;
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-public class UpdateDescriptor implements IUpdateDescriptor {
-	private String description;
-	private String id;
-	private VersionRange range;
-	private int severity;
-
-	public UpdateDescriptor(String id, VersionRange range, int severity, String description) {
-		this.id = id;
-		this.range = range;
-		this.severity = severity;
-		this.description = description;
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public VersionRange getRange() {
-		return range;
-	}
-
-	public int getSeverity() {
-		return severity;
-	}
-
-	public boolean isUpdateOf(IInstallableUnit iu) {
-		if (!id.equals(iu.getId()))
-			return false;
-		if (range.isIncluded(iu.getVersion()))
-			return true;
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/messages.properties b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/messages.properties
deleted file mode 100644
index 138d562..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-QUERY_PROGRESS=Executing query.
-
-
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java
deleted file mode 100644
index f4d1548..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-/**
- * The <code>Copyright</code> class represents a software copyright.  A copyright has 
- * required body text which may be the full text or an annotation.  An optional URL field can be specified
- * which links to full text.  
- */
-public class Copyright {
-	/**
-	 * The <code>body</code> contains the descriptive text for the coypright. This may
-	 * be a summary for a copyright specified in a URL.
-	 */
-	private final String body;
-
-	/**
-	 * The <code>url</code> is the URL of the copyright.
-	 */
-	private URL url;
-
-	/**
-	 * Creates a new copyright.
-	 * The body should contain the full text of the copyright.
-	 * @param urlString the string describing the URL of the full copyright text, may be <code>null</code>
-	 * @param body the copyright body, cannot be <code>null</code>
-	 * @throws IllegalArgumentException when the <code>body</code> is <code>null</code>
-	 */
-	public Copyright(String urlString, String body) {
-		if (body == null)
-			throw new IllegalArgumentException("body cannot be null"); //$NON-NLS-1$
-		if (urlString != null)
-			try {
-				url = new URL(urlString);
-			} catch (MalformedURLException e) {
-				url = null;
-			}
-		this.body = body;
-	}
-
-	/**
-	 * Returns the URL containing the full description of the license.
-	 * May be <code>null</code>.
-	 */
-	public URL getURL() {
-		return url;
-	}
-
-	/**
-	 * Returns the license body.
-	 * @return the license body, never <code>null</code>
-	 */
-	public String getBody() {
-		return body;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IArtifactKey.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IArtifactKey.java
deleted file mode 100644
index 0fac719..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IArtifactKey.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import org.osgi.framework.Version;
-
-/**
- * Provide standardized artifact information to uniquely identify the 
- * corresponding bytes (perhaps not stored as a file). 
- * <p>
- * Artifact keys represent both a unique opaque identifier as well as structured 
- * and standardized pieces of information.
- */
-
-public interface IArtifactKey {
-
-	/**
-	 * Returns the classifier for this artifact key. The returned value can be empty.
-	 * @return the classifier segment of the key.
-	 */
-	public String getClassifier();
-
-	/**
-	 * Returns the id for this artifact key. The returned value can be empty.
-	 * @return the classifier segment of the key.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the version for this artifact key. 
-	 * @return the version segment of the key.
-	 */
-	public Version getVersion();
-
-	/**
-	 * Returns the canonical string form of this artifact key.
-	 * @return the canonical string representing this key
-	 */
-	public String toExternalForm();
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnit.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnit.java
deleted file mode 100644
index 54611e5..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnit.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 		IBM Corporation - initial API and implementation
- * 		Genuitec, LLC - added license support
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import java.util.Map;
-import org.osgi.framework.Version;
-
-public interface IInstallableUnit extends Comparable {
-
-	/**
-	 * A capability namespace representing a particular profile flavor.
-	 */
-	public static final String NAMESPACE_FLAVOR = "org.eclipse.equinox.p2.flavor"; //$NON-NLS-1$
-
-	/**
-	 * A capability namespace representing a particular InstallableUnit by id.
-	 * Each InstallableUnit automatically provides a capability in this namespace representing
-	 * itself, and other InstallableUnits can require such a capability to state that they
-	 * require a particular InstallableUnit to be present.
-	 * 
-	 * @see IInstallableUnit#getId()
-	 */
-	public static final String NAMESPACE_IU_ID = "org.eclipse.equinox.p2.iu"; //$NON-NLS-1$
-
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.partial.iu"</code>) for a 
-	 * boolean property indicating the IU is generated from incomplete information and
-	 * should be replaced by the complete IU if available.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_PARTIAL_IU = "org.eclipse.equinox.p2.partial.iu"; //$NON-NLS-1$
-
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.type.profile"</code>) for a 
-	 * boolean property indicating that an installable unit is a profile.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_TYPE_PROFILE = "org.eclipse.equinox.p2.type.profile"; //$NON-NLS-1$	 
-
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.type.category"</code>) for a 
-	 * boolean property indicating that an installable unit is a category.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_TYPE_CATEGORY = "org.eclipse.equinox.p2.type.category"; //$NON-NLS-1$
-
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.type.fragment"</code>) for a 
-	 * boolean property indicating that an installable unit is a fragment.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_TYPE_FRAGMENT = "org.eclipse.equinox.p2.type.fragment"; //$NON-NLS-1$
-
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.type.group"</code>) for a 
-	 * boolean property indicating that an installable unit is a group.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_TYPE_GROUP = "org.eclipse.equinox.p2.type.group"; //$NON-NLS-1$
-
-	//TODO Move to UI
-	public static final String PROP_PROFILE_ROOT_IU = "org.eclipse.equinox.p2.type.root"; //$NON-NLS-1$
-
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.contact"</code>) for a 
-	 * String property containing a contact address where problems can be reported, 
-	 * such as an email address.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_CONTACT = "org.eclipse.equinox.p2.contact"; //$NON-NLS-1$
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.description"</code>) for a 
-	 * String property containing a human-readable description of the installable unit.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_DESCRIPTION = "org.eclipse.equinox.p2.description"; //$NON-NLS-1$
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.doc.url"</code>) for a 
-	 * String property containing a URL for documentation about the installable unit.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_DOC_URL = "org.eclipse.equinox.p2.doc.url"; //$NON-NLS-1$
-
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.name"</code>) for a 
-	 * String property containing a human-readable name for the installable unit.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_NAME = "org.eclipse.equinox.p2.name"; //$NON-NLS-1$
-	/**
-	 * A property key (value <code>"org.eclipse.equinox.p2.provider"</code>) for a 
-	 * String property containing information about the vendor or provider of the 
-	 * installable unit.
-	 * 
-	 * @see #getProperty(String)
-	 */
-	public static final String PROP_PROVIDER = "org.eclipse.equinox.p2.provider"; //$NON-NLS-1$
-
-	public IArtifactKey[] getArtifacts();
-
-	/**
-	 * Returns the filter on this installable unit. The filter is matched against
-	 * the selection context of the profile the unit is installed into. An IU will not
-	 * be installed if it has a filter condition that is not satisfied by the context.
-	 * 
-	 * See Profile#getSelectionContext.
-	 */
-	public String getFilter();
-
-	/**
-	 * Returns the fragments that have been bound to this installable unit, or
-	 * <code>null</code> if this unit is not resolved.
-	 * 
-	 * @see #isResolved()
-	 * @return The fragments bound to this installable unit, or <code>null</code>
-	 */
-	public IInstallableUnitFragment[] getFragments();
-
-	public String getId();
-
-	/**
-	 * Get an <i>unmodifiable copy</i> of the properties
-	 * associated with the installable unit.
-	 * 
-	 * @return an <i>unmodifiable copy</i> of the IU properties.
-	 */
-	public Map getProperties();
-
-	public String getProperty(String key);
-
-	public ProvidedCapability[] getProvidedCapabilities();
-
-	public RequiredCapability[] getRequiredCapabilities();
-
-	public TouchpointData[] getTouchpointData();
-
-	public TouchpointType getTouchpointType();
-
-	public Version getVersion();
-
-	public boolean isFragment();
-
-	/**
-	 * Returns whether this installable unit has been resolved. A resolved
-	 * installable unit represents the union of an installable unit and some
-	 * fragments.
-	 * 
-	 * @see #getFragments()
-	 * @see #unresolved()
-	 * @return <code>true</code> if this installable unit is resolved, and 
-	 * <code>false</code> otherwise.
-	 */
-	public boolean isResolved();
-
-	public boolean isSingleton();
-
-	/**
-	 * Returns the unresolved equivalent of this installable unit. If this unit is
-	 * already unresolved, this method returns the receiver. Otherwise, this
-	 * method returns an installable unit with the same id and version, but without
-	 * any fragments attached.
-	 * 
-	 * @see #getFragments()
-	 * @see #isResolved()
-	 * @return The unresolved equivalent of this unit
-	 */
-	public IInstallableUnit unresolved();
-
-	/**
-	 * Returns information about what this installable unit is an update of.
-	 * @return The lineage information about the installable unit
-	 */
-	public IUpdateDescriptor getUpdateDescriptor();
-
-	/**
-	 * Returns the license that applies to this installable unit.
-	 * @return the license that applies to this installable unit or <code>null</code>
-	 */
-	public License getLicense();
-
-	/**
-	 * Returns the copyright that applies to this installable unit.
-	 * @return the copyright that applies to this installable unit or <code>null</code>
-	 */
-	public Copyright getCopyright();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnitFragment.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnitFragment.java
deleted file mode 100644
index 544de64..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IInstallableUnitFragment.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-public interface IInstallableUnitFragment extends IInstallableUnit {
-	public RequiredCapability[] getHost();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IUpdateDescriptor.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IUpdateDescriptor.java
deleted file mode 100644
index 38b3f4a..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/IUpdateDescriptor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-public interface IUpdateDescriptor {
-	public final int NORMAL = 0;
-	public final int HIGH = 1;
-
-	/**
-	 * The identifier of an installable unit that the installable unit containing this object is an update for.
-	 * @return An installable unit id
-	 */
-	public String getId();
-
-	/**
-	 * The range of the installable unit that the installable unit containing this object is an update for.
-	 * @return A version range
-	 */
-	public VersionRange getRange();
-
-	/**
-	 * The description of the update. This allows to explain what the update is about.
-	 * @return A description
-	 */
-	public String getDescription();
-
-	/**
-	 * The importance of the update descriptor represented as a int.
-	 * @return The severity.
-	 */
-	public int getSeverity();
-
-	/**
-	 * Helper method indicating whether or not an installable unit is an update for the installable unit passed  
-	 * @param iu the installable unit checked
-	 * @return A boolean indicating whether or not an installable unit is an update.
-	 */
-	public boolean isUpdateOf(IInstallableUnit iu);
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java
deleted file mode 100644
index 33d9ec9..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Genuitec, LLC and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 		Genuitec, LLC - initial API and implementation
- * 		IBM Corporation - optional URL field instead of required name
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import java.io.UnsupportedEncodingException;
-import java.math.BigInteger;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * The <code>License</code> class represents a software license.  A license has required body text
- * which may be the full text or an annotation.  An optional URL field can be specified
- * which links to full text.  Licenses can be easily compared using their digests.
- */
-public class License {
-	/**
-	 * The <code>body</code> contains the descriptive text for the license. This may
-	 * be a summary for a full license specified in a URL.
-	 */
-	private final String body;
-
-	/**
-	 * The <code>url</code> is the URL of the license.
-	 */
-	private URL url;
-
-	/**
-	 * The <code>digest</code> is the cached message digest of the normalized body
-	 */
-	private BigInteger digest;
-
-	/**
-	 * Creates a new license object which is identified by users using the <code>body</code> field.
-	 * The body should contain either the full text of the license or an annotation for a license
-	 * fully specified in the URL at urlString.
-	 * @param urlString the string describing the URL of the full license, may be <code>null</code>
-	 * @param body the license body, cannot be <code>null</code>
-	 * @throws IllegalArgumentException when the <code>body</code> is <code>null</code>
-	 */
-	public License(String urlString, String body) {
-		if (body == null)
-			throw new IllegalArgumentException("body cannot be null"); //$NON-NLS-1$
-		if (urlString != null)
-			try {
-				url = new URL(urlString);
-			} catch (MalformedURLException e) {
-				url = null;
-			}
-		this.body = body;
-	}
-
-	/**
-	 * Returns the URL containing the full description of the license.
-	 * May be <code>null</code>.
-	 */
-	public URL getURL() {
-		return url;
-	}
-
-	/**
-	 * Returns the license body.
-	 * @return the license body, never <code>null</code>
-	 */
-	public String getBody() {
-		return body;
-	}
-
-	/**
-	 * Returns the message digest of the license body.  The digest is calculated on a normalized
-	 * version of the license where all whitespace has been reduced to one space.
-	 * @return the message digest as a <code>BigInteger</code>, never <code>null</code>
-	 */
-	public synchronized BigInteger getDigest() {
-		if (digest == null)
-			digest = calculateLicenseDigest();
-		return digest;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (obj == this)
-			return true;
-		if (obj == null)
-			return false;
-		if (obj instanceof License) {
-			License other = (License) obj;
-			if (other.getDigest().equals(getDigest()))
-				return true;
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return getDigest().hashCode();
-	}
-
-	private BigInteger calculateLicenseDigest() {
-		String message = normalize(getBody());
-		try {
-			MessageDigest algorithm = MessageDigest.getInstance("MD5"); //$NON-NLS-1$
-			algorithm.reset();
-			algorithm.update(message.getBytes("UTF-8")); //$NON-NLS-1$
-			byte[] digestBytes = algorithm.digest();
-			return new BigInteger(1, digestBytes);
-		} catch (NoSuchAlgorithmException e) {
-			throw new RuntimeException(e);
-		} catch (UnsupportedEncodingException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Replace all sequences of whitespace with a single whitespace character.
-	 */
-	private String normalize(String license) {
-		String text = license.trim();
-		StringBuffer result = new StringBuffer();
-		int length = text.length();
-		for (int i = 0; i < length; i++) {
-			char c = text.charAt(i);
-			boolean foundWhitespace = false;
-			while (Character.isWhitespace(c) && i < length) {
-				foundWhitespace = true;
-				c = text.charAt(++i);
-			}
-			if (foundWhitespace)
-				result.append(' ');
-			if (i < length)
-				result.append(c);
-		}
-		return result.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/MetadataFactory.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/MetadataFactory.java
deleted file mode 100644
index b0836d7..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/MetadataFactory.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Genuitec, LLC
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import java.util.*;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.equinox.internal.p2.metadata.*;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * A factory class for instantiating various p2 metadata objects.
- */
-public class MetadataFactory {
-	public static class InstallableUnitDescription {
-		protected InstallableUnit unit;
-
-		public InstallableUnitDescription() {
-			super();
-		}
-
-		public void addTouchpointData(TouchpointData data) {
-			Assert.isNotNull(data);
-			unit().addTouchpointData(data);
-		}
-
-		public void setApplicabilityFilter(String ldapFilter) {
-			unit().setApplicabilityFilter(ldapFilter);
-		}
-
-		public void setArtifacts(IArtifactKey[] value) {
-			unit().setArtifacts(value);
-		}
-
-		public void setCapabilities(ProvidedCapability[] exportedCapabilities) {
-			unit().setCapabilities(exportedCapabilities);
-		}
-
-		public void setFilter(String filter) {
-			unit().setFilter(filter);
-		}
-
-		public void setId(String id) {
-			unit().setId(id);
-		}
-
-		public void setLicense(License license) {
-			unit().setLicense(license);
-		}
-
-		public void setCopyright(Copyright copyright) {
-			unit().setCopyright(copyright);
-		}
-
-		public void setProperty(String key, String value) {
-			unit().setProperty(key, value);
-		}
-
-		public void setRequiredCapabilities(RequiredCapability[] capabilities) {
-			unit().setRequiredCapabilities(capabilities);
-		}
-
-		public void setSingleton(boolean singleton) {
-			unit().setSingleton(singleton);
-		}
-
-		public void setTouchpointType(TouchpointType type) {
-			unit().setTouchpointType(type);
-		}
-
-		public void setVersion(Version newVersion) {
-			unit().setVersion(newVersion);
-		}
-
-		public void setUpdateDescriptor(IUpdateDescriptor updateInfo) {
-			unit().setUpdateDescriptor(updateInfo);
-		}
-
-		InstallableUnit unit() {
-			if (unit == null)
-				unit = new InstallableUnit();
-			return unit;
-		}
-
-		IInstallableUnit unitCreate() {
-			IInstallableUnit result = unit();
-			this.unit = null;
-			return result;
-		}
-	}
-
-	public static class InstallableUnitFragmentDescription extends InstallableUnitDescription {
-		public void setHost(RequiredCapability[] hostRequirements) {
-			((InstallableUnitFragment) unit()).setHost(hostRequirements);
-		}
-
-		InstallableUnit unit() {
-			if (unit == null)
-				unit = new InstallableUnitFragment();
-			return unit;
-		}
-	}
-
-	/**
-	 * Singleton touchpoint data for a touchpoint with no instructions.
-	 */
-	private static final TouchpointData EMPTY_TOUCHPOINT_DATA = new TouchpointData(Collections.EMPTY_MAP);
-
-	private static TouchpointType[] typeCache = new TouchpointType[5];
-
-	private static int typeCacheOffset;
-
-	/**
-	 * Returns an {@link IInstallableUnit} based on the given 
-	 * description.  Once the installable unit has been created, the information is 
-	 * discarded from the description object.
-	 * 
-	 * @param description The description of the unit to create
-	 * @return The created installable unit or fragment
-	 */
-	public static IInstallableUnit createInstallableUnit(InstallableUnitDescription description) {
-		Assert.isNotNull(description);
-		return description.unitCreate();
-	}
-
-	/**
-	 * Returns an {@link IInstallableUnitFragment} based on the given 
-	 * description.  Once the fragment has been created, the information is 
-	 * discarded from the description object.
-	 * 
-	 * @param description The description of the unit to create
-	 * @return The created installable unit or fragment
-	 */
-	public static IInstallableUnitFragment createInstallableUnitFragment(InstallableUnitFragmentDescription description) {
-		Assert.isNotNull(description);
-		return (IInstallableUnitFragment) description.unitCreate();
-	}
-
-	/**
-	 * Returns a {@link ProvidedCapability} with the given values.
-	 * 
-	 * @param namespace The capability namespace
-	 * @param name The capability name
-	 * @param version The capability version
-	 */
-	public static ProvidedCapability createProvidedCapability(String namespace, String name, Version version) {
-		return new ProvidedCapability(namespace, name, version);
-	}
-
-	/**
-	 * Returns a {@link RequiredCapability} with the given values.
-	 * 
-	 * @param namespace The capability namespace
-	 * @param name The required capability name
-	 * @param range The range of versions that are required, or <code>null</code>
-	 * to indicate that any version will do.
-	 * @param filter The filter used to evaluate whether this capability is applicable in the
-	 * current environment, or <code>null</code> to indicate this capability is always applicable
-	 * @param optional <code>true</code> if this required capability is optional,
-	 * and <code>false</code> otherwise.
-	 * @param multiple <code>true</code> if this capability can be satisfied by multiple provided capabilities, or it requires exactly one match
-	 */
-	public static RequiredCapability createRequiredCapability(String namespace, String name, VersionRange range, String filter, boolean optional, boolean multiple) {
-		return new RequiredCapability(namespace, name, range, filter, optional, multiple);
-	}
-
-	public static RequiredCapability createRequiredCapability(String namespace, String name, VersionRange range, String filter, boolean optional, boolean multiple, boolean greedy) {
-		return new RequiredCapability(namespace, name, range, filter, optional, multiple, greedy);
-	}
-
-	/**
-	 * Returns an {@link IInstallableUnit} that represents the given
-	 * unit bound to the given fragments.
-	 * 
-	 * @see IInstallableUnit#isResolved()
-	 * @param unit The unit to be bound
-	 * @param fragments The fragments to be bound
-	 * @return A resolved installable unit
-	 */
-	public static IInstallableUnit createResolvedInstallableUnit(IInstallableUnit unit, IInstallableUnitFragment[] fragments) {
-		if (unit.isResolved())
-			return unit;
-		Assert.isNotNull(unit);
-		Assert.isNotNull(fragments);
-		return new ResolvedInstallableUnit(unit, fragments);
-
-	}
-
-	/**
-	 * Returns an instance of {@link TouchpointData} with the given instructions.
-	 * 
-	 * @param instructions The instructions for the touchpoint data.
-	 * @return The created touchpoint data
-	 */
-	public static TouchpointData createTouchpointData(Map instructions) {
-		Assert.isNotNull(instructions);
-		//copy the map to protect against subsequent change by caller
-		return instructions.isEmpty() ? EMPTY_TOUCHPOINT_DATA : new TouchpointData(new LinkedHashMap(instructions));
-	}
-
-	/**
-	 * Returns a {@link TouchpointType} with the given id and version.
-	 * 
-	 * @param id The touchpoint id
-	 * @param version The touchpoint version
-	 * @return A touchpoint type instance with the given id and version
-	 */
-	public static TouchpointType createTouchpointType(String id, Version version) {
-		Assert.isNotNull(id);
-		Assert.isNotNull(version);
-		TouchpointType result = getCachedTouchpointType(id, version);
-		if (result != null)
-			return result;
-		result = new TouchpointType(id, version);
-		putCachedTouchpointType(result);
-		return result;
-	}
-
-	private static TouchpointType getCachedTouchpointType(String id, Version version) {
-		synchronized (typeCache) {
-			for (int i = 0; i < typeCache.length; i++) {
-				if (typeCache[i] != null && typeCache[i].getId().equals(id) && typeCache[i].getVersion().equals(version))
-					return typeCache[i];
-			}
-		}
-		return null;
-	}
-
-	private static void putCachedTouchpointType(TouchpointType result) {
-		//simple rotating buffer
-		typeCache[typeCacheOffset] = result;
-		typeCacheOffset = (typeCacheOffset + 1) % typeCache.length;
-	}
-
-	public static IUpdateDescriptor createUpdateDescriptor(String id, VersionRange range, int severity, String description) {
-		return new UpdateDescriptor(id, range, severity, description);
-	}
-
-	public static License createLicense(String url, String licenseBody) {
-		return new License(url, licenseBody);
-	}
-
-	public static Copyright createCopyright(String url, String copyrightBody) {
-		return new Copyright(url, copyrightBody);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/ProvidedCapability.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/ProvidedCapability.java
deleted file mode 100644
index c3efb14..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/ProvidedCapability.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import org.eclipse.core.runtime.Assert;
-import org.osgi.framework.Version;
-
-/**
- * Describes a capability as exposed or required by an installable unit
- */
-public class ProvidedCapability {
-	private final String name;
-	private final String namespace;
-	private final Version version;
-
-	ProvidedCapability(String namespace, String name, Version version) {
-		Assert.isNotNull(namespace);
-		Assert.isNotNull(name);
-		this.namespace = namespace;
-		this.name = name;
-		this.version = version == null ? Version.emptyVersion : version;
-	}
-
-	public boolean equals(Object other) {
-		if (other instanceof ProvidedCapability) {
-			ProvidedCapability otherCapability = (ProvidedCapability) other;
-			return otherCapability.namespace.equals(namespace) && otherCapability.name.equals(name) && otherCapability.version.equals(version);
-		}
-		return false;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public String getNamespace() {
-		return namespace;
-	}
-
-	public Version getVersion() {
-		return version;
-	}
-
-	public int hashCode() {
-		return namespace.hashCode() * name.hashCode() * version.hashCode();
-	}
-
-	/**
-	 * TODO The name of this method is backwards. A provided capability does not
-	 * get satisfied - it is the required capability that is satisfied or not. It should be "satisfies"
-	 * or "isSatisfied"
-	 */
-	public boolean isSatisfiedBy(RequiredCapability candidate) {
-		if (getName() == null || !getName().equals(candidate.getName()))
-			return false;
-		if (getNamespace() == null || !getNamespace().equals(candidate.getNamespace()))
-			return false;
-		return candidate.getRange().isIncluded(version);
-	}
-
-	public String toString() {
-		return namespace + '/' + name + '/' + version;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/RequiredCapability.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/RequiredCapability.java
deleted file mode 100644
index 64058a4..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/RequiredCapability.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-/**
- * A required capability represents some external constraint on an {@link IInstallableUnit}.
- * Each capability represents something an {@link IInstallableUnit} needs that
- * it expects to be provided by another {@link IInstallableUnit}. Capabilities are
- * entirely generic, and are intended to be capable of representing anything that
- * an {@link IInstallableUnit} may need either at install time, or at runtime.
- * <p>
- * Capabilities are segmented into namespaces.  Anyone can introduce new 
- * capability namespaces. Some well-known namespaces are introduced directly
- * by the provisioning framework.
- * 
- * @see IInstallableUnit#NAMESPACE_IU_ID
- */
-public class RequiredCapability {
-	private static final String[] NO_SELECTORS = new String[0];
-
-	private String filter;
-	private final boolean multiple;
-	private final String name;//never null
-	private final String namespace;//never null
-	private boolean optional;
-	private boolean greedy = true;
-	private final VersionRange range;//never null
-	private String[] selectors = NO_SELECTORS;//never null
-
-	RequiredCapability(String namespace, String name, VersionRange range, String filter, boolean optional, boolean multiple) {
-		Assert.isNotNull(namespace);
-		Assert.isNotNull(name);
-		this.namespace = namespace;
-		this.name = name;
-		this.range = range == null ? VersionRange.emptyRange : range;
-		this.optional = optional;
-		this.filter = filter;
-		this.multiple = multiple;
-	}
-
-	RequiredCapability(String namespace, String name, VersionRange range, String filter, boolean optional, boolean multiple, boolean greedy) {
-		this(namespace, name, range, filter, optional, multiple);
-		this.greedy = greedy;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final RequiredCapability other = (RequiredCapability) obj;
-		if (filter == null) {
-			if (other.filter != null)
-				return false;
-		} else if (!filter.equals(other.filter))
-			return false;
-		if (multiple != other.multiple)
-			return false;
-		if (!name.equals(other.name))
-			return false;
-		if (!namespace.equals(other.namespace))
-			return false;
-		if (optional != other.optional)
-			return false;
-		if (!range.equals(other.range))
-			return false;
-		return true;
-	}
-
-	public String getFilter() {
-		return filter;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public String getNamespace() {
-		return namespace;
-	}
-
-	/**
-	 * Returns the range of versions that satisfy this required capability. Returns
-	 * an empty version range ({@link VersionRange#emptyRange} if any version
-	 * will satisfy the capability.
-	 * @return the range of versions that satisfy this required capability.
-	 */
-	public VersionRange getRange() {
-		return range;
-	}
-
-	/**
-	 * Returns the properties to use for evaluating required capability filters 
-	 * downstream from this capability. For example, if the selector "doc"
-	 * is provided, then a downstream InstallableUnit with a required capability
-	 * filtered with "doc=true" will be included.
-	 */
-	public String[] getSelectors() {
-		return selectors;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((filter == null) ? 0 : filter.hashCode());
-		result = prime * result + (multiple ? 1231 : 1237);
-		result = prime * result + name.hashCode();
-		result = prime * result + namespace.hashCode();
-		result = prime * result + (optional ? 1231 : 1237);
-		result = prime * result + range.hashCode();
-		return result;
-	}
-
-	public boolean isMultiple() {
-		return multiple;
-	}
-
-	public boolean isOptional() {
-		return optional;
-	}
-
-	public void setFilter(String filter) {
-		this.filter = filter;
-	}
-
-	public void setSelectors(String[] selectors) {
-		this.selectors = selectors;
-	}
-
-	public boolean isGreedy() {
-		return greedy;
-	}
-
-	public String toString() {
-		return "requiredCapability: " + namespace + '/' + name + '/' + range; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointData.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointData.java
deleted file mode 100644
index f131ad6..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointData.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import java.util.Collections;
-import java.util.Map;
-
-public class TouchpointData {
-
-	/**
-	 * Map of (String->String). The values represent the instructions. The set 
-	 * of keys supported is up to the touchpoint that will process these 
-	 * instructions. This map is never null.
-	 */
-	private Map instructions;
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((instructions == null) ? 0 : instructions.hashCode());
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final TouchpointData other = (TouchpointData) obj;
-		if (instructions == null) {
-			if (other.instructions != null)
-				return false;
-		} else if (!instructions.equals(other.instructions))
-			return false;
-		return true;
-	}
-
-	TouchpointData(Map instructions) {
-		this.instructions = instructions;
-	}
-
-	public String getInstructions(String instructionKey) {
-		return (String) instructions.get(instructionKey);
-	}
-
-	// Return an unmodifiable collection of the instructions
-	// in the touchpoint data.
-	public Map getInstructions() {
-		return Collections.unmodifiableMap(instructions);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointType.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointType.java
deleted file mode 100644
index 5ad1317..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/TouchpointType.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata;
-
-import org.osgi.framework.Version;
-
-/**
- * Identifies a particular touchpoint. A touchpoint is identified by an id 
- * and a version.
- */
-public class TouchpointType {
-	/**
-	 * A touchpoint type indicating that the "null" touchpoint should be used.
-	 * The null touchpoint does not participate in any install phase.
-	 */
-	public static final TouchpointType NONE = MetadataFactory.createTouchpointType("null", Version.emptyVersion); //$NON-NLS-1$
-
-	private String id;//never null
-	private Version version;//never null
-
-	TouchpointType(String id, Version aVersion) {
-		this.id = id;
-		this.version = aVersion;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (super.equals(obj))
-			return true;
-		if (getClass() != obj.getClass())
-			return false;
-		TouchpointType other = (TouchpointType) obj;
-		return id.equals(other.id) && version.equals(other.version);
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public Version getVersion() {
-		return version;
-	}
-
-	public int hashCode() {
-		return 31 * id.hashCode() + version.hashCode();
-	}
-
-	public String toString() {
-		return "Touchpoint: " + id + ' ' + getVersion(); //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/CapabilityQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/CapabilityQuery.java
deleted file mode 100644
index 216982f..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/CapabilityQuery.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.query;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-
-/**
- * A query that searches for {@link IInstallableUnit} instances that provide
- * capabilities that match one or more required capabilities.
- */
-public class CapabilityQuery extends Query {
-	private RequiredCapability[] required;
-
-	/**
-	 * Creates a new query on the given required capability.
-	 * @param required The required capability
-	 */
-	public CapabilityQuery(RequiredCapability required) {
-		this.required = new RequiredCapability[] {required};
-	}
-
-	/**
-	 * Creates a new query on the given required capabilities. The installable
-	 * unit must provide capabilities that match all of the given required capabilities
-	 * for this query to be satisfied.
-	 * @param required The required capabilities
-	 */
-	public CapabilityQuery(RequiredCapability[] required) {
-		this.required = required;
-	}
-
-	/**
-	 * Returns the required capability that this query is matching against.
-	 * @return the required capability that this query is matching against.
-	 */
-	public RequiredCapability[] getRequiredCapabilities() {
-		return required;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.p2.query2.Query#isMatch(java.lang.Object)
-	 */
-	public boolean isMatch(Object object) {
-		if (!(object instanceof IInstallableUnit))
-			return false;
-		IInstallableUnit candidate = (IInstallableUnit) object;
-		ProvidedCapability[] provides = candidate.getProvidedCapabilities();
-		for (int i = 0; i < required.length; i++) {
-			boolean satisfied = false;
-			for (int j = 0; j < provides.length; j++) {
-				if (provides[j].isSatisfiedBy(required[i])) {
-					satisfied = true;
-					break;
-				}
-			}
-			if (!satisfied)
-				return false;
-		}
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/IUPropertyQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/IUPropertyQuery.java
deleted file mode 100644
index 1986c6d..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/IUPropertyQuery.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.query;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-
-/**
- * A query that searches for {@link IInstallableUnit} instances that have
- * a property whose value matches the provided value.
- */
-public class IUPropertyQuery extends Query {
-	private String propertyName;
-	private String propertyValue;
-
-	/**
-	 * Creates a new query on the given property name and value.
-	 */
-	public IUPropertyQuery(String propertyName, String propertyValue) {
-		this.propertyName = propertyName;
-		this.propertyValue = propertyValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.p2.query2.Query#isMatch(java.lang.Object)
-	 */
-	public boolean isMatch(Object object) {
-		if (!(object instanceof IInstallableUnit))
-			return false;
-		IInstallableUnit candidate = (IInstallableUnit) object;
-		String value = getProperty(candidate, propertyName);
-		if (value != null && value.equals(propertyValue))
-			return true;
-		return false;
-	}
-
-	protected String getProperty(IInstallableUnit iu, String name) {
-		return iu.getProperty(name);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/InstallableUnitQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/InstallableUnitQuery.java
deleted file mode 100644
index 04db9f8..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/InstallableUnitQuery.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.query;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * A query that matches on the id and version of an {@link IInstallableUnit}.
- */
-public class InstallableUnitQuery extends Query {
-	/**
-	 * A convenience query that will match any {@link IInstallableUnit}
-	 * it encounters.
-	 */
-	public static final InstallableUnitQuery ANY = new InstallableUnitQuery(null);
-
-	private String id;
-	private final VersionRange range;
-
-	/**
-	 * Creates a query that will match any {@link IInstallableUnit} with the given
-	 * id, regardless of version.
-	 * 
-	 * @param id The installable unit id to match, or <code>null</code> to match any id
-	 */
-	public InstallableUnitQuery(String id) {
-		this.id = id;
-		this.range = null;
-	}
-
-	/**
-	 * Creates a query that will match any {@link IInstallableUnit} with the given
-	 * id, and whose version falls in the provided range.
-	 * 
-	 * @param id The installable unit id to match, or <code>null</code> to match any id
-	 * @param range The version range to match
-	 */
-	public InstallableUnitQuery(String id, VersionRange range) {
-		this.id = id;
-		this.range = range;
-	}
-
-	/**
-	 * Creates a query that will match any {@link IInstallableUnit} with the given
-	 * id and version.
-	 * 
-	 * @param id The installable unit id to match, or <code>null</code> to match any id
-	 * @param version The precise version that a matching unit must have
-	 */
-	public InstallableUnitQuery(String id, Version version) {
-		this.id = id;
-		this.range = new VersionRange(version, true, version, true);
-	}
-
-	/**
-	 * Returns the id that this query will match against.
-	 * @return The installable unit it
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Returns the version range that this query will match against.
-	 * @return The installable unit version range.
-	 */
-	public VersionRange getRange() {
-		return range;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.p2.query2.Query#isMatch(java.lang.Object)
-	 */
-	public boolean isMatch(Object object) {
-		if (!(object instanceof IInstallableUnit))
-			return false;
-		IInstallableUnit candidate = (IInstallableUnit) object;
-		if (id != null && !id.equals(candidate.getId()))
-			return false;
-		if (range != null && !range.isIncluded(candidate.getVersion()))
-			return false;
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/UpdateQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/UpdateQuery.java
deleted file mode 100644
index cb70bf9..0000000
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/query/UpdateQuery.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.metadata.query;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IUpdateDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-
-public class UpdateQuery extends Query {
-	private IInstallableUnit updateFrom;
-
-	public UpdateQuery(IInstallableUnit updateFrom) {
-		this.updateFrom = updateFrom;
-	}
-
-	public boolean isMatch(Object obj) {
-		if (!(obj instanceof IInstallableUnit))
-			return false;
-		IInstallableUnit candidate = (IInstallableUnit) obj;
-		IUpdateDescriptor descriptor = candidate.getUpdateDescriptor();
-		if (descriptor != null && descriptor.isUpdateOf(updateFrom) && updateFrom.getVersion().compareTo(candidate.getVersion()) < 0)
-			return true;
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/.classpath b/bundles/org.eclipse.equinox.p2.publisher/.classpath
deleted file mode 100644
index ef37949..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" output="bin_ant" path="src_ant"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch b/bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch
deleted file mode 100644
index ec9c3e8..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Metadata Generator Ant Tasks.launch
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.metadata.generator"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.metadata.generator"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.metadata.generator/scripts/buildExtraJAR.xml}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value=""/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Publisher Ant Tasks.launch b/bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Publisher Ant Tasks.launch
deleted file mode 100644
index 7aeec8d..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/.externalToolBuilders/Build Publisher Ant Tasks.launch
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.publisher/scripts/buildExtraJAR.xml"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.publisher"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.publisher/scripts/buildExtraJAR.xml}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value=""/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/.project b/bundles/org.eclipse.equinox.p2.publisher/.project
deleted file mode 100644
index c8a43fe..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.publisher</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<triggers>full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/Build Publisher Ant Tasks.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index eabbb73..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,344 +0,0 @@
-#Sun Mar 09 17:03:32 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0da67eb..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,64 +0,0 @@
-#Sat Mar 08 15:38:55 EST 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-internal.default.compliance=user
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n *\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 8507ce9..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Sat Mar 08 14:53:21 EST 2008
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.publisher/Eclipse install publisher.launch b/bundles/org.eclipse.equinox.p2.publisher/Eclipse install publisher.launch
deleted file mode 100644
index a687ddc..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/Eclipse install publisher.launch
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Eclipse install publisher"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console &#13;&#10;-consolelog&#13;&#10;-application org.eclipse.equinox.p2.publisher.InstallPublisher&#13;&#10;-metadataRepository file:d:/temp/repos&#13;&#10;-artifactRepository file:d:/temp/repos&#13;&#10;-source d:\i0305.zip\eclipse&#13;&#10;-top org.eclipse.sdk.feature.group&#13;&#10;-configs win32.win32.x86&#13;&#10;-id sdk&#13;&#10;-version 3.4.0.i0305&#13;&#10;-flavor tooling&#13;&#10;-publishArtifacts&#13;&#10;-append"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default,org.eclipse.core.runtime*3.4.0.v20080310@default:default,org.eclipse.equinox.registry*3.4.0.v20080201@default:default,org.eclipse.core.runtime.compatibility.auth*3.2.100.v20070502@default:default,org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,org.eclipse.update.configurator*3.2.200.v20080107@default:default,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,org.eclipse.equinox.common*3.4.0.v20080201@default:default,org.eclipse.core.jobs*3.4.0.v20080310@default:default,org.eclipse.osgi*3.4.0.v20080310@:,org.eclipse.equinox.app*1.0.100.v200803131030@default:true,org.eclipse.core.net*1.0.100.I20080226@default:default,org.eclipse.core.runtime.compatibility.registry*3.2.200.v20070717@default:false"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.p2.publisher*1.0.0@default:default,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.eclipse.ecf*1.3.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default,org.eclipse.ecf.identity*1.3.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.publisher/META-INF/MANIFEST.MF
deleted file mode 100644
index f3fab38..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,44 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.publisher;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Name: %bundleName
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Import-Package: javax.xml.parsers,
- org.eclipse.core.runtime;common=split,
- org.eclipse.equinox.app;version="1.0.0",
- org.eclipse.equinox.internal.frameworkadmin.equinox,
- org.eclipse.equinox.internal.p2.artifact.repository,
- org.eclipse.equinox.internal.p2.core,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.frameworkadmin,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.eventbus,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.osgi.service.environment;version="1.1.0",
- org.eclipse.osgi.service.pluginconversion;version="1.0.0",
- org.eclipse.osgi.service.resolver;version="1.2.0",
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.4.0",
- org.osgi.service.packageadmin;version="1.2.0",
- org.osgi.util.tracker;version="1.3.3",
- org.w3c.dom,
- org.xml.sax,
- org.xml.sax.helpers
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.equinox.internal.p2.publisher.Activator
-Export-Package: org.eclipse.equinox.internal.p2.publisher;x-friends:="org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.ui.sdk",
- org.eclipse.equinox.internal.p2.publisher.actions;x-friends:="org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.directorywatcher",
- org.eclipse.equinox.internal.p2.publisher.features;x-friends:="org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.directorywatcher",
- org.eclipse.equinox.p2.publisher.product,
- org.eclipse.pde.internal.swt.tools;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.publisher/Toast backend publisher.launch b/bundles/org.eclipse.equinox.p2.publisher/Toast backend publisher.launch
deleted file mode 100644
index a1bf890..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/Toast backend publisher.launch
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Toast backend publisher"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console &#13;&#10;-consolelog&#13;&#10;-application org.eclipse.equinox.p2.publisher.InstallPublisher&#13;&#10;-metadataRepository file:d:/demos/toast/repos&#13;&#10;-artifactRepository file:d:/demos/toast/repos&#13;&#10;&#10;&#10;-source d:/demos/toast/build/backend&#13;&#10;-top org.equinoxosgi.toast.backend.feature.feature.group&#13;&#10;-configs win32.win32.x86&#13;&#10;-id org.equinoxosgi.toast.backend.base&#13;&#10;-version 1.0.0&#13;&#10;-flavor toast&#13;&#10;-append&#13;&#10;-startAll"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.core.net*1.0.100.I20080226@default:default,org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.equinox.registry*3.4.0.v20080201@default:default,org.eclipse.equinox.app*1.0.100.v200803131030@default:true,org.eclipse.core.runtime*3.4.0.v20080310@default:default,org.eclipse.osgi*3.4.0.v20080310@:,org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default,org.eclipse.update.configurator*3.2.200.v20080107@default:default,org.eclipse.core.jobs*3.4.0.v20080310@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default,org.eclipse.equinox.common*3.4.0.v20080201@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.publisher*1.0.0@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.eclipse.ecf.identity*1.3.0.qualifier@default:default,org.eclipse.ecf*1.3.0.qualifier@default:default,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/Toast client publisher.launch b/bundles/org.eclipse.equinox.p2.publisher/Toast client publisher.launch
deleted file mode 100644
index 2798967..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/Toast client publisher.launch
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Toast client publisher"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console &#13;&#10;-consolelog&#13;&#10;-application org.eclipse.equinox.p2.publisher.InstallPublisher&#13;&#10;-metadataRepository file:d:/demos/toast/repos&#13;&#10;-artifactRepository file:d:/demos/toast/repos&#13;&#10;&#10;&#10;-source d:/demos/toast/build/client&#13;&#10;-top org.equinoxosgi.toast.app.base.feature.feature.group&#13;&#10;-configs win32.win32.x86&#13;&#10;-id org.equinoxosgi.toast.client.base&#13;&#10;-version 1.0.0&#13;&#10;-flavor toast&#13;&#10;-append&#13;&#10;-startAll"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.core.net*1.0.100.I20080226@default:default,org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.equinox.registry*3.4.0.v20080201@default:default,org.eclipse.equinox.app*1.0.100.v200803131030@default:true,org.eclipse.core.runtime*3.4.0.v20080310@default:default,org.eclipse.osgi*3.4.0.v20080310@:,org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default,org.eclipse.update.configurator*3.2.200.v20080107@default:default,org.eclipse.core.jobs*3.4.0.v20080310@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default,org.eclipse.equinox.common*3.4.0.v20080201@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.publisher*1.0.0@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.eclipse.ecf.identity*1.3.0.qualifier@default:default,org.eclipse.ecf*1.3.0.qualifier@default:default,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/about.html b/bundles/org.eclipse.equinox.p2.publisher/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.publisher/build.properties b/bundles/org.eclipse.equinox.p2.publisher/build.properties
deleted file mode 100644
index 988da73..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-source.. = src/
-output.. = bin/
-source.ant_tasks/generator-ant.jar=src_ant/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               OSGi_Minimum-1.1.profile,\
-               OSGi_Minimum-1.0.profile,\
-               JavaSE-1.6.profile,\
-               JRE-1.1.profile,\
-               J2SE-1.5.profile,\
-               J2SE-1.4.profile,\
-               J2SE-1.3.profile,\
-               J2SE-1.2.profile,\
-               CDC-1.1_Foundation-1.1.profile,\
-               CDC-1.0_Foundation-1.0.profile,\
-               plugin.xml,\
-               ant_tasks/generator-ant.jar,\
-               plugin.properties
-src.includes = about.html
-jars.compile.order=.,ant_tasks/generator-ant.jar
-extra.ant_tasks/generator-ant.jar = platform:/plugin/org.apache.ant
-jars.extra.classpath = platform:/plugin/org.apache.ant/lib/ant.jar
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.publisher/plugin.properties b/bundles/org.eclipse.equinox.p2.publisher/plugin.properties
deleted file mode 100644
index 63d8d28..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bundleName = Equinox Provisioning Publisher
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.publisher/plugin.xml b/bundles/org.eclipse.equinox.p2.publisher/plugin.xml
deleted file mode 100644
index 1745ac0..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/plugin.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<plugin>
-   <extension id="InstallPublisher" point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="1"
-            thread="main"
-            visible="true">
-         <run
-               class="org.eclipse.equinox.internal.p2.publisher.InstallPublisherApplication">
-         </run>
-      </application>
-   </extension>
-   <extension id="ProductPublisher" point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="1"
-            thread="main"
-            visible="true">
-         <run
-               class="org.eclipse.equinox.internal.p2.publisher.ProductPublisherApplication">
-         </run>
-      </application>
-   </extension>
-
-	<extension point="org.eclipse.ant.core.antTasks">
-		<antTask
-			library="ant_tasks/generator-ant.jar"
-			name="p2.generator"
-			class="org.eclipse.equinox.internal.p2.metadata.generator.ant.GeneratorTask">
-		</antTask>
-	</extension>
-
-	<extension point="org.eclipse.ant.core.extraClasspathEntries">
-		<extraClasspathEntry library="ant_tasks/generator-ant.jar"/>
-	</extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.0_Foundation-1.0.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.0_Foundation-1.0.profile
deleted file mode 100644
index 1157a29..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.0_Foundation-1.0.profile
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.microedition.io
-org.osgi.framework.bootdelegation = \
- javax.microedition.io
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- CDC-1.0/Foundation-1.0
-osgi.java.profile.name = CDC-1.0/Foundation-1.0
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.1_Foundation-1.1.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.1_Foundation-1.1.profile
deleted file mode 100644
index 374300a..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/CDC-1.1_Foundation-1.1.profile
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.microedition.io,\
- javax.microedition.pki,\
- javax.security.auth.x500
-org.osgi.framework.bootdelegation = \
- javax.microedition.io,\
- javax.microedition.pki,\
- javax.security.auth.x500
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- CDC-1.0/Foundation-1.0,\
- CDC-1.1/Foundation-1.1
-osgi.java.profile.name = CDC-1.1/Foundation-1.1
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.2.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.2.profile
deleted file mode 100644
index 28f973a..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.2.profile
+++ /dev/null
@@ -1,42 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- org.omg.CORBA,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextPackage
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- JRE-1.1,\
- J2SE-1.2
-osgi.java.profile.name = J2SE-1.2
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.3.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.3.profile
deleted file mode 100644
index b7dbdfa..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.3.profile
+++ /dev/null
@@ -1,63 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.omg.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3
-osgi.java.profile.name = J2SE-1.3
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.4.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.4.profile
deleted file mode 100644
index b307c97..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.4.profile
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.crypto,\
- javax.crypto.interfaces,\
- javax.crypto.spec,\
- javax.imageio,\
- javax.imageio.event,\
- javax.imageio.metadata,\
- javax.imageio.plugins.jpeg,\
- javax.imageio.spi,\
- javax.imageio.stream,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.net,\
- javax.net.ssl,\
- javax.print,\
- javax.print.attribute,\
- javax.print.attribute.standard,\
- javax.print.event,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.security.auth,\
- javax.security.auth.callback,\
- javax.security.auth.kerberos,\
- javax.security.auth.login,\
- javax.security.auth.spi,\
- javax.security.auth.x500,\
- javax.security.cert,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.sql,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- javax.transaction.xa,\
- javax.xml.parsers,\
- javax.xml.transform,\
- javax.xml.transform.dom,\
- javax.xml.transform.sax,\
- javax.xml.transform.stream,\
- org.ietf.jgss,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextExtPackage,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.Dynamic,\
- org.omg.DynamicAny,\
- org.omg.DynamicAny.DynAnyFactoryPackage,\
- org.omg.DynamicAny.DynAnyPackage,\
- org.omg.IOP,\
- org.omg.IOP.CodecFactoryPackage,\
- org.omg.IOP.CodecPackage,\
- org.omg.Messaging,\
- org.omg.PortableInterceptor,\
- org.omg.PortableInterceptor.ORBInitInfoPackage,\
- org.omg.PortableServer,\
- org.omg.PortableServer.CurrentPackage,\
- org.omg.PortableServer.POAManagerPackage,\
- org.omg.PortableServer.POAPackage,\
- org.omg.PortableServer.portable,\
- org.omg.PortableServer.ServantLocatorPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi,\
- org.w3c.dom,\
- org.xml.sax,\
- org.xml.sax.ext,\
- org.xml.sax.helpers
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.ietf.jgss,\
- org.omg.*,\
- org.w3c.*,\
- org.xml.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3,\
- J2SE-1.4
-osgi.java.profile.name = J2SE-1.4
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.5.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.5.profile
deleted file mode 100644
index d23d6ca..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/J2SE-1.5.profile
+++ /dev/null
@@ -1,146 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.activity,\
- javax.crypto,\
- javax.crypto.interfaces,\
- javax.crypto.spec,\
- javax.imageio,\
- javax.imageio.event,\
- javax.imageio.metadata,\
- javax.imageio.plugins.bmp,\
- javax.imageio.plugins.jpeg,\
- javax.imageio.spi,\
- javax.imageio.stream,\
- javax.management,\
- javax.management.loading,\
- javax.management.modelmbean,\
- javax.management.monitor,\
- javax.management.openmbean,\
- javax.management.relation,\
- javax.management.remote,\
- javax.management.remote.rmi,\
- javax.management.timer,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.net,\
- javax.net.ssl,\
- javax.print,\
- javax.print.attribute,\
- javax.print.attribute.standard,\
- javax.print.event,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.rmi.ssl,\
- javax.security.auth,\
- javax.security.auth.callback,\
- javax.security.auth.kerberos,\
- javax.security.auth.login,\
- javax.security.auth.spi,\
- javax.security.auth.x500,\
- javax.security.cert,\
- javax.security.sasl,\
- javax.servlet,\
- javax.servlet.http,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.sql,\
- javax.sql.rowset,\
- javax.sql.rowset.serial,\
- javax.sql.rowset.spi,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.plaf.synth,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- javax.transaction.xa,\
- javax.xml,\
- javax.xml.datatype,\
- javax.xml.namespace,\
- javax.xml.parsers,\
- javax.xml.transform,\
- javax.xml.transform.dom,\
- javax.xml.transform.sax,\
- javax.xml.transform.stream,\
- javax.xml.validation,\
- javax.xml.xpath,\
- org.ietf.jgss,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextExtPackage,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.Dynamic,\
- org.omg.DynamicAny,\
- org.omg.DynamicAny.DynAnyFactoryPackage,\
- org.omg.DynamicAny.DynAnyPackage,\
- org.omg.IOP,\
- org.omg.IOP.CodecFactoryPackage,\
- org.omg.IOP.CodecPackage,\
- org.omg.Messaging,\
- org.omg.PortableInterceptor,\
- org.omg.PortableInterceptor.ORBInitInfoPackage,\
- org.omg.PortableServer,\
- org.omg.PortableServer.CurrentPackage,\
- org.omg.PortableServer.POAManagerPackage,\
- org.omg.PortableServer.POAPackage,\
- org.omg.PortableServer.portable,\
- org.omg.PortableServer.ServantLocatorPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi,\
- org.w3c.dom,\
- org.w3c.dom.bootstrap,\
- org.w3c.dom.events,\
- org.w3c.dom.ls,\
- org.xml.sax,\
- org.xml.sax.ext,\
- org.xml.sax.helpers
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.ietf.jgss,\
- org.omg.*,\
- org.w3c.*,\
- org.xml.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3,\
- J2SE-1.4,\
- J2SE-1.5
-osgi.java.profile.name = J2SE-1.5
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/JRE-1.1.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/JRE-1.1.profile
deleted file mode 100644
index 9a8d8fd..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/JRE-1.1.profile
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = 
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- JRE-1.1
-osgi.java.profile.name = JRE-1.1
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/JavaSE-1.6.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/JavaSE-1.6.profile
deleted file mode 100644
index 1c7abcb..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/JavaSE-1.6.profile
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.activity,\
- javax.crypto,\
- javax.crypto.interfaces,\
- javax.crypto.spec,\
- javax.imageio,\
- javax.imageio.event,\
- javax.imageio.metadata,\
- javax.imageio.plugins.bmp,\
- javax.imageio.plugins.jpeg,\
- javax.imageio.spi,\
- javax.imageio.stream,\
- javax.management,\
- javax.management.loading,\
- javax.management.modelmbean,\
- javax.management.monitor,\
- javax.management.openmbean,\
- javax.management.relation,\
- javax.management.remote,\
- javax.management.remote.rmi,\
- javax.management.timer,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.net,\
- javax.net.ssl,\
- javax.print,\
- javax.print.attribute,\
- javax.print.attribute.standard,\
- javax.print.event,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.rmi.ssl,\
- javax.security.auth,\
- javax.security.auth.callback,\
- javax.security.auth.kerberos,\
- javax.security.auth.login,\
- javax.security.auth.spi,\
- javax.security.auth.x500,\
- javax.security.cert,\
- javax.security.sasl,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.sql,\
- javax.sql.rowset,\
- javax.sql.rowset.serial,\
- javax.sql.rowset.spi,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.plaf.synth,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.transaction,\
- javax.transaction.xa,\
- javax.xml,\
- javax.xml.datatype,\
- javax.xml.namespace,\
- javax.xml.parsers,\
- javax.xml.transform,\
- javax.xml.transform.dom,\
- javax.xml.transform.sax,\
- javax.xml.transform.stream,\
- javax.xml.validation,\
- javax.xml.xpath,\
- org.ietf.jgss,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextExtPackage,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.Dynamic,\
- org.omg.DynamicAny,\
- org.omg.DynamicAny.DynAnyFactoryPackage,\
- org.omg.DynamicAny.DynAnyPackage,\
- org.omg.IOP,\
- org.omg.IOP.CodecFactoryPackage,\
- org.omg.IOP.CodecPackage,\
- org.omg.Messaging,\
- org.omg.PortableInterceptor,\
- org.omg.PortableInterceptor.ORBInitInfoPackage,\
- org.omg.PortableServer,\
- org.omg.PortableServer.CurrentPackage,\
- org.omg.PortableServer.POAManagerPackage,\
- org.omg.PortableServer.POAPackage,\
- org.omg.PortableServer.portable,\
- org.omg.PortableServer.ServantLocatorPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi,\
- org.w3c.dom,\
- org.w3c.dom.bootstrap,\
- org.w3c.dom.events,\
- org.w3c.dom.ls,\
- org.xml.sax,\
- org.xml.sax.ext,\
- org.xml.sax.helpers
-org.osgi.framework.bootdelegation = \
- javax.*,\
- org.ietf.jgss,\
- org.omg.*,\
- org.w3c.*,\
- org.xml.*,\
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- JRE-1.1,\
- J2SE-1.2,\
- J2SE-1.3,\
- J2SE-1.4,\
- J2SE-1.5,\
- JavaSE-1.6
-osgi.java.profile.name = JavaSE-1.6
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.0.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.0.profile
deleted file mode 100644
index d8c2d3f..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.0.profile
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = 
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0
-osgi.java.profile.name = OSGi/Minimum-1.0
diff --git a/bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.1.profile b/bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.1.profile
deleted file mode 100644
index 2d8b661..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/profiles/OSGi_Minimum-1.1.profile
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-org.osgi.framework.system.packages = 
-org.osgi.framework.bootdelegation = \
- sun.*,\
- com.sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1
-osgi.java.profile.name = OSGi/Minimum-1.1
diff --git a/bundles/org.eclipse.equinox.p2.publisher/scripts/buildExtraJAR.xml b/bundles/org.eclipse.equinox.p2.publisher/scripts/buildExtraJAR.xml
deleted file mode 100644
index 7820664..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/scripts/buildExtraJAR.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.core.resources" default="main" basedir="..">
-
-	<target name="main" depends="clean, ant_tasks/generator-ant.jar">
-	</target>
-
-	<target name="init" depends="properties">
-		<property name="plugin" value="org.eclipse.equinox.p2.generator.app"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}/ant_tasks"/>
-		<property name="version.suffix" value="_3.1.0"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-	<target name="ant_tasks/generator-ant.jar" depends="init" unless="ant_tasks/generator-ant.jar">
-		<property name="destdir" value="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<delete dir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<mkdir dir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/ant_tasks/generator-ant.jar.bin" failonerror="true" verbose="true" debug="on">
-			<classpath>
-				<dirset dir="${basedir}/..">
-					<include name="org.eclipse.equinox.p2.metadata.generator/bin"/>
-					<include name="org.eclipse.osgi/bin"/>
-				</dirset>
-				<fileset dir="${eclipse.home}">
-					<include name="plugins/org.eclipse.equinox.p2.metadata.generator*.jar"/>
-					<include name="plugins/org.eclipse.osgi*.jar"/>
-				</fileset>
-			</classpath>
-			<src path="src_ant/"/>
-		</javac>
-		<!-- copy necessary resources -->
-		<copy todir="${temp.folder}/ant_tasks/generator-ant.jar.bin">
-			<fileset dir="src_ant/" excludes="**/*.java"/>
-		</copy>
-		<mkdir dir="${build.result.folder}"/>
-		<jar jarfile="${build.result.folder}/generator-ant.jar" basedir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<delete dir="${temp.folder}/ant_tasks/generator-ant.jar.bin"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${build.result.folder}/generator-ant.jar"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublisherApplication.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublisherApplication.java
deleted file mode 100644
index 1ad567f..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublisherApplication.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager;
-import org.eclipse.equinox.internal.p2.core.ProvisioningEventBus;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.eventbus.IProvisioningEventBus;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.ServiceRegistration;
-
-public abstract class AbstractPublisherApplication implements IApplication {
-
-	// The mapping rules for in-place generation need to construct paths into the structure
-	// of an eclipse installation; in the future the default artifact mapping declared in
-	// SimpleArtifactRepository may change, for example, to not have a 'bundles' directory
-	// instead of a 'plugins' directory, so a separate constant is defined and used here.
-	static final protected String[][] INPLACE_MAPPING_RULES = { {"(& (classifier=osgi.bundle) (format=packed)", "${repoUrl}/features/${id}_${version}.jar.pack.gz"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=osgi.bundle))", "${repoUrl}/plugins/${id}_${version}.jar"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=binary))", "${repoUrl}/binary/${id}_${version}"}, //$NON-NLS-1$//$NON-NLS-2$
-			{"(& (classifier=org.eclipse.update.feature))", "${repoUrl}/features/${id}_${version}.jar"}}; //$NON-NLS-1$//$NON-NLS-2$
-
-	static final public String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$
-
-	private ArtifactRepositoryManager defaultArtifactManager;
-	private ServiceRegistration registrationDefaultArtifactManager;
-	private MetadataRepositoryManager defaultMetadataManager;
-	private ServiceRegistration registrationDefaultMetadataManager;
-	private IProvisioningEventBus bus;
-	private ServiceRegistration registrationBus;
-	protected PublisherInfo info;
-	protected String source;
-	protected String metadataLocation;
-	protected String metadataRepoName;
-	protected String artifactLocation;
-	protected String artifactRepoName;
-	//whether repository xml files should be compressed
-	protected boolean compress = false;
-	protected boolean inplace = false;
-	protected boolean append = false;
-	protected boolean reusePackedFiles = false;
-	protected String[] configurations;
-
-	protected void initialize(PublisherInfo info) throws ProvisionException {
-		if (inplace) {
-			File location = new File(source);
-			try {
-				if (metadataLocation == null)
-					metadataLocation = location.toURL().toExternalForm();
-				if (artifactLocation == null)
-					artifactLocation = location.toURL().toExternalForm();
-			} catch (MalformedURLException e) {
-				// ought not happen...
-			}
-			info.setArtifactOptions(info.getArtifactOptions() | IPublisherInfo.A_INDEX | IPublisherInfo.A_PUBLISH);
-		} else
-			info.setArtifactOptions(info.getArtifactOptions() | IPublisherInfo.A_INDEX | IPublisherInfo.A_PUBLISH | IPublisherInfo.A_OVERWRITE);
-		initializeRepositories(info);
-	}
-
-	protected void initializeRepositories(PublisherInfo info) throws ProvisionException {
-		info.setArtifactRepository(Publisher.createArtifactRepository(artifactLocation, artifactRepoName, append, compress, reusePackedFiles));
-		info.setMetadataRepository(Publisher.createMetadataRepository(metadataLocation, metadataRepoName, append, compress));
-	}
-
-	protected void processCommandLineArguments(String[] args, PublisherInfo info) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-			processFlag(args[i], info);
-
-			// 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;
-			processParameter(args[i], args[++i], info);
-		}
-	}
-
-	protected void processParameter(String arg, String parameter, PublisherInfo info) {
-		if (arg.equalsIgnoreCase("-metadataRepository") || arg.equalsIgnoreCase("-mr")) //$NON-NLS-1$ //$NON-NLS-2$
-			metadataLocation = parameter;
-
-		if (arg.equalsIgnoreCase("-metadataRepositoryName")) //$NON-NLS-1$
-			metadataRepoName = parameter;
-
-		if (arg.equalsIgnoreCase("-source")) //$NON-NLS-1$
-			source = parameter;
-
-		if (arg.equalsIgnoreCase("-artifactRepository") | arg.equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$
-			artifactLocation = parameter;
-
-		if (arg.equalsIgnoreCase("-artifactRepositoryName")) //$NON-NLS-1$
-			artifactRepoName = parameter;
-
-		if (arg.equalsIgnoreCase("-configs")) //$NON-NLS-1$
-			info.setConfigurations(AbstractPublishingAction.getArrayFromString(parameter, ",")); //$NON-NLS-1$
-	}
-
-	protected void processFlag(String arg, PublisherInfo info) {
-		if (arg.equalsIgnoreCase("-publishArtifacts") || arg.equalsIgnoreCase("-pa")) //$NON-NLS-1$ //$NON-NLS-2$
-			info.setArtifactOptions(info.getArtifactOptions() | IPublisherInfo.A_PUBLISH);
-
-		if (arg.equalsIgnoreCase("-publishArtifactRepository") || arg.equalsIgnoreCase("-par")) //$NON-NLS-1$ //$NON-NLS-2$
-			info.setArtifactOptions(info.getArtifactOptions() | IPublisherInfo.A_INDEX);
-
-		if (arg.equalsIgnoreCase("-overwriteArtifacts")) //$NON-NLS-1$ 
-			info.setArtifactOptions(info.getArtifactOptions() | IPublisherInfo.A_OVERWRITE);
-
-		if (arg.equalsIgnoreCase("-append")) //$NON-NLS-1$
-			append = true;
-
-		if (arg.equalsIgnoreCase("-compress")) //$NON-NLS-1$
-			compress = true;
-
-		if (arg.equalsIgnoreCase("-reusePack200Files")) //$NON-NLS-1$
-			reusePackedFiles = true;
-
-		if (arg.equalsIgnoreCase("-inplace")) //$NON-NLS-1$
-			inplace = true;
-	}
-
-	private void registerDefaultArtifactRepoManager() {
-		if (ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName()) == null) {
-			defaultArtifactManager = new ArtifactRepositoryManager();
-			registrationDefaultArtifactManager = Activator.getContext().registerService(IArtifactRepositoryManager.class.getName(), defaultArtifactManager, null);
-		}
-	}
-
-	private void registerDefaultMetadataRepoManager() {
-		if (ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName()) == null) {
-			defaultMetadataManager = new MetadataRepositoryManager();
-			registrationDefaultMetadataManager = Activator.getContext().registerService(IMetadataRepositoryManager.class.getName(), defaultMetadataManager, null);
-		}
-	}
-
-	private void registerEventBus() {
-		if (ServiceHelper.getService(Activator.getContext(), IProvisioningEventBus.SERVICE_NAME) == null) {
-			bus = new ProvisioningEventBus();
-			registrationBus = Activator.getContext().registerService(IProvisioningEventBus.SERVICE_NAME, bus, null);
-		}
-	}
-
-	public Object run(String args[]) throws Exception {
-		info = createPublisherInfo();
-		processCommandLineArguments(args, info);
-		Object result = run(info);
-		if (result != IApplication.EXIT_OK)
-			for (int i = 0; i < args.length; i++)
-				System.out.println(args[i]);
-		return result;
-	}
-
-	protected PublisherInfo createPublisherInfo() {
-		return new PublisherInfo();
-	}
-
-	public Object run(PublisherInfo info) throws Exception {
-		registerEventBus();
-		registerDefaultMetadataRepoManager();
-		registerDefaultArtifactRepoManager();
-		initialize(info);
-		validateInfo(info);
-		System.out.println(NLS.bind(Messages.message_generatingMetadata, info.getSummary()));
-
-		long before = System.currentTimeMillis();
-		IPublishingAction[] actions = createActions();
-		Publisher publisher = createPublisher(info);
-		IStatus result = publisher.publish(actions);
-		long after = System.currentTimeMillis();
-
-		if (result.isOK()) {
-			System.out.println(NLS.bind(Messages.message_generationCompleted, String.valueOf((after - before) / 1000)));
-			return IApplication.EXIT_OK;
-		}
-		System.out.println(result);
-		return new Integer(1);
-	}
-
-	protected abstract IPublishingAction[] createActions();
-
-	protected Publisher createPublisher(PublisherInfo info) {
-		return new Publisher(info);
-	}
-
-	protected void validateInfo(PublisherInfo info) {
-		//		if (info.getBaseLocation() == null && info.getProduct() == null) {
-		//			System.out.println(Messages.exception_baseLocationNotSpecified);
-		//			return new Integer(-1);
-		//		}
-	}
-
-	public Object start(IApplicationContext context) throws Exception {
-		return run((String[]) context.getArguments().get("application.args")); //$NON-NLS-1$
-	}
-
-	public void stop() {
-		if (registrationDefaultMetadataManager != null) {
-			registrationDefaultMetadataManager.unregister();
-			registrationDefaultMetadataManager = null;
-		}
-		if (registrationDefaultArtifactManager != null) {
-			registrationDefaultArtifactManager.unregister();
-			registrationDefaultArtifactManager = null;
-		}
-		if (registrationBus != null) {
-			registrationBus.unregister();
-			registrationBus = null;
-		}
-	}
-
-	public void setArtifactLocation(String location) {
-		this.artifactLocation = location;
-	}
-
-	public void setMetadataLocation(String location) {
-		this.metadataLocation = location;
-	}
-
-	public boolean reuseExistingPack200Files() {
-		return reusePackedFiles;
-	}
-
-	public void setReuseExistingPackedFiles(boolean value) {
-		reusePackedFiles = value;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublishingAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublishingAction.java
deleted file mode 100644
index 98dffc7..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/AbstractPublishingAction.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.io.*;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-public abstract class AbstractPublishingAction implements IPublishingAction {
-
-	public static final int AS_IS = 1;
-	public static final int INCLUDE_ROOT = 2;
-
-	public static final String CONFIG_SEGMENT_SEPARATOR = "."; //$NON-NLS-1$
-
-	/**
-	 * Convert a list of tokens into an array. The list separator has to be
-	 * specified.
-	 */
-	public static String[] getArrayFromString(String list, String separator) {
-		if (list == null || list.trim().equals("")) //$NON-NLS-1$
-			return new String[0];
-		List result = new ArrayList();
-		for (StringTokenizer tokens = new StringTokenizer(list, separator); tokens.hasMoreTokens();) {
-			String token = tokens.nextToken().trim();
-			if (!token.equals("")) //$NON-NLS-1$
-				result.add(token);
-		}
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	/**
-	 * Returns a string array of { ws, os, arch } as parsed from the given string
-	 * @param configSpec the string to parse
-	 * @return the ws, os, arch form of the given string
-	 */
-	public static String[] parseConfigSpec(String configSpec) {
-		String[] result = getArrayFromString(configSpec, CONFIG_SEGMENT_SEPARATOR);
-		return result;
-	}
-
-	/**
-	 * Returns the LDAP filter form that matches the given config spec.  Returns
-	 * an empty String if the spec does not identify an ws, os or arch.
-	 * @param configSpec a config spec to filter
-	 * @return the LDAP filter for the given spec.  
-	 */
-	public static String createFilterSpec(String configSpec) {
-		String[] config = parseConfigSpec(configSpec);
-		if (config[0] != null || config[1] != null || config[2] != null) {
-			String filterWs = config[0] != null ? "(osgi.ws=" + config[0] + ")" : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			String filterOs = config[1] != null ? "(osgi.os=" + config[1] + ")" : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			String filterArch = config[2] != null ? "(osgi.arch=" + config[2] + ")" : ""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			return "(& " + filterWs + filterOs + filterArch + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the normalized string form of the given config spec.  This is useful for putting
-	 * in IU ids etc. Note that the result is not intended to be machine readable (i.e., parseConfigSpec
-	 * may not work on the result).
-	 * @param configSpec the config spec to format
-	 * @return the readable format of the given config spec
-	 */
-	public static String createIdString(String configSpec) {
-		String[] config = parseConfigSpec(configSpec);
-		return config[0] + '.' + config[1] + '.' + config[2];
-	}
-
-	/**
-	 * Returns the canonical form of config spec with the given ws, os and arch.
-	 * Note that the result is intended to be machine readable (i.e., parseConfigSpec
-	 * will parse the the result).
-	 * @param ws the window system
-	 * @param os the operating system
-	 * @param arch the machine architecture
-	 * @return the machine readable format of the given config spec
-	 */
-	public static String createConfigSpec(String ws, String os, String arch) {
-		return ws + '.' + os + '.' + arch;
-	}
-
-	protected void publishArtifact(IArtifactDescriptor descriptor, File[] files, IPublisherInfo info, int mode) {
-		publishArtifact(descriptor, files, null, info, mode);
-	}
-
-	protected void publishArtifact(IArtifactDescriptor descriptor, File base, File[] files, IPublisherInfo info, int mode) {
-		IArtifactRepository destination = info.getArtifactRepository();
-		if (descriptor == null || destination == null)
-			return;
-
-		// publish the given files
-		publishArtifact(descriptor, files, null, info, mode);
-
-		// if we are assimilating pack200 files then add the packed descriptor
-		// into the repo assuming it does not already exist.
-		boolean reuse = "true".equals(destination.getProperties().get(AbstractPublisherApplication.PUBLISH_PACK_FILES_AS_SIBLINGS)); //$NON-NLS-1$
-		if (base != null && reuse && (info.getArtifactOptions() & IPublisherInfo.A_PUBLISH) > 0) {
-			File packFile = new Path(base.getAbsolutePath()).addFileExtension("pack.gz").toFile(); //$NON-NLS-1$
-			if (packFile.exists()) {
-				IArtifactDescriptor ad200 = MetadataGeneratorHelper.createPack200ArtifactDescriptor(descriptor.getArtifactKey(), packFile, descriptor.getProperty(IArtifactDescriptor.ARTIFACT_SIZE));
-				publishArtifact(ad200, new File[] {packFile}, null, info, AS_IS | INCLUDE_ROOT);
-			}
-		}
-	}
-
-	protected void publishArtifact(IArtifactDescriptor descriptor, File[] files, File root, IPublisherInfo info, int mode) {
-		IArtifactRepository destination = info.getArtifactRepository();
-
-		// if the destination already contains the descriptor, there is nothing to do.
-		if (destination.contains(descriptor))
-			return;
-		// if all we are doing is indexing things then add the descriptor and get on with ti
-		if ((info.getArtifactOptions() & IPublisherInfo.A_PUBLISH) == 0) {
-			destination.addDescriptor(descriptor);
-			return;
-		}
-
-		boolean overwrite = (info.getArtifactOptions() & IPublisherInfo.A_OVERWRITE) > 0;
-		// if there is just one file and the mode is as-is, just copy the file into the repo
-		if (((mode & AS_IS) > 0) && files.length == 1) {
-			try {
-				OutputStream output = destination.getOutputStream(descriptor, overwrite);
-				if (output == null)
-					return;
-				output = new BufferedOutputStream(output);
-				FileUtils.copyStream(new BufferedInputStream(new FileInputStream(files[0])), true, output, true);
-			} catch (ProvisionException e) {
-				LogHelper.log(e.getStatus());
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error publishing artifacts", e)); //$NON-NLS-1$
-			}
-		} else {
-			// otherwise, zip up the files and copy the zip into the repo
-			File tempFile = null;
-			try {
-				OutputStream output = destination.getOutputStream(descriptor, overwrite);
-				if (output == null)
-					return;
-				output = new BufferedOutputStream(output);
-				tempFile = File.createTempFile("p2.generator", ""); //$NON-NLS-1$ //$NON-NLS-2$
-				if (root == null)
-					FileUtils.zip(files, tempFile, (mode & INCLUDE_ROOT) > 0);
-				else
-					FileUtils.zip(files, tempFile, root);
-				if (output != null)
-					FileUtils.copyStream(new BufferedInputStream(new FileInputStream(tempFile)), true, output, true);
-			} catch (ProvisionException e) {
-				LogHelper.log(e.getStatus());
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error publishing artifacts", e)); //$NON-NLS-1$
-			} finally {
-				if (tempFile != null)
-					tempFile.delete();
-			}
-		}
-	}
-
-	public abstract IStatus perform(IPublisherInfo info, IPublisherResult results);
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Activator.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Activator.java
deleted file mode 100644
index 80e0caf..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Activator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	public static BundleContext context = null;
-	public static String ID = "org.eclipse.equinox.p2.publisher"; //$NON-NLS-1$
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		Activator.context = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		Activator.context = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/BundleDescriptionFactory.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/BundleDescriptionFactory.java
deleted file mode 100644
index 6190447..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/BundleDescriptionFactory.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.osgi.service.pluginconversion.PluginConversionException;
-import org.eclipse.osgi.service.pluginconversion.PluginConverter;
-import org.eclipse.osgi.service.resolver.*;
-import org.eclipse.osgi.util.ManifestElement;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-
-public class BundleDescriptionFactory {
-	public static final String DIR = "dir"; //$NON-NLS-1$
-	public static final String JAR = "jar"; //$NON-NLS-1$
-	private static final String FEATURE_FILENAME_DESCRIPTOR = "feature.xml"; //$NON-NLS-1$
-	private static final String PLUGIN_FILENAME_DESCRIPTOR = "plugin.xml"; //$NON-NLS-1$
-	private static final String FRAGMENT_FILENAME_DESCRIPTOR = "fragment.xml"; //$NON-NLS-1$
-
-	public static String BUNDLE_SHAPE = "Eclipse-BundleShape"; //$NON-NLS-1$
-
-	//	static final String DEFAULT_BUNDLE_LOCALIZATION = "plugin"; //$NON-NLS-1$	
-	//	static final String PROPERTIES_FILE_EXTENSION = ".properties"; //$NON-NLS-1$
-	//	static final String MANIFEST_LOCALIZATIONS = "eclipse.p2.manifest.localizations"; //$NON-NLS-1$
-	//
-	//	static final Locale DEFAULT_LOCALE = new Locale("df", "LT"); //$NON-NLS-1$//$NON-NLS-2$
-	//	static final Locale PSEUDO_LOCALE = new Locale("zz", "ZZ"); //$NON-NLS-1$//$NON-NLS-2$
-
-	StateObjectFactory factory;
-	State state;
-
-	public static BundleDescriptionFactory getBundleDescriptionFactory(BundleContext context) {
-		PlatformAdmin platformAdmin = (PlatformAdmin) ServiceHelper.getService(context, PlatformAdmin.class.getName());
-		if (platformAdmin == null)
-			throw new IllegalStateException("PlatformAdmin not registered."); //$NON-NLS-1$
-		return new BundleDescriptionFactory(platformAdmin.getFactory(), null);
-	}
-
-	public BundleDescriptionFactory(StateObjectFactory factory, State state) {
-		this.factory = factory;
-		this.state = state;
-		//TODO find a state and a factory when not provided
-	}
-
-	private static PluginConverter acquirePluginConverter() {
-		return (PluginConverter) ServiceHelper.getService(Activator.getContext(), PluginConverter.class.getName());
-	}
-
-	private static Dictionary convertPluginManifest(File bundleLocation, boolean logConversionException) {
-		PluginConverter converter;
-		try {
-			converter = acquirePluginConverter();
-			if (converter == null) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Unable to aquire PluginConverter service during generation for: " + bundleLocation));
-				return null;
-			}
-			return converter.convertManifest(bundleLocation, false, null, true, null);
-		} catch (PluginConversionException convertException) {
-			// only log the exception if we had a plugin.xml or fragment.xml and we failed conversion
-			if (bundleLocation.getName().equals(FEATURE_FILENAME_DESCRIPTOR))
-				return null;
-			if (!new File(bundleLocation, PLUGIN_FILENAME_DESCRIPTOR).exists() && !new File(bundleLocation, FRAGMENT_FILENAME_DESCRIPTOR).exists())
-				return null;
-			if (logConversionException) {
-				IStatus status = new Status(IStatus.WARNING, Activator.ID, 0, NLS.bind(Messages.exception_errorConverting, bundleLocation.getAbsolutePath()), convertException);
-				LogHelper.log(status);
-			}
-			return null;
-		}
-	}
-
-	public BundleDescription getBundleDescription(Dictionary enhancedManifest, File bundleLocation) {
-		try {
-			BundleDescription descriptor = factory.createBundleDescription(state, enhancedManifest, bundleLocation != null ? bundleLocation.getAbsolutePath() : null, 1); //TODO Do we need to have a real bundle id
-			descriptor.setUserObject(enhancedManifest);
-			return descriptor;
-		} catch (BundleException e) {
-			String message = NLS.bind(Messages.exception_stateAddition, bundleLocation == null ? null : bundleLocation.getAbsoluteFile());
-			IStatus status = new Status(IStatus.WARNING, Activator.ID, message, e);
-			LogHelper.log(status);
-			return null;
-		}
-	}
-
-	public BundleDescription getBundleDescription(File bundleLocation) {
-		Dictionary manifest = loadManifest(bundleLocation);
-		if (manifest == null)
-			return null;
-		return getBundleDescription(manifest, bundleLocation);
-	}
-
-	public BundleDescription getBundleDescription(InputStream manifestStream, File bundleLocation) {
-		Hashtable entries = new Hashtable();
-		try {
-			ManifestElement.parseBundleManifest(manifestStream, entries);
-			return getBundleDescription(entries, bundleLocation);
-		} catch (IOException e) {
-			String message = "An error occurred while reading the bundle description.";
-			IStatus status = new Status(IStatus.ERROR, Activator.ID, message, e);
-			LogHelper.log(status);
-		} catch (BundleException e) {
-			String message = "An error occurred while reading the bundle description.";
-			IStatus status = new Status(IStatus.ERROR, Activator.ID, message, e);
-			LogHelper.log(status);
-		}
-		return null;
-	}
-
-	public static Dictionary loadManifest(File bundleLocation) {
-		InputStream manifestStream = null;
-		ZipFile jarFile = null;
-		try {
-			if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && bundleLocation.isFile()) { //$NON-NLS-1$
-				jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-				ZipEntry manifestEntry = jarFile.getEntry(JarFile.MANIFEST_NAME);
-				if (manifestEntry != null) {
-					manifestStream = jarFile.getInputStream(manifestEntry);
-				}
-			} else {
-				File manifestFile = new File(bundleLocation, JarFile.MANIFEST_NAME);
-				if (manifestFile.exists())
-					manifestStream = new BufferedInputStream(new FileInputStream(manifestFile));
-			}
-		} catch (IOException e) {
-			//ignore but log
-			LogHelper.log(new Status(IStatus.WARNING, Activator.ID, "An error occurred while loading the bundle manifest.", e));
-		}
-
-		Dictionary manifest = null;
-		if (manifestStream != null) {
-			try {
-				Map manifestMap = ManifestElement.parseBundleManifest(manifestStream, null);
-				// TODO temporary hack.  We are reading a Map but everyone wants a Dictionary so convert.
-				// real answer is to have people expect a Map but that is a wider change.
-				manifest = new Hashtable(manifestMap);
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "An error occurred while loading the bundle manifest.", e));
-				return null;
-			} catch (BundleException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "An error occurred while loading the bundle manifest.", e));
-				return null;
-			} finally {
-				try {
-					if (jarFile != null)
-						jarFile.close();
-				} catch (IOException e2) {
-					//Ignore
-				}
-			}
-		} else {
-			manifest = convertPluginManifest(bundleLocation, true);
-		}
-
-		if (manifest == null)
-			return null;
-
-		//Deal with the pre-3.0 plug-in shape who have a default jar manifest.mf
-		if (manifest.get(org.osgi.framework.Constants.BUNDLE_SYMBOLICNAME) == null)
-			manifest = convertPluginManifest(bundleLocation, true);
-
-		if (manifest == null)
-			return null;
-		// if the bundle itself does not define its shape, infer the shape from the current form
-		if (manifest.get(BUNDLE_SHAPE) == null)
-			manifest.put(BUNDLE_SHAPE, bundleLocation.isDirectory() ? DIR : JAR);
-		getManifestLocalizations(manifest, bundleLocation);
-		// localizeManifest(manifest, bundleLocation);
-		return manifest;
-	}
-
-	//	private Properties loadProperties(File bundleLocation, String localizationFile) throws IOException {
-	//		Properties result = new Properties();
-	//		InputStream propertyStream = null;
-	//		try {
-	//			try {
-	//				if (bundleLocation.isDirectory())
-	//					propertyStream = new FileInputStream(new File(bundleLocation, localizationFile));
-	//				else {
-	//					URLConnection connection = new URL("jar:" + bundleLocation.toURL().toExternalForm() + "!/" + localizationFile).openConnection(); //$NON-NLS-1$ //$NON-NLS-2$
-	//					connection.setUseCaches(false);
-	//					propertyStream = connection.getInputStream();
-	//				}
-	//			} catch (FileNotFoundException e) {
-	//				// if there is no messages file then just return;
-	//				return result;
-	//			}
-	//			result.load(propertyStream);
-	//		} finally {
-	//			if (propertyStream != null)
-	//				propertyStream.close();
-	//		}
-	//		return result;
-	//	}
-
-	// Collect the manifest localizations from the bundle directory
-	// and store them in the manifest.
-	private static void getManifestLocalizations(Dictionary manifest, File bundleLocation) {
-		//		Map localizations;
-		//		Locale defaultLocale = null; // = Locale.ENGLISH; // TODO: get this from GeneratorInfo
-		//		String bundleLocalization = (String) manifest.get(Constants.BUNDLE_LOCALIZATION);
-		//		if (bundleLocalization == null || bundleLocalization.trim().length() == 0)
-		//			bundleLocalization = DEFAULT_BUNDLE_LOCALIZATION;
-		//
-		//		if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && //$NON-NLS-1$
-		//				bundleLocation.isFile()) {
-		//			localizations = getJarManifestLocalization(bundleLocation, bundleLocalization, manifest, defaultLocale);
-		//		} else {
-		//			localizations = getDirManifestLocalization(bundleLocation, bundleLocalization, manifest, defaultLocale);
-		//		}
-		//
-		//		if (localizations.size() > 0) {
-		//			manifest.put(MANIFEST_LOCALIZATIONS, localizations);
-		//		}
-	}
-
-	//	private Map getJarManifestLocalization(File bundleLocation, String bundleLocalization, Dictionary manifest, Locale defaultLocale) {
-	//		ZipFile jarFile = null;
-	//		Map localizations = new HashMap(4);
-	//		try {
-	//			jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-	//			for (Enumeration entries = jarFile.entries(); entries.hasMoreElements();) {
-	//				ZipEntry nextEntry = (ZipEntry) entries.nextElement();
-	//				String nextName = nextEntry.getName();
-	//				String localeString = getLocaleString(nextName, bundleLocalization);
-	//
-	//				if (!nextEntry.isDirectory() && localeString != null) {
-	//					Locale nextLocale = getLocale(localeString);
-	//					InputStream stream = null;
-	//					try {
-	//						stream = jarFile.getInputStream(nextEntry);
-	//						Properties properties = new Properties();
-	//						properties.load(stream);
-	//						Properties localizedStrings = getLocalizedProperties(manifest, properties);
-	//						if (localizedStrings.size() > 0) {
-	//							localizations.put(nextLocale, localizedStrings);
-	//							if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-	//								localizations.put(nextLocale, localizedStrings);
-	//							}
-	//						}
-	//					} finally {
-	//						if (stream != null)
-	//							stream.close();
-	//					}
-	//				}
-	//			}
-	//		} catch (IOException ioe) {
-	//			ioe.printStackTrace();
-	//		} finally {
-	//			if (jarFile != null) {
-	//				try {
-	//					jarFile.close();
-	//				} catch (IOException ioe) {
-	//					// do nothing
-	//				}
-	//			}
-	//		}
-	//
-	//		return localizations;
-	//	}
-	//
-	//	private Map getDirManifestLocalization(File bundleLocation, String bundleLocalization, Dictionary manifest, Locale defaultLocale) {
-	//		File localizationPath = new File(bundleLocation, bundleLocalization);
-	//		File localizationDir = localizationPath.getParentFile();
-	//		String localizationFile = localizationPath.getName();
-	//		String[] localizationFiles = localizationDir.list(new LocalizationFileFilter(localizationFile));
-	//
-	//		HashMap localizations = null;
-	//
-	//		if (localizationFiles != null) {
-	//			localizations = new HashMap(localizationFiles.length);
-	//			for (int i = 0; i < localizationFiles.length; i++) {
-	//				String nextFile = localizationFiles[i];
-	//				Locale nextLocale = getLocale(getLocaleString(nextFile, localizationFile));
-	//
-	//				try {
-	//					Properties properties = loadProperties(bundleLocation, nextFile);
-	//					Properties localizedStrings = getLocalizedProperties(manifest, properties);
-	//					if (localizedStrings.size() > 0) {
-	//						localizations.put(nextLocale, localizedStrings);
-	//						if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-	//							localizations.put(nextLocale, localizedStrings);
-	//						}
-	//					}
-	//				} catch (IOException ioe) {
-	//					ioe.printStackTrace();
-	//				}
-	//			}
-	//		}
-	//
-	//		return localizations;
-	//	}
-
-	//	private class LocalizationFileFilter implements FilenameFilter {
-	//
-	//		String filenamePrefix;
-	//
-	//		public LocalizationFileFilter(String filenamePrefix) {
-	//			this.filenamePrefix = filenamePrefix;
-	//		}
-	//
-	//		/* (non-Javadoc)
-	//		 * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
-	//		 */
-	//		public boolean accept(File directory, String filename) {
-	//			return (getLocaleString(filename, filenamePrefix) != null ? true : false);
-	//		}
-	//	}
-
-	//	static public String getLocaleString(String filename, String filenamePrefix) {
-	//		String localeString = null;
-	//		if (filename.startsWith(filenamePrefix) && filename.endsWith(PROPERTIES_FILE_EXTENSION)) {
-	//			if (filename.length() > filenamePrefix.length() + PROPERTIES_FILE_EXTENSION.length()) {
-	//				localeString = filename.substring(filenamePrefix.length() + 1, filename.length() - PROPERTIES_FILE_EXTENSION.length());
-	//			} else {
-	//				localeString = ""; //$NON-NLS-1$
-	//			}
-	//		}
-	//		return localeString;
-	//	}
-
-	//	static private Locale getLocale(String localeString) {
-	//		Locale locale = DEFAULT_LOCALE;
-	//		if (localeString.length() == 5 && localeString.indexOf('_') == 2) {
-	//			locale = new Locale(localeString.substring(0, 2), localeString.substring(3, 5));
-	//		} else if (localeString.length() == 2) {
-	//			locale = new Locale(localeString.substring(0, 2));
-	//		}
-	//		return locale;
-	//	}
-	//
-	//	static private Properties getLocalizedProperties(Dictionary manifest, Properties properties) {
-	//		// Walk over the manifest and find all %xxx with the string value
-	//		// in the properties file and copy them to the localized properties.
-	//		Properties localizedProperties = new Properties();
-	//		for (Enumeration e = manifest.keys(); e.hasMoreElements();) {
-	//			String key = (String) e.nextElement();
-	//			Object value = manifest.get(key);
-	//			if (value instanceof String) {
-	//				String stringValue = (String) value;
-	//				if (stringValue.startsWith("%")) { //$NON-NLS-1$
-	//					String newValue = properties.getProperty(stringValue.substring(1));
-	//					if (newValue != null)
-	//						localizedProperties.put(key, newValue);
-	//				}
-	//			}
-	//		}
-	//		return localizedProperties;
-	//	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/CompoundQueryable.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/CompoundQueryable.java
deleted file mode 100644
index cc93aa7..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/CompoundQueryable.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.equinox.internal.provisional.p2.query.*;
-
-public class CompoundQueryable implements IQueryable {
-
-	IQueryable[] children;
-
-	public CompoundQueryable(IQueryable[] children) {
-		this.children = children;
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		SubMonitor sub = SubMonitor.convert(monitor, children.length * 10);
-		for (int i = 0; i < children.length; i++)
-			children[i].query(query, collector, sub.newChild(1));
-		sub.done();
-		return collector;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/FileSetDescriptor.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/FileSetDescriptor.java
deleted file mode 100644
index bb921c6..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/FileSetDescriptor.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.util.ArrayList;
-
-public class FileSetDescriptor {
-	private final String key;
-	private String configSpec = null;
-	private String files = ""; //$NON-NLS-1$
-	private final ArrayList permissions = new ArrayList();
-	private String links = ""; //$NON-NLS-1$
-
-	public FileSetDescriptor(String key, String configSpec) {
-		this.key = key;
-		this.configSpec = configSpec;
-	}
-
-	public void setFiles(String property) {
-		files = property;
-	}
-
-	// a permission spec is { <perm>, file patterns }
-	public void addPermissions(String[] property) {
-		permissions.add(property);
-	}
-
-	public void setLinks(String property) {
-		links = property;
-	}
-
-	public String getConfigSpec() {
-		return configSpec;
-	}
-
-	public String getKey() {
-		return key;
-	}
-
-	public String getLinks() {
-		return links;
-	}
-
-	public String[][] getPermissions() {
-		return (String[][]) permissions.toArray(new String[permissions.size()][]);
-	}
-
-	public String getFiles() {
-		return files;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/GeneratorBundleInfo.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/GeneratorBundleInfo.java
deleted file mode 100644
index c2cf5b5..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/GeneratorBundleInfo.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.io.ByteArrayInputStream;
-import org.eclipse.equinox.internal.p2.core.helpers.Headers;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
-
-public class GeneratorBundleInfo extends BundleInfo {
-	//	public static final int NO_LEVEL = -1;
-
-	//	private String symbolicName;
-	//	private String version;
-	//	private String location;
-	//	private int expectedState;
-	//	private int startLevel = NO_LEVEL;
-	//	private String manifest;
-
-	private String specialConfigCommands;
-	private String specialUnconfigCommands;
-
-	public GeneratorBundleInfo(BundleInfo bInfo) {
-		super.setBundleId(bInfo.getBundleId());
-		super.setLocation(bInfo.getLocation());
-		super.setManifest(bInfo.getManifest());
-		super.setMarkedAsStarted(bInfo.isMarkedAsStarted());
-		super.setResolved(bInfo.isResolved());
-		super.setStartLevel(bInfo.getStartLevel());
-		super.setSymbolicName(bInfo.getSymbolicName());
-		super.setVersion(bInfo.getVersion());
-	}
-
-	public GeneratorBundleInfo() {
-		// TODO Auto-generated constructor stub
-	}
-
-	//	/* (non-Javadoc)
-	//	 * @see java.lang.Object#hashCode()
-	//	 */
-	//	public int hashCode() {
-	//		int result = symbolicName == null ? 0 : symbolicName.hashCode();
-	//		result = result + (version == null ? 0 : version.hashCode());
-	//		result = result + (location == null ? 0 : location.hashCode());
-	//		return result;
-	//	}
-	//
-	//	public String getSymbolicName() {
-	//		return symbolicName;
-	//	}
-	//
-	//	public String getVersion() {
-	//		return version;
-	//	}
-	//
-	//	public int expectedState() {
-	//		return expectedState;
-	//	}
-	//
-	//	public int getStartLevel() {
-	//		return startLevel;
-	//	}
-	//
-	//	public String getLocation() {
-	//		return location;
-	//	}
-	//
-	//	public void setSymbolicName(String id) {
-	//		symbolicName = id;
-	//	}
-	//
-	//	public void setVersion(String version) {
-	//		this.version = version;
-	//	}
-	//
-	//	public void setExpectedState(int state) {
-	//		expectedState = state;
-	//	}
-	//
-	//	public void setStartLevel(int level) {
-	//		this.startLevel = level;
-	//	}
-	//
-	//	public void setLocation(String location) {
-	//		this.location = location;
-	//	}
-	//
-	//	public void setManifest(String manifest) {
-	//		this.manifest = manifest;
-	//	}
-	//	
-	//	public String getManifest() {
-	//		return manifest;
-	//	}
-	//	
-	public String getSpecialConfigCommands() {
-		return specialConfigCommands;
-	}
-
-	public void setSpecialConfigCommands(String specialConfigCommands) {
-		this.specialConfigCommands = specialConfigCommands;
-	}
-
-	public String getSpecialUnconfigCommands() {
-		return specialUnconfigCommands;
-	}
-
-	public void setSpecialUnconfigCommands(String specialUnconfigCommands) {
-		this.specialUnconfigCommands = specialUnconfigCommands;
-	}
-
-	//	/* (non-Javadoc)
-	//	 * @see java.lang.Object#equals(java.lang.Object)
-	//	 */
-	//	public boolean equals(Object toCompare) {
-	//		if (toCompare instanceof GeneratorBundleInfo) {
-	//			GeneratorBundleInfo info = (GeneratorBundleInfo) toCompare;
-	//			if (info.symbolicName.equals(symbolicName) && info.version.equals(version) && (info.location == null || location == null ? true : info.location.equals(location)))
-	//				return true;
-	//		}
-	//		return false;
-	//	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		String superSt = super.toString();
-		if (superSt.length() > 0)
-			buffer.append(superSt.substring(0, superSt.length() - 1));
-		buffer.append(", this.specialConfigCommands="); //$NON-NLS-1$
-		buffer.append(this.specialConfigCommands);
-		buffer.append(')');
-		return buffer.toString();
-	}
-
-	public void initFromManifest(String manifest) {
-		try {
-			super.setManifest(manifest);
-			Headers headers = Headers.parseManifest(new ByteArrayInputStream(manifest.getBytes()));
-			ManifestElement[] element = ManifestElement.parseHeader("bsn", (String) headers.get(Constants.BUNDLE_SYMBOLICNAME)); //$NON-NLS-1$
-			super.setSymbolicName(element[0].getValue());
-			super.setVersion((String) headers.get(Constants.BUNDLE_VERSION));
-		} catch (BundleException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IProductDescriptor.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IProductDescriptor.java
deleted file mode 100644
index 37d1c38..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IProductDescriptor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.util.List;
-
-public interface IProductDescriptor {
-
-	public String getLauncherName();
-
-	/**
-	 * Returns the list of all bundles in this product.
-	 * @param includeFragments whether or not to include the fragments in the return value
-	 * @return the list of bundles in this product
-	 */
-	public List getBundles(boolean includeFragments);
-
-	public List getFragments();
-
-	public List getFeatures();
-
-	public String getConfigIniPath(String os);
-
-	public String getId();
-
-	public String getSplashLocation();
-
-	public String getProductName();
-
-	public boolean useFeatures();
-
-	public String getVersion();
-
-	public String getVMArguments(String os);
-
-	public String getProgramArguments(String os);
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherInfo.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherInfo.java
deleted file mode 100644
index 17e2982..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherInfo.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.util.Collection;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.osgi.framework.Version;
-
-public interface IPublisherInfo {
-
-	/**
-	 * A bitwise flag to say whether or not the index for the artifact repository should
-	 * be updated.
-	 */
-	public static final int A_INDEX = 1;
-
-	/**
-	 * A bitwise flag to say whether or the artifacts themselves should be published.
-	 */
-	public static final int A_PUBLISH = 2;
-
-	/**
-	 * A bitwise flag to say whether or not to overwrite disk content discovered
-	 * in the repository when publishing an artifact
-	 */
-	public static final int A_OVERWRITE = 4;
-
-	/**
-	 * A bitwise flag to say whether or not to leave the disk content discovered
-	 * as is when publishing an artifact.  That is, if a directory is discovered, it is
-	 * left as a directory.
-	 */
-	public static final int A_AS_IS = 8;
-
-	/**
-	 * Returns the artifact repository into which any publishable artifacts are published
-	 * or <code>null</code> if none.
-	 * @return a destination artifact repository or <code>null</code>
-	 */
-	public IArtifactRepository getArtifactRepository();
-
-	/**
-	 * Returns the metadata repository into which any publishable metadata is published
-	 * or <code>null</code> if none.
-	 * @return a destination metadata repository or <code>null</code>
-	 */
-	public IMetadataRepository getMetadataRepository();
-
-	/**
-	 * Returns whether or not artifacts themselves should be published.
-	 * @return <code>true</code> if artifacts should be published.  
-	 * <code>false</code> otherwise.
-	 */
-	public int getArtifactOptions();
-
-	/**
-	 * Returns the registered advice for the given configuration of WS, OS and ARCH where the
-	 * advice is of the given type.  If mergeDefault is <code>true</code> then the advice for
-	 * the default configuration is merged into the result.
-	 * @param configSpec the configuration to query.  Note that the given configuration
-	 * must specify values for WS, OS and ARCH.
-	 * @param type the type of advice to look for
-	 * @param mergeDefault whether or not to merge in the advice common to all configurations
-	 * @return the set of advice of the given type for the given configuration
-	 */
-	public Collection getAdvice(String configSpec, boolean includeDefault, String id, Version version, Class type);
-
-	/**
-	 * Add the given advice to the set of publishing advices.  
-	 * @param advice the advice to retain
-	 */
-	public void addAdvice(IPublishingAdvice advice);
-
-	public String[] getConfigurations();
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherResult.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherResult.java
deleted file mode 100644
index 2615754..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublisherResult.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.util.Collection;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-public interface IPublisherResult {
-	public static final int MERGE_MATCHING = 0;
-	public static final int MERGE_ALL_ROOT = 1;
-	public static final int MERGE_ALL_NON_ROOT = 2;
-
-	// type markers
-	public static final String ROOT = "root"; //$NON-NLS-1$
-	public static final String NON_ROOT = "non_root"; //$NON-NLS-1$
-
-	public void addIU(IInstallableUnit iu, String type);
-
-	public void addIUs(Collection ius, String type);
-
-	/**
-	 * Returns the IUs in this result with the given id.
-	 */
-	public Collection getIUs(String id, String type);
-
-	public IInstallableUnit getIU(String id, String type);
-
-	public void merge(IPublisherResult result, int mode);
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAction.java
deleted file mode 100644
index 5ec1ad5..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAction.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import org.eclipse.core.runtime.IStatus;
-
-public interface IPublishingAction {
-
-	IStatus perform(IPublisherInfo info, IPublisherResult results);
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAdvice.java
deleted file mode 100644
index a4ea9fc..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/IPublishingAdvice.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import org.osgi.framework.Version;
-
-public interface IPublishingAdvice {
-
-	public boolean isApplicable(String configSpec, boolean includeDefault, String id, Version version);
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/InstallPublisherApplication.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/InstallPublisherApplication.java
deleted file mode 100644
index f2f3b27..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/InstallPublisherApplication.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.util.ArrayList;
-import org.eclipse.equinox.internal.p2.publisher.actions.EclipseInstallAction;
-
-public class InstallPublisherApplication extends AbstractPublisherApplication {
-
-	protected String id;
-	protected String version = "1.0.0"; //$NON-NLS-1$
-	protected String name;
-	protected String flavor;
-	protected String[] topLevel;
-	protected boolean start;
-	protected String[] rootExclusions;
-
-	public InstallPublisherApplication() {
-	}
-
-	protected void processFlag(String arg, PublisherInfo info) {
-		super.processFlag(arg, info);
-
-		if (arg.equalsIgnoreCase("-startAll")) //$NON-NLS-1$
-			start = true;
-	}
-
-	protected void processParameter(String arg, String parameter, PublisherInfo info) {
-		super.processParameter(arg, parameter, info);
-
-		if (arg.equalsIgnoreCase("-id")) //$NON-NLS-1$
-			id = parameter;
-
-		if (arg.equalsIgnoreCase("-version")) //$NON-NLS-1$
-			version = parameter;
-
-		if (arg.equalsIgnoreCase("-name")) //$NON-NLS-1$
-			name = parameter;
-
-		if (arg.equalsIgnoreCase("-flavor")) //$NON-NLS-1$
-			flavor = parameter;
-
-		if (arg.equalsIgnoreCase("-top")) //$NON-NLS-1$
-			topLevel = AbstractPublishingAction.getArrayFromString(parameter, ",");
-
-		if (arg.equalsIgnoreCase("-rootExclusions")) //$NON-NLS-1$
-			rootExclusions = AbstractPublishingAction.getArrayFromString(parameter, ",");
-	}
-
-	protected IPublishingAction[] createActions() {
-		ArrayList result = new ArrayList();
-		result.add(createEclipseInstallAction());
-		return (IPublishingAction[]) result.toArray(new IPublishingAction[result.size()]);
-	}
-
-	private IPublishingAction createEclipseInstallAction() {
-		String[] exclusions = getBaseExclusions();
-		if (rootExclusions != null) {
-			String[] result = new String[exclusions.length + rootExclusions.length];
-			System.arraycopy(exclusions, 0, result, 0, exclusions.length);
-			System.arraycopy(rootExclusions, 0, result, exclusions.length, rootExclusions.length);
-			exclusions = result;
-		}
-		return new EclipseInstallAction(source, id, version, name, flavor, topLevel, exclusions, start);
-	}
-
-	protected String[] getBaseExclusions() {
-		return new String[] {"plugins", "features", "configuration"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Messages.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Messages.java
deleted file mode 100644
index a98d28a..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Messages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.publisher.messages";//$NON-NLS-1$
-
-	public static String exception_errorConverting;
-	public static String exception_outputStream;
-	public static String exception_errorParsingUpdateSite;
-	public static String exception_stateAddition;
-	public static String exception_sourceDirectoryInvalid;
-	public static String exception_artifactRepoLocationURL;
-	public static String exception_artifactRepoNotWritable;
-	public static String exception_metadataRepoLocationURL;
-	public static String exception_metadataRepoNotWritable;
-	public static String exception_baseLocationNotSpecified;
-
-	public static String message_generatingMetadata;
-	public static String message_generationCompleted;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/MetadataGeneratorHelper.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/MetadataGeneratorHelper.java
deleted file mode 100644
index fb3c73a..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/MetadataGeneratorHelper.java
+++ /dev/null
@@ -1,1226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Genuitec, LLC - added license support
- *     Code 9 - Ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.io.*;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.p2.metadata.InstallableUnit;
-import org.eclipse.equinox.internal.p2.publisher.features.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.service.resolver.*;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.*;
-
-public class MetadataGeneratorHelper {
-	/**
-	 * A capability namespace representing the type of Eclipse resource (bundle, feature, source bundle, etc)
-	 * @see RequiredCapability#getNamespace()
-	 * @see ProvidedCapability#getNamespace()
-	 */
-	public static final String NAMESPACE_ECLIPSE_TYPE = "org.eclipse.equinox.p2.eclipse.type"; //$NON-NLS-1$
-
-	/**
-	 * A capability name in the {@link #NAMESPACE_ECLIPSE_TYPE} namespace 
-	 * representing and OSGi bundle resource
-	 * @see RequiredCapability#getName()
-	 * @see ProvidedCapability#getName()
-	 */
-	public static final String TYPE_ECLIPSE_BUNDLE = "bundle"; //$NON-NLS-1$
-	/**
-	 * A capability name in the {@link #NAMESPACE_ECLIPSE_TYPE} namespace 
-	 * representing a feature
-	 * @see RequiredCapability#getName()
-	 */
-	public static final String TYPE_ECLIPSE_FEATURE = "feature"; //$NON-NLS-1$
-
-	/**
-	 * A capability name in the {@link #NAMESPACE_ECLIPSE_TYPE} namespace 
-	 * representing a source bundle
-	 * @see RequiredCapability#getName()
-	 */
-	public static final String TYPE_ECLIPSE_SOURCE = "source"; //$NON-NLS-1$
-
-	/**
-	 * A capability namespace representing the localization (translation)
-	 * of strings from a specified IU in a specified locale
-	 * @see RequiredCapability#getNamespace()
-	 * @see ProvidedCapability#getNamespace()
-	 * TODO: this should be in API, probably in IInstallableUnit
-	 */
-	public static final String NAMESPACE_IU_LOCALIZATION = "org.eclipse.equinox.p2.localization"; //$NON-NLS-1$
-
-	// Only certain properties in the bundle manifest are assumed to be localized.
-	public static final String[] BUNDLE_LOCALIZED_PROPERTIES = {Constants.BUNDLE_NAME, Constants.BUNDLE_DESCRIPTION, Constants.BUNDLE_VENDOR, Constants.BUNDLE_CONTACTADDRESS, Constants.BUNDLE_DOCURL, Constants.BUNDLE_UPDATELOCATION};
-	public static final int BUNDLE_LOCALIZATION_INDEX = BUNDLE_LOCALIZED_PROPERTIES.length;
-
-	private static final String[] BUNDLE_IU_PROPERTY_MAP = {Constants.BUNDLE_NAME, IInstallableUnit.PROP_NAME, Constants.BUNDLE_DESCRIPTION, IInstallableUnit.PROP_DESCRIPTION, Constants.BUNDLE_VENDOR, IInstallableUnit.PROP_PROVIDER, Constants.BUNDLE_CONTACTADDRESS, IInstallableUnit.PROP_CONTACT, Constants.BUNDLE_DOCURL, IInstallableUnit.PROP_DOC_URL};
-
-	private static final String CAPABILITY_NS_JAVA_PACKAGE = "java.package"; //$NON-NLS-1$
-	private static final String CAPABILITY_NS_OSGI_BUNDLE = "osgi.bundle"; //$NON-NLS-1$
-	private static final String CAPABILITY_NS_OSGI_FRAGMENT = "osgi.fragment"; //$NON-NLS-1$
-
-	public static final String CAPABILITY_NS_UPDATE_FEATURE = "org.eclipse.update.feature"; //$NON-NLS-1$
-
-	private static final Version DEFAULT_JRE_VERSION = new Version("1.6"); //$NON-NLS-1$
-
-	public static final String ECLIPSE_FEATURE_CLASSIFIER = "org.eclipse.update.feature"; //$NON-NLS-1$
-	public static final String OSGI_BUNDLE_CLASSIFIER = "osgi.bundle"; //$NON-NLS-1$
-	public static final String BINARY_ARTIFACT_CLASSIFIER = "binary"; //$NON-NLS-1$
-
-	public static final String INSTALL_FEATURES_FILTER = "(org.eclipse.update.install.features=true)"; //$NON-NLS-1$
-
-	public static final String IU_NAMESPACE = IInstallableUnit.NAMESPACE_IU_ID;
-
-	private static final String LAUNCHER_ID_PREFIX = "org.eclipse.launcher"; //$NON-NLS-1$
-
-	public static final String ECLIPSE_INSTALL_HANDLER_PROP = "org.eclipse.update.installHandler"; //$NON-NLS-1$
-
-	//TODO - need to come up with a way to infer launcher version
-	private static final Version LAUNCHER_VERSION = new Version(1, 0, 0);
-
-	private static final Version versionMax = new Version(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE);
-
-	public static final TouchpointType TOUCHPOINT_NATIVE = MetadataFactory.createTouchpointType("org.eclipse.equinox.p2.native", new Version(1, 0, 0)); //$NON-NLS-1$
-	public static final TouchpointType TOUCHPOINT_OSGI = MetadataFactory.createTouchpointType("org.eclipse.equinox.p2.osgi", new Version(1, 0, 0)); //$NON-NLS-1$
-
-	public static final ProvidedCapability BUNDLE_CAPABILITY = MetadataFactory.createProvidedCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_BUNDLE, new Version(1, 0, 0));
-	public static final ProvidedCapability FEATURE_CAPABILITY = MetadataFactory.createProvidedCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_FEATURE, new Version(1, 0, 0));
-	public static final ProvidedCapability SOURCE_BUNDLE_CAPABILITY = MetadataFactory.createProvidedCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_SOURCE, new Version(1, 0, 0));
-
-	static final String DEFAULT_BUNDLE_LOCALIZATION = "plugin"; //$NON-NLS-1$	
-	static final String PROPERTIES_FILE_EXTENSION = ".properties"; //$NON-NLS-1$
-	static final String MANIFEST_LOCALIZATIONS = "eclipse.p2.manifest.localizations"; //$NON-NLS-1$
-
-	static final Locale DEFAULT_LOCALE = new Locale("df", "LT"); //$NON-NLS-1$//$NON-NLS-2$
-	static final Locale PSEUDO_LOCALE = new Locale("zz", "ZZ"); //$NON-NLS-1$//$NON-NLS-2$
-
-	public static IArtifactDescriptor createArtifactDescriptor(IArtifactKey key, File pathOnDisk) {
-		//TODO this size calculation is bogus
-		ArtifactDescriptor result = new ArtifactDescriptor(key);
-		if (pathOnDisk != null) {
-			result.setProperty(IArtifactDescriptor.ARTIFACT_SIZE, Long.toString(pathOnDisk.length()));
-			// TODO - this is wrong but I'm testing a work-around for bug 205842
-			result.setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, Long.toString(pathOnDisk.length()));
-		}
-		return result;
-	}
-
-	public static IArtifactDescriptor createPack200ArtifactDescriptor(IArtifactKey key, File pathOnDisk, String installSize) {
-		final String PACKED_FORMAT = "packed"; //$NON-NLS-1$
-		//TODO this size calculation is bogus
-		ArtifactDescriptor result = new ArtifactDescriptor(key);
-		if (pathOnDisk != null) {
-			result.setProperty(IArtifactDescriptor.ARTIFACT_SIZE, installSize);
-			// TODO - this is wrong but I'm testing a work-around for bug 205842
-			result.setProperty(IArtifactDescriptor.DOWNLOAD_SIZE, Long.toString(pathOnDisk.length()));
-		}
-		ProcessingStepDescriptor[] steps = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Pack200Unpacker", null, true)}; //$NON-NLS-1$
-		result.setProcessingSteps(steps);
-		result.setProperty(IArtifactDescriptor.FORMAT, PACKED_FORMAT);
-		return result;
-	}
-
-	public static IArtifactKey createBundleArtifactKey(String bsn, String version) {
-		return new ArtifactKey(OSGI_BUNDLE_CLASSIFIER, bsn, new Version(version));
-	}
-
-	public static IInstallableUnit createIUFragment(String id, String version, String flavor, String configSpec, Map touchpointData) {
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String resultId = flavor + AbstractPublishingAction.createIdString(configSpec) + id;
-		cu.setId(resultId);
-		Version resultVersion = new Version(version);
-		cu.setVersion(resultVersion);
-
-		cu.setFilter(AbstractPublishingAction.createFilterSpec(configSpec));
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, id, new VersionRange(resultVersion, true, resultVersion, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(resultId, resultVersion)});
-
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	public static IInstallableUnit createBundleConfigurationUnit(String hostId, Version hostVersion, boolean isBundleFragment, GeneratorBundleInfo configInfo, String configurationFlavor, String filter) {
-		if (configInfo == null)
-			return null;
-
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = configurationFlavor + hostId;
-		cu.setId(configUnitId);
-		cu.setVersion(hostVersion);
-
-		//Indicate the IU to which this CU apply
-		cu.setHost(new RequiredCapability[] { //
-				MetadataFactory.createRequiredCapability(CAPABILITY_NS_OSGI_BUNDLE, hostId, new VersionRange(hostVersion, true, versionMax, true), null, false, false), // 
-						MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_BUNDLE, new VersionRange(new Version(1, 0, 0), true, new Version(2, 0, 0), false), null, false, false)});
-
-		//Adds capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, hostVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		Map touchpointData = new HashMap();
-		touchpointData.put("install", "installBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("uninstall", "uninstallBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("configure", createConfigScript(configInfo, isBundleFragment)); //$NON-NLS-1$
-		touchpointData.put("unconfigure", createUnconfigScript(configInfo, isBundleFragment)); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		cu.setFilter(filter);
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	public static IInstallableUnit createBundleIU(BundleDescription bd, Map manifest, boolean isFolderPlugin, IArtifactKey key) {
-		Map manifestLocalizations = null;
-		if (manifest != null && bd.getLocation() != null) {
-			manifestLocalizations = getManifestLocalizations(manifest, new File(bd.getLocation()));
-		}
-
-		return createBundleIU(bd, manifest, isFolderPlugin, key, manifestLocalizations);
-	}
-
-	public static IInstallableUnit createBundleIU(BundleDescription bd, Map manifest, boolean isFolderPlugin, IArtifactKey key, Map manifestLocalizations) {
-		boolean isBinaryBundle = true;
-		if (manifest != null && manifest.containsKey("Eclipse-SourceBundle")) { //$NON-NLS-1$
-			isBinaryBundle = false;
-		}
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(bd.isSingleton());
-		iu.setId(bd.getSymbolicName());
-		iu.setVersion(bd.getVersion());
-		iu.setFilter(bd.getPlatformFilter());
-
-		iu.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(bd.getSymbolicName(), new VersionRange(new Version(0, 0, 0), true, bd.getVersion(), false), IUpdateDescriptor.NORMAL, null));
-
-		boolean isFragment = bd.getHost() != null;
-		//		boolean requiresAFragment = isFragment ? false : requireAFragment(bd, manifest);
-
-		//Process the required bundles
-		BundleSpecification requiredBundles[] = bd.getRequiredBundles();
-		ArrayList reqsDeps = new ArrayList();
-		//		if (requiresAFragment)
-		//			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_TYPE_OSGI_FRAGMENTS, bd.getSymbolicName(), VersionRange.emptyRange, null, false, false));
-		if (isFragment)
-			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_NS_OSGI_BUNDLE, bd.getHost().getName(), bd.getHost().getVersionRange(), null, false, false));
-		for (int j = 0; j < requiredBundles.length; j++)
-			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_NS_OSGI_BUNDLE, requiredBundles[j].getName(), requiredBundles[j].getVersionRange() == VersionRange.emptyRange ? null : requiredBundles[j].getVersionRange(), null, requiredBundles[j].isOptional(), false));
-
-		// Process the import packages
-		ImportPackageSpecification osgiImports[] = bd.getImportPackages();
-		for (int i = 0; i < osgiImports.length; i++) {
-			// TODO we need to sort out how we want to handle wild-carded dynamic imports - for now we ignore them
-			ImportPackageSpecification importSpec = osgiImports[i];
-			String importPackageName = importSpec.getName();
-			if (importPackageName.indexOf('*') != -1)
-				continue;
-
-			VersionRange versionRange = importSpec.getVersionRange() == VersionRange.emptyRange ? null : importSpec.getVersionRange();
-
-			//TODO this needs to be refined to take into account all the attribute handled by imports
-			reqsDeps.add(MetadataFactory.createRequiredCapability(CAPABILITY_NS_JAVA_PACKAGE, importPackageName, versionRange, null, isOptional(importSpec), false));
-		}
-		iu.setRequiredCapabilities((RequiredCapability[]) reqsDeps.toArray(new RequiredCapability[reqsDeps.size()]));
-
-		// Create set of provided capabilities
-		ArrayList providedCapabilities = new ArrayList();
-		providedCapabilities.add(createSelfCapability(bd.getSymbolicName(), bd.getVersion()));
-		providedCapabilities.add(MetadataFactory.createProvidedCapability(CAPABILITY_NS_OSGI_BUNDLE, bd.getSymbolicName(), bd.getVersion()));
-
-		// Process the export package
-		ExportPackageDescription exports[] = bd.getExportPackages();
-		for (int i = 0; i < exports.length; i++) {
-			//TODO make sure that we support all the refinement on the exports
-			providedCapabilities.add(MetadataFactory.createProvidedCapability(CAPABILITY_NS_JAVA_PACKAGE, exports[i].getName(), exports[i].getVersion() == Version.emptyVersion ? null : exports[i].getVersion()));
-		}
-		// Here we add a bundle capability to identify bundles
-		if (isBinaryBundle)
-			providedCapabilities.add(BUNDLE_CAPABILITY);
-		else
-			providedCapabilities.add(SOURCE_BUNDLE_CAPABILITY);
-
-		if (isFragment)
-			providedCapabilities.add(MetadataFactory.createProvidedCapability(CAPABILITY_NS_OSGI_FRAGMENT, bd.getHost().getName(), bd.getVersion()));
-
-		if (manifestLocalizations != null) {
-			for (Iterator iter = manifestLocalizations.keySet().iterator(); iter.hasNext();) {
-				Locale locale = (Locale) iter.next();
-				Properties translatedStrings = (Properties) manifestLocalizations.get(locale);
-				Enumeration propertyKeys = translatedStrings.propertyNames();
-				while (propertyKeys.hasMoreElements()) {
-					String nextKey = (String) propertyKeys.nextElement();
-					iu.setProperty(locale.toString() + '.' + nextKey, translatedStrings.getProperty(nextKey));
-				}
-				providedCapabilities.add(makeTranslationCapability(bd.getSymbolicName(), locale));
-			}
-		}
-
-		iu.setCapabilities((ProvidedCapability[]) providedCapabilities.toArray(new ProvidedCapability[providedCapabilities.size()]));
-
-		iu.setArtifacts(new IArtifactKey[] {key});
-
-		iu.setTouchpointType(TOUCHPOINT_OSGI);
-
-		// Set certain properties from the manifest header attributes as IU properties.
-		// The values of these attributes may be localized (strings starting with '%')
-		// with the translated values appearing in the localization IU fragments
-		// associated with the bundle IU.
-		if (manifest != null) {
-			int i = 0;
-			while (i < BUNDLE_IU_PROPERTY_MAP.length) {
-				if (manifest.containsKey(BUNDLE_IU_PROPERTY_MAP[i])) {
-					String value = (String) manifest.get(BUNDLE_IU_PROPERTY_MAP[i]);
-					if (value != null && value.length() > 0) {
-						iu.setProperty(BUNDLE_IU_PROPERTY_MAP[i + 1], value);
-					}
-				}
-				i += 2;
-			}
-		}
-
-		// Define the immutable metadata for this IU. In this case immutable means
-		// that this is something that will not impact the configuration.
-		Map touchpointData = new HashMap();
-		if (isFolderPlugin)
-			touchpointData.put("zipped", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("manifest", toManifestString(manifest)); //$NON-NLS-1$
-		iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	public static void createHostLocalizationFragment(IInstallableUnit bundleIU, BundleDescription bd, String hostId, String[] hostBundleManifestValues, Set localizationIUs) {
-		Map hostLocalizations = getHostLocalizations(new File(bd.getLocation()), hostBundleManifestValues);
-		if (hostLocalizations != null) {
-			IInstallableUnitFragment localizationFragment = createLocalizationFragmentOfHost(bd, hostId, hostBundleManifestValues, hostLocalizations);
-			localizationIUs.add(localizationFragment);
-		}
-	}
-
-	/*
-	 * @param hostId
-	 * @param bd
-	 * @param locale
-	 * @param localizedStrings
-	 * @return installableUnitFragment
-	 */
-	private static IInstallableUnitFragment createLocalizationFragmentOfHost(BundleDescription bd, String hostId, String[] hostManifestValues, Map hostLocalizations) {
-		InstallableUnitFragmentDescription fragment = new MetadataFactory.InstallableUnitFragmentDescription();
-		String fragmentId = makeHostLocalizationFragmentId(bd.getSymbolicName());
-		fragment.setId(fragmentId);
-		fragment.setVersion(bd.getVersion()); // TODO: is this a meaningful version?
-
-		HostSpecification hostSpec = bd.getHost();
-		RequiredCapability[] hostReqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, hostSpec.getName(), hostSpec.getVersionRange(), null, false, false, false)};
-		fragment.setHost(hostReqs);
-
-		fragment.setSingleton(true);
-		fragment.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-
-		// Create a provided capability for each locale and add the translated properties.
-		ArrayList providedCapabilities = new ArrayList(hostLocalizations.keySet().size());
-		for (Iterator iter = hostLocalizations.keySet().iterator(); iter.hasNext();) {
-			Locale locale = (Locale) iter.next();
-			Properties translatedStrings = (Properties) hostLocalizations.get(locale);
-
-			Enumeration propertyKeys = translatedStrings.propertyNames();
-			while (propertyKeys.hasMoreElements()) {
-				String nextKey = (String) propertyKeys.nextElement();
-				fragment.setProperty(locale.toString() + '.' + nextKey, translatedStrings.getProperty(nextKey));
-			}
-			providedCapabilities.add(makeTranslationCapability(hostId, locale));
-		}
-		fragment.setCapabilities((ProvidedCapability[]) providedCapabilities.toArray(new ProvidedCapability[providedCapabilities.size()]));
-
-		return MetadataFactory.createInstallableUnitFragment(fragment);
-	}
-
-	/**
-	 * @param id
-	 * @return the id for the iu fragment containing the localized properties
-	 * 		   for the bundle with the given id
-	 */
-	//	private static String makeBundleLocalizationFragmentId(String id) {
-	//		return id + ".translated_properties"; //$NON-NLS-1$
-	//	}
-	/**
-	 * @param id
-	 * @return the id for the iu fragment containing localized properties
-	 * 		   for the fragment with the given id.
-	 */
-	private static String makeHostLocalizationFragmentId(String id) {
-		return id + ".translated_host_properties"; //$NON-NLS-1$
-	}
-
-	private static ProvidedCapability makeTranslationCapability(String hostId, Locale locale) {
-		return MetadataFactory.createProvidedCapability(NAMESPACE_IU_LOCALIZATION, locale.toString(), new Version(1, 0, 0));
-	}
-
-	/**
-	 * Creates an IU corresponding to an update site category
-	 * @param category The category descriptor
-	 * @param featureIUs The IUs of the features that belong to the category
-	 * @param parentCategory The parent category, or <code>null</code>
-	 * @return an IU representing the category
-	 */
-	public static IInstallableUnit createCategoryIU(SiteCategory category, Set featureIUs, IInstallableUnit parentCategory) {
-		InstallableUnitDescription cat = new MetadataFactory.InstallableUnitDescription();
-		cat.setSingleton(true);
-		cat.setId(category.getName());
-		cat.setVersion(Version.emptyVersion);
-		cat.setProperty(IInstallableUnit.PROP_NAME, category.getLabel());
-		cat.setProperty(IInstallableUnit.PROP_DESCRIPTION, category.getDescription());
-
-		ArrayList reqsConfigurationUnits = new ArrayList(featureIUs.size());
-		for (Iterator iterator = featureIUs.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			VersionRange range = new VersionRange(iu.getVersion(), true, iu.getVersion(), true);
-			reqsConfigurationUnits.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), range, iu.getFilter(), false, false));
-		}
-		//note that update sites don't currently support nested categories, but it may be useful to add in the future
-		if (parentCategory != null) {
-			reqsConfigurationUnits.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, parentCategory.getId(), VersionRange.emptyRange, parentCategory.getFilter(), false, false));
-		}
-		cat.setRequiredCapabilities((RequiredCapability[]) reqsConfigurationUnits.toArray(new RequiredCapability[reqsConfigurationUnits.size()]));
-		cat.setCapabilities(new ProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, category.getName(), Version.emptyVersion)});
-		cat.setArtifacts(new IArtifactKey[0]);
-		cat.setProperty(IInstallableUnit.PROP_TYPE_CATEGORY, "true"); //$NON-NLS-1$
-		return MetadataFactory.createInstallableUnit(cat);
-	}
-
-	private static String createConfigScript(GeneratorBundleInfo configInfo, boolean isBundleFragment) {
-		if (configInfo == null)
-			return ""; //$NON-NLS-1$
-
-		String configScript = "";//$NON-NLS-1$
-		if (!isBundleFragment && configInfo.getStartLevel() != BundleInfo.NO_LEVEL) {
-			configScript += "setStartLevel(startLevel:" + configInfo.getStartLevel() + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (!isBundleFragment && configInfo.isMarkedAsStarted()) {
-			configScript += "markStarted(started: true);"; //$NON-NLS-1$
-		}
-
-		if (configInfo.getSpecialConfigCommands() != null) {
-			configScript += configInfo.getSpecialConfigCommands();
-		}
-
-		return configScript;
-	}
-
-	private static String createDefaultBundleConfigScript(GeneratorBundleInfo configInfo) {
-		return createConfigScript(configInfo, false);
-	}
-
-	public static IInstallableUnit createDefaultBundleConfigurationUnit(GeneratorBundleInfo configInfo, GeneratorBundleInfo unconfigInfo, String configurationFlavor) {
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = createDefaultConfigUnitId(OSGI_BUNDLE_CLASSIFIER, configurationFlavor);
-		cu.setId(configUnitId);
-		Version configUnitVersion = new Version(1, 0, 0);
-		cu.setVersion(configUnitVersion);
-
-		// Add capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, configUnitVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		// Create a required capability on bundles
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_BUNDLE, VersionRange.emptyRange, null, false, true)};
-		cu.setHost(reqs);
-		Map touchpointData = new HashMap();
-
-		touchpointData.put("install", "installBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("uninstall", "uninstallBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("configure", createDefaultBundleConfigScript(configInfo)); //$NON-NLS-1$
-		touchpointData.put("unconfigure", createDefaultBundleUnconfigScript(unconfigInfo)); //$NON-NLS-1$
-
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	private static String createDefaultBundleUnconfigScript(GeneratorBundleInfo unconfigInfo) {
-		return createUnconfigScript(unconfigInfo, false);
-	}
-
-	public static String createDefaultConfigUnitId(String classifier, String configurationFlavor) {
-		return configurationFlavor + "." + classifier + ".default"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public static IInstallableUnit createDefaultFeatureConfigurationUnit(String configurationFlavor) {
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = createDefaultConfigUnitId(ECLIPSE_FEATURE_CLASSIFIER, configurationFlavor);
-		cu.setId(configUnitId);
-		Version configUnitVersion = new Version(1, 0, 0);
-		cu.setVersion(configUnitVersion);
-
-		// Add capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, configUnitVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		// Create a required capability on features
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_FEATURE, VersionRange.emptyRange, null, true, true)};
-		cu.setHost(reqs);
-
-		cu.setFilter(INSTALL_FEATURES_FILTER);
-		Map touchpointData = new HashMap();
-		touchpointData.put("install", "installFeature(feature:${artifact},featureId:default,featureVersion:default)"); //$NON-NLS-1$//$NON-NLS-2$
-		touchpointData.put("uninstall", "uninstallFeature(feature:${artifact},featureId:default,featureVersion:default)"); //$NON-NLS-1$//$NON-NLS-2$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	public static IInstallableUnit createDefaultConfigurationUnitForSourceBundles(String configurationFlavor) {
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = createDefaultConfigUnitId("source", configurationFlavor); //$NON-NLS-1$
-		cu.setId(configUnitId);
-		Version configUnitVersion = new Version(1, 0, 0);
-		cu.setVersion(configUnitVersion);
-
-		// Add capabilities for fragment, self, and describing the flavor supported
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, configUnitVersion), MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_FLAVOR, configurationFlavor, new Version(1, 0, 0))});
-
-		// Create a required capability on source providers
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(NAMESPACE_ECLIPSE_TYPE, TYPE_ECLIPSE_SOURCE, VersionRange.emptyRange, null, true, true)};
-		cu.setHost(reqs);
-		Map touchpointData = new HashMap();
-
-		touchpointData.put("install", "addSourceBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		touchpointData.put("uninstall", "removeSourceBundle(bundle:${artifact})"); //$NON-NLS-1$ //$NON-NLS-2$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		return MetadataFactory.createInstallableUnit(cu);
-	}
-
-	private static void addExtraProperties(IInstallableUnit iiu, Properties extraProperties) {
-		if (iiu instanceof InstallableUnit) {
-			InstallableUnit iu = (InstallableUnit) iiu;
-
-			for (Enumeration e = extraProperties.propertyNames(); e.hasMoreElements();) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-	}
-
-	public static IInstallableUnit[] createEclipseIU(BundleDescription bd, Map manifest, boolean isFolderPlugin, IArtifactKey key, Properties extraProperties) {
-		ArrayList iusCreated = new ArrayList(1);
-
-		IInstallableUnit iu = createBundleIU(bd, manifest, isFolderPlugin, key);
-		addExtraProperties(iu, extraProperties);
-		iusCreated.add(iu);
-
-		return (IInstallableUnit[]) (iusCreated.toArray(new IInstallableUnit[iusCreated.size()]));
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public static IArtifactKey createFeatureArtifactKey(String fsn, String version) {
-		return new ArtifactKey(ECLIPSE_FEATURE_CLASSIFIER, fsn, new Version(version));
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public static IInstallableUnit createFeatureJarIU(Feature feature, ArrayList childIUs, boolean isExploded, Properties extraProperties) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		String id = getTransformedId(feature.getId(), /*isPlugin*/false, /*isGroup*/false);
-		iu.setId(id);
-		Version version = new Version(feature.getVersion());
-		iu.setVersion(version);
-		if (feature.getLicense() != null)
-			iu.setLicense(new License(feature.getLicenseURL(), feature.getLicense()));
-		if (feature.getCopyright() != null)
-			iu.setCopyright(new Copyright(feature.getCopyrightURL(), feature.getCopyright()));
-
-		// The required capabilities are not specified at this level because we don't want the feature jar to be attractive to install.
-
-		iu.setTouchpointType(TOUCHPOINT_OSGI);
-		iu.setFilter(INSTALL_FEATURES_FILTER);
-		iu.setSingleton(true);
-
-		if (feature.getInstallHandler() != null) {
-			String installHandlerProperty = "handler=" + feature.getInstallHandler(); //$NON-NLS-1$
-
-			if (feature.getInstallHandlerLibrary() != null)
-				installHandlerProperty += ", library=" + feature.getInstallHandlerLibrary(); //$NON-NLS-1$
-
-			if (feature.getInstallHandlerURL() != null)
-				installHandlerProperty += ", url=" + feature.getInstallHandlerURL(); //$NON-NLS-1$
-
-			iu.setProperty(ECLIPSE_INSTALL_HANDLER_PROP, installHandlerProperty);
-		}
-
-		iu.setCapabilities(new ProvidedCapability[] {createSelfCapability(id, version), FEATURE_CAPABILITY, MetadataFactory.createProvidedCapability(CAPABILITY_NS_UPDATE_FEATURE, feature.getId(), version)});
-		iu.setArtifacts(new IArtifactKey[] {createFeatureArtifactKey(feature.getId(), version.toString())});
-
-		// link in all the children (if any) as requirements.
-		// TODO consider if these should be linked as exact version numbers.  Should be ok but may be brittle.
-		if (childIUs != null) {
-			RequiredCapability[] required = new RequiredCapability[childIUs.size()];
-			for (int i = 0; i < childIUs.size(); i++) {
-				IInstallableUnit child = (IInstallableUnit) childIUs.get(i);
-				required[i] = MetadataFactory.createRequiredCapability(IU_NAMESPACE, child.getId(), new VersionRange(child.getVersion(), true, child.getVersion(), true), INSTALL_FEATURES_FILTER, false, false);
-			}
-			iu.setRequiredCapabilities(required);
-		}
-
-		if (isExploded) {
-			// Define the immutable metadata for this IU. In this case immutable means
-			// that this is something that will not impact the configuration.
-			Map touchpointData = new HashMap();
-			touchpointData.put("zipped", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-			iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		}
-
-		if (extraProperties != null) {
-			Enumeration e = extraProperties.propertyNames();
-			while (e.hasMoreElements()) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	/**
-	 * @deprecated moved to FeaturesAction
-	 */
-	public static IInstallableUnit createGroupIU(Feature feature, IInstallableUnit featureIU) {
-		return createGroupIU(feature, featureIU, null);
-	}
-
-	/**
-	 * @deprecated moved to FeaturesAction
-	 */
-	public static IInstallableUnit createGroupIU(Feature feature, IInstallableUnit featureIU, Properties extraProperties) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		String id = getTransformedId(feature.getId(), /*isPlugin*/false, /*isGroup*/true);
-		iu.setId(id);
-		Version version = new Version(feature.getVersion());
-		iu.setVersion(version);
-		iu.setProperty(IInstallableUnit.PROP_NAME, feature.getLabel());
-		if (feature.getLicense() != null)
-			iu.setLicense(new License(feature.getLicenseURL(), feature.getLicense()));
-		if (feature.getCopyright() != null)
-			iu.setCopyright(new Copyright(feature.getCopyrightURL(), feature.getCopyright()));
-		iu.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, new VersionRange(new Version(0, 0, 0), true, new Version(feature.getVersion()), false), IUpdateDescriptor.NORMAL, null));
-
-		FeatureEntry entries[] = feature.getEntries();
-		RequiredCapability[] required = new RequiredCapability[entries.length + 1];
-		for (int i = 0; i < entries.length; i++) {
-			VersionRange range = getVersionRange(entries[i]);
-			required[i] = MetadataFactory.createRequiredCapability(IU_NAMESPACE, getTransformedId(entries[i].getId(), entries[i].isPlugin(), /*isGroup*/true), range, getFilter(entries[i]), entries[i].isOptional(), false);
-		}
-		required[entries.length] = MetadataFactory.createRequiredCapability(IU_NAMESPACE, featureIU.getId(), new VersionRange(featureIU.getVersion(), true, featureIU.getVersion(), true), INSTALL_FEATURES_FILTER, false, false);
-		iu.setRequiredCapabilities(required);
-		iu.setTouchpointType(TouchpointType.NONE);
-		iu.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString());
-		// TODO: shouldn't the filter for the group be constructed from os, ws, arch, nl
-		// 		 of the feature?
-		// iu.setFilter(filter);
-		iu.setCapabilities(new ProvidedCapability[] {createSelfCapability(id, version)});
-
-		if (extraProperties != null) {
-			Enumeration e = extraProperties.propertyNames();
-			while (e.hasMoreElements()) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	/**
-	 * Creates IUs and artifact descriptors for the JRE.  The resulting IUs are added
-	 * to the given set, and the resulting artifact descriptor, if any, is returned.
-	 * If the jreLocation is <code>null</code>, default information is generated.
-	 */
-	public static IArtifactDescriptor createJREData(File jreLocation, IPublisherResult results) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(false);
-		String id = "a.jre"; //$NON-NLS-1$
-		Version version = DEFAULT_JRE_VERSION;
-		iu.setId(id);
-		iu.setVersion(version);
-		iu.setTouchpointType(TOUCHPOINT_NATIVE);
-
-		if (jreLocation == null || !jreLocation.exists()) {
-			// set some reasonable defaults
-			iu.setVersion(version);
-			iu.setCapabilities(generateJRECapability(id, version, null));
-			results.addIU(MetadataFactory.createInstallableUnit(iu), IPublisherResult.ROOT);
-			return null;
-		}
-		generateJREIUData(iu, id, version, jreLocation);
-
-		//Generate artifact for JRE
-		IArtifactKey key = new ArtifactKey(BINARY_ARTIFACT_CLASSIFIER, id, version);
-		iu.setArtifacts(new IArtifactKey[] {key});
-		results.addIU(MetadataFactory.createInstallableUnit(iu), IPublisherResult.ROOT);
-
-		//Create config info for the CU
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configId = "config." + id;//$NON-NLS-1$
-		cu.setId(configId);
-		cu.setVersion(version);
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, id, new VersionRange(version, true, versionMax, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configId, version)});
-		cu.setTouchpointType(TOUCHPOINT_NATIVE);
-		Map touchpointData = new HashMap();
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		results.addIU(MetadataFactory.createInstallableUnit(cu), IPublisherResult.ROOT);
-
-		//Create the artifact descriptor
-		return createArtifactDescriptor(key, jreLocation);
-	}
-
-	public static ArtifactKey createLauncherArtifactKey(String id, Version version) {
-		return new ArtifactKey(BINARY_ARTIFACT_CLASSIFIER, id, version);
-	}
-
-	/**
-	 * Creates IUs and artifacts for the Launcher executable. The resulting IUs are added
-	 * to the given set, and the resulting artifact descriptor is returned.
-	 */
-	public static IArtifactDescriptor createLauncherIU(File launcher, String configurationFlavor, IPublisherResult resultantIUs) {
-		if (launcher == null || !launcher.exists())
-			return null;
-
-		//Create the IU
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(true);
-		String launcherId = LAUNCHER_ID_PREFIX + '_' + launcher.getName();
-		iu.setId(launcherId);
-		iu.setVersion(LAUNCHER_VERSION);
-
-		IArtifactKey key = createLauncherArtifactKey(launcherId, LAUNCHER_VERSION);
-		iu.setArtifacts(new IArtifactKey[] {key});
-		iu.setCapabilities(new ProvidedCapability[] {createSelfCapability(launcherId, LAUNCHER_VERSION)});
-		iu.setTouchpointType(TOUCHPOINT_NATIVE);
-		resultantIUs.addIU(MetadataFactory.createInstallableUnit(iu), IPublisherResult.ROOT);
-
-		//Create the CU
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = configurationFlavor + launcherId;
-		cu.setId(configUnitId);
-		cu.setVersion(LAUNCHER_VERSION);
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, launcherId, new VersionRange(LAUNCHER_VERSION, true, versionMax, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		cu.setCapabilities(new ProvidedCapability[] {createSelfCapability(configUnitId, LAUNCHER_VERSION)});
-		cu.setTouchpointType(TOUCHPOINT_NATIVE);
-		Map touchpointData = new HashMap();
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(Activator.getContext(), EnvironmentInfo.class.getName());
-		if (!info.getOS().equals(org.eclipse.osgi.service.environment.Constants.OS_WIN32)) {
-			if (info.getOS().equals(org.eclipse.osgi.service.environment.Constants.OS_MACOSX)) {
-				configurationData += " chmod(targetDir:${installFolder}/Eclipse.app/Contents/MacOS, targetFile:eclipse, permissions:755);"; //$NON-NLS-1$
-				String config = AbstractPublishingAction.createConfigSpec(null, "macosx", null);
-				generateLauncherSetter("Eclipse", launcherId, LAUNCHER_VERSION, config, resultantIUs);
-			} else
-				configurationData += " chmod(targetDir:${installFolder}, targetFile:" + launcher.getName() + ", permissions:755);"; //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			String config = AbstractPublishingAction.createConfigSpec(null, "win32", null);
-			generateLauncherSetter("eclipse", launcherId, LAUNCHER_VERSION, config, resultantIUs);
-		}
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		resultantIUs.addIU(MetadataFactory.createInstallableUnitFragment(cu), IPublisherResult.ROOT);
-
-		//Create the artifact descriptor
-		return createArtifactDescriptor(key, launcher);
-	}
-
-	public static void generateLauncherSetter(String launcherName, String iuId, Version version, String configSpec, IPublisherResult result) {
-		InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription();
-		String id = iuId + '.' + launcherName;
-		iud.setId(id);
-		iud.setVersion(version);
-		iud.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_OSGI);
-		iud.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(id, version)});
-
-		String filter = AbstractPublishingAction.createFilterSpec(configSpec);
-		if (filter.length() > 0)
-			iud.setFilter(filter);
-		Map touchpointData = new HashMap();
-		touchpointData.put("configure", "setLauncherName(name:" + launcherName + ")");
-		touchpointData.put("unconfigure", "setLauncherName()");
-		iud.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		result.addIU(MetadataFactory.createInstallableUnit(iud), IPublisherResult.ROOT);
-	}
-
-	public static ProvidedCapability createSelfCapability(String installableUnitId, Version installableUnitVersion) {
-		return MetadataFactory.createProvidedCapability(IU_NAMESPACE, installableUnitId, installableUnitVersion);
-	}
-
-	private static String createUnconfigScript(GeneratorBundleInfo unconfigInfo, boolean isBundleFragment) {
-		if (unconfigInfo == null)
-			return ""; //$NON-NLS-1$
-		String unconfigScript = "";//$NON-NLS-1$
-		if (!isBundleFragment && unconfigInfo.getStartLevel() != BundleInfo.NO_LEVEL) {
-			unconfigScript += "setStartLevel(startLevel:" + BundleInfo.NO_LEVEL + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (!isBundleFragment && unconfigInfo.isMarkedAsStarted()) {
-			unconfigScript += "markStarted(started: false);"; //$NON-NLS-1$
-		}
-
-		if (unconfigInfo.getSpecialUnconfigCommands() != null) {
-			unconfigScript += unconfigInfo.getSpecialUnconfigCommands();
-		}
-		return unconfigScript;
-
-	}
-
-	private static ProvidedCapability[] generateJRECapability(String installableUnitId, Version installableUnitVersion, InputStream profileStream) {
-		if (profileStream == null) {
-			//use the 1.6 profile stored in the generator bundle
-			try {
-				profileStream = Activator.getContext().getBundle().getEntry("/profiles/JavaSE-1.6.profile").openStream(); //$NON-NLS-1$
-			} catch (IOException e) {
-				throw new RuntimeException(e);
-			}
-		}
-		Properties p = new Properties();
-		try {
-			p.load(profileStream);
-			ManifestElement[] jrePackages = ManifestElement.parseHeader("org.osgi.framework.system.packages", (String) p.get("org.osgi.framework.system.packages")); //$NON-NLS-1$ //$NON-NLS-2$
-			ProvidedCapability[] exportedPackageAsCapabilities = new ProvidedCapability[jrePackages.length + 1];
-			exportedPackageAsCapabilities[0] = createSelfCapability(installableUnitId, installableUnitVersion);
-			for (int i = 1; i <= jrePackages.length; i++) {
-				exportedPackageAsCapabilities[i] = MetadataFactory.createProvidedCapability(CAPABILITY_NS_JAVA_PACKAGE, jrePackages[i - 1].getValue(), null);
-			}
-			return exportedPackageAsCapabilities;
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (BundleException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			if (profileStream != null) {
-				try {
-					profileStream.close();
-				} catch (IOException e) {
-					//ignore secondary failure
-				}
-			}
-		}
-		return new ProvidedCapability[0];
-	}
-
-	private static void generateJREIUData(InstallableUnitDescription iu, String installableUnitId, Version installableUnitVersion, File jreLocation) {
-		//Look for a JRE profile file to set version and capabilities
-		File[] profiles = jreLocation.listFiles(new FileFilter() {
-			public boolean accept(File pathname) {
-				return pathname.getAbsolutePath().endsWith(".profile"); //$NON-NLS-1$
-			}
-		});
-		if (profiles.length != 1) {
-			iu.setVersion(DEFAULT_JRE_VERSION);
-			iu.setCapabilities(generateJRECapability(installableUnitId, installableUnitVersion, null));
-			return;
-		}
-		String profileName = profiles[0].getAbsolutePath().substring(profiles[0].getAbsolutePath().lastIndexOf('/'));
-		Version version = DEFAULT_JRE_VERSION;
-		//TODO Find a better way to determine JRE version
-		if (profileName.indexOf("1.6") > 0) { //$NON-NLS-1$
-			version = new Version("1.6"); //$NON-NLS-1$
-		} else if (profileName.indexOf("1.5") > 0) { //$NON-NLS-1$
-			version = new Version("1.5"); //$NON-NLS-1$
-		} else if (profileName.indexOf("1.4") > 0) { //$NON-NLS-1$
-			version = new Version("1.4"); //$NON-NLS-1$
-		}
-		iu.setVersion(version);
-		try {
-			iu.setCapabilities(generateJRECapability(installableUnitId, installableUnitVersion, new FileInputStream(profiles[0])));
-		} catch (FileNotFoundException e) {
-			//Shouldn't happen, but ignore and fall through to use default
-		}
-	}
-
-	//  moved to FeatureAction
-	public static String getFilter(FeatureEntry entry) {
-		StringBuffer result = new StringBuffer();
-		result.append("(&"); //$NON-NLS-1$
-		if (entry.getFilter() != null)
-			result.append(entry.getFilter());
-		if (entry.getOS() != null)
-			result.append("(osgi.os=" + entry.getOS() + ')');//$NON-NLS-1$
-		if (entry.getWS() != null)
-			result.append("(osgi.ws=" + entry.getWS() + ')');//$NON-NLS-1$
-		if (entry.getArch() != null)
-			result.append("(osgi.arch=" + entry.getArch() + ')');//$NON-NLS-1$
-		if (entry.getNL() != null)
-			result.append("(osgi.nl=" + entry.getNL() + ')');//$NON-NLS-1$
-		if (result.length() == 2)
-			return null;
-		result.append(')');
-		return result.toString();
-	}
-
-	// moved to FeatureAction
-	public static String getTransformedId(String original, boolean isPlugin, boolean isGroup) {
-		return (isPlugin ? original : original + (isGroup ? ".feature.group" : ".feature.jar")); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	// moved to FeatureAction
-	public static VersionRange getVersionRange(FeatureEntry entry) {
-		String versionSpec = entry.getVersion();
-		if (versionSpec == null)
-			// TODO should really be returning VersionRange.emptyRange here...
-			return null;
-		Version version = new Version(versionSpec);
-		if (!entry.isRequires()) {
-			if ("0.0.0".equals(entry.getVersion())) //$NON-NLS-1$
-				return VersionRange.emptyRange;
-			return new VersionRange(version, true, version, true);
-		}
-		String match = entry.getMatch();
-		if (match == null)
-			// TODO should really be returning VersionRange.emptyRange here...
-			return null;
-		if (match.equals("perfect")) //$NON-NLS-1$
-			return new VersionRange(version, true, version, true);
-		if (match.equals("equivalent")) { //$NON-NLS-1$
-			Version upper = new Version(version.getMajor(), version.getMinor() + 1, 0);
-			return new VersionRange(version, true, upper, false);
-		}
-		if (match.equals("compatible")) { //$NON-NLS-1$
-			Version upper = new Version(version.getMajor() + 1, 0, 0);
-			return new VersionRange(version, true, upper, false);
-		}
-		if (match.equals("greaterOrEqual")) //$NON-NLS-1$
-			return new VersionRange(version, true, new VersionRange(null).getMaximum(), true);
-		return null;
-	}
-
-	private static boolean isOptional(ImportPackageSpecification importedPackage) {
-		if (importedPackage.getDirective(Constants.RESOLUTION_DIRECTIVE).equals(ImportPackageSpecification.RESOLUTION_DYNAMIC) || importedPackage.getDirective(Constants.RESOLUTION_DIRECTIVE).equals(ImportPackageSpecification.RESOLUTION_OPTIONAL))
-			return true;
-		return false;
-	}
-
-	private static String toManifestString(Map p) {
-		if (p == null)
-			return null;
-		Collection properties = p.entrySet();
-		StringBuffer result = new StringBuffer();
-		for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
-			Map.Entry aProperty = (Map.Entry) iterator.next();
-			if (aProperty.getKey().equals(BundleDescriptionFactory.BUNDLE_SHAPE))
-				continue;
-			result.append(aProperty.getKey()).append(": ").append(aProperty.getValue()).append('\n'); //$NON-NLS-1$
-		}
-		return result.toString();
-	}
-
-	// Return a map from locale to property set for the manifest localizations
-	// from the given bundle directory and given bundle localization path/name
-	// manifest property value.
-	private static Map getManifestLocalizations(Map manifest, File bundleLocation) {
-		Map localizations;
-		Locale defaultLocale = null; // = Locale.ENGLISH; // TODO: get this from GeneratorInfo
-		String[] bundleManifestValues = getManifestCachedValues(manifest);
-		String bundleLocalization = bundleManifestValues[BUNDLE_LOCALIZATION_INDEX];
-
-		if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && //$NON-NLS-1$
-				bundleLocation.isFile()) {
-			localizations = getJarManifestLocalization(bundleLocation, bundleLocalization, defaultLocale, bundleManifestValues);
-		} else {
-			localizations = getDirManifestLocalization(bundleLocation, bundleLocalization, defaultLocale, bundleManifestValues);
-		}
-
-		return localizations;
-	}
-
-	public static String[] getManifestCachedValues(Map manifest) {
-		String[] cachedValues = new String[BUNDLE_LOCALIZED_PROPERTIES.length + 1];
-		for (int j = 0; j < MetadataGeneratorHelper.BUNDLE_LOCALIZED_PROPERTIES.length; j++) {
-			String value = (String) manifest.get(BUNDLE_LOCALIZED_PROPERTIES[j]);
-			if (value != null && value.length() > 1 && value.charAt(0) == '%') {
-				cachedValues[j] = value.substring(1);
-			}
-		}
-		String localizationFile = (String) manifest.get(org.osgi.framework.Constants.BUNDLE_LOCALIZATION);
-		cachedValues[BUNDLE_LOCALIZATION_INDEX] = (localizationFile != null ? localizationFile : DEFAULT_BUNDLE_LOCALIZATION);
-		return cachedValues;
-	}
-
-	// Return a map from locale to property set for the manifest localizations
-	// from the given bundle directory and given bundle localization path/name
-	// manifest property value.
-	public static Map getHostLocalizations(File bundleLocation, String[] hostBundleManifestValues) {
-		Map localizations;
-		Locale defaultLocale = null; // = Locale.ENGLISH; // TODO: get this from GeneratorInfo
-		String hostBundleLocalization = hostBundleManifestValues[BUNDLE_LOCALIZATION_INDEX];
-
-		if ("jar".equalsIgnoreCase(new Path(bundleLocation.getName()).getFileExtension()) && //$NON-NLS-1$
-				bundleLocation.isFile()) {
-			localizations = getJarManifestLocalization(bundleLocation, hostBundleLocalization, defaultLocale, hostBundleManifestValues);
-		} else {
-			localizations = getDirManifestLocalization(bundleLocation, hostBundleLocalization, defaultLocale, hostBundleManifestValues);
-		}
-
-		return localizations;
-	}
-
-	private static Map getJarManifestLocalization(File bundleLocation, String bundleLocalization, Locale defaultLocale, String[] bundleManifestValues) {
-		ZipFile jarFile = null;
-		Map localizations = new HashMap(4);
-		try {
-			jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-			for (Enumeration entries = jarFile.entries(); entries.hasMoreElements();) {
-				ZipEntry nextEntry = (ZipEntry) entries.nextElement();
-				String nextName = nextEntry.getName();
-				String localeString = getLocaleString(nextName, bundleLocalization);
-
-				if (!nextEntry.isDirectory() && localeString != null) {
-					Locale nextLocale = getLocale(localeString);
-					InputStream stream = null;
-					try {
-						stream = jarFile.getInputStream(nextEntry);
-						Properties properties = new Properties();
-						properties.load(stream);
-						Properties localizedStrings = getLocalizedProperties(bundleManifestValues, properties);
-						if (localizedStrings.size() > 0) {
-							localizations.put(nextLocale, localizedStrings);
-							if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-								localizations.put(nextLocale, localizedStrings);
-							}
-						}
-					} finally {
-						if (stream != null)
-							stream.close();
-					}
-				}
-			}
-		} catch (IOException ioe) {
-			ioe.printStackTrace();
-		} finally {
-			if (jarFile != null) {
-				try {
-					jarFile.close();
-				} catch (IOException ioe) {
-					// do nothing
-				}
-			}
-		}
-
-		return localizations;
-	}
-
-	private static Map getDirManifestLocalization(File bundleLocation, String bundleLocalization, Locale defaultLocale, String[] hostBundleManifestValues) {
-		File localizationPath = new File(bundleLocation, bundleLocalization);
-		File localizationDir = localizationPath.getParentFile();
-		final String localizationFile = localizationPath.getName();
-		MetadataGeneratorHelper foo = new MetadataGeneratorHelper();
-		String[] localizationFiles = localizationDir.list(foo.new LocalizationFileFilter() {
-			public boolean accept(File directory, String filename) {
-				return (getLocaleString(filename, localizationFile) != null ? true : false);
-			}
-		});
-
-		HashMap localizations = null;
-
-		if (localizationFiles != null) {
-			localizations = new HashMap(localizationFiles.length);
-			for (int i = 0; i < localizationFiles.length; i++) {
-				String nextFile = localizationFiles[i];
-				Locale nextLocale = getLocale(getLocaleString(nextFile, localizationFile));
-
-				try {
-					Properties properties = loadProperties(bundleLocation, nextFile);
-					Properties localizedStrings = getLocalizedProperties(hostBundleManifestValues, properties);
-					if (localizedStrings.size() > 0) {
-						localizations.put(nextLocale, localizedStrings);
-						if (DEFAULT_LOCALE.equals(nextLocale) && defaultLocale != null) {
-							localizations.put(nextLocale, localizedStrings);
-						}
-					}
-				} catch (IOException ioe) {
-					ioe.printStackTrace();
-				}
-			}
-		}
-
-		return localizations;
-	}
-
-	private abstract class LocalizationFileFilter implements FilenameFilter {
-
-		public LocalizationFileFilter() {
-			// Nothing to do
-		}
-
-		/* (non-Javadoc)
-		 * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
-		 */
-		public abstract boolean accept(File directory, String filename);
-	}
-
-	static public String getLocaleString(String filename, String filenamePrefix) {
-		String localeString = null;
-		if (filename.startsWith(filenamePrefix) && filename.endsWith(PROPERTIES_FILE_EXTENSION)) {
-			if (filename.length() > filenamePrefix.length() + PROPERTIES_FILE_EXTENSION.length()) {
-				localeString = filename.substring(filenamePrefix.length() + 1, filename.length() - PROPERTIES_FILE_EXTENSION.length());
-			} else {
-				localeString = ""; //$NON-NLS-1$
-			}
-		}
-		return localeString;
-	}
-
-	private static Properties loadProperties(File bundleLocation, String localizationFile) throws IOException {
-		Properties result = new Properties();
-		InputStream propertyStream = null;
-		try {
-			try {
-				if (bundleLocation.isDirectory())
-					propertyStream = new FileInputStream(new File(bundleLocation, localizationFile));
-				else {
-					URLConnection connection = new URL("jar:" + bundleLocation.toURL().toExternalForm() + "!/" + localizationFile).openConnection(); //$NON-NLS-1$ //$NON-NLS-2$
-					connection.setUseCaches(false);
-					propertyStream = connection.getInputStream();
-				}
-			} catch (FileNotFoundException e) {
-				// if there is no messages file then just return;
-				return result;
-			}
-			result.load(propertyStream);
-		} finally {
-			if (propertyStream != null)
-				propertyStream.close();
-		}
-		return result;
-	}
-
-	static private Locale getLocale(String localeString) {
-		Locale locale = DEFAULT_LOCALE;
-		if (localeString.length() == 5 && localeString.indexOf('_') == 2) {
-			locale = new Locale(localeString.substring(0, 2), localeString.substring(3, 5));
-		} else if (localeString.length() == 2) {
-			locale = new Locale(localeString.substring(0, 2));
-		}
-		return locale;
-	}
-
-	static private Properties getLocalizedProperties(String[] bundleManifestKeys, Properties properties) {
-		Properties localizedProperties = new Properties();
-		for (int i = 0; i < BUNDLE_LOCALIZED_PROPERTIES.length; i++) {
-			String key = bundleManifestKeys[i];
-			if (key != null) {
-				String localizedValue = properties.getProperty(key);
-				if (localizedValue != null)
-					localizedProperties.put(key, localizedValue);
-			}
-		}
-		return localizedProperties;
-	}
-
-	public static Object[] createFeatureRootFileIU(String featureId, String featureVersion, File location, FileSetDescriptor descriptor) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(true);
-		String id = featureId + '_' + descriptor.getKey();
-		iu.setId(id);
-		Version version = new Version(featureVersion);
-		iu.setVersion(version);
-		iu.setCapabilities(new ProvidedCapability[] {createSelfCapability(id, version)});
-		iu.setTouchpointType(TOUCHPOINT_NATIVE);
-		String configSpec = descriptor.getConfigSpec();
-		if (configSpec != null)
-			iu.setFilter(AbstractPublishingAction.createFilterSpec(configSpec));
-		File[] fileResult = attachFiles(iu, descriptor, location);
-		setupLinks(iu, descriptor);
-		setupPermissions(iu, descriptor);
-
-		IInstallableUnit iuResult = MetadataFactory.createInstallableUnit(iu);
-		// need to return both the iu and any files.
-		return new Object[] {iuResult, fileResult};
-	}
-
-	// attach the described files from the given location to the given iu description.  Return
-	// the list of files identified.
-	private static File[] attachFiles(InstallableUnitDescription iu, FileSetDescriptor descriptor, File location) {
-		String fileList = descriptor.getFiles();
-		String[] fileSpecs = getArrayFromString(fileList, ","); //$NON-NLS-1$
-		File[] files = new File[fileSpecs.length];
-		if (fileSpecs.length > 0) {
-			for (int i = 0; i < fileSpecs.length; i++) {
-				String spec = fileSpecs[i];
-				if (spec.startsWith("file:"))
-					spec = spec.substring(5);
-				files[i] = new File(location, spec);
-			}
-		}
-		// add touchpoint actions to unzip and cleanup as needed
-		// TODO need to support fancy root file location specs
-		Map touchpointData = new HashMap(2);
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-
-		// prime the IU with an artifact key that will correspond to the zipped up root files.
-		IArtifactKey key = createLauncherArtifactKey(iu.getId(), iu.getVersion());
-		iu.setArtifacts(new IArtifactKey[] {key});
-		return files;
-	}
-
-	private static void setupPermissions(InstallableUnitDescription iu, FileSetDescriptor descriptor) {
-		Map touchpointData = new HashMap();
-		String[][] permsList = descriptor.getPermissions();
-		for (int i = 0; i < permsList.length; i++) {
-			String[] permSpec = permsList[i];
-			String configurationData = " chmod(targetDir:${installFolder}, targetFile:" + permSpec[1] + ", permissions:" + permSpec[0] + ");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			touchpointData.put("install", configurationData); //$NON-NLS-1$
-			iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		}
-	}
-
-	private static void setupLinks(InstallableUnitDescription iu, FileSetDescriptor descriptor) {
-		// TODO setup the link support.
-	}
-
-	public static String[] getArrayFromString(String list, String separator) {
-		if (list == null || list.trim().equals("")) //$NON-NLS-1$
-			return new String[0];
-		List result = new ArrayList();
-		for (StringTokenizer tokens = new StringTokenizer(list, separator); tokens.hasMoreTokens();) {
-			String token = tokens.nextToken().trim();
-			if (!token.equals("")) //$NON-NLS-1$
-				result.add(token);
-		}
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/ProductPublisherApplication.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/ProductPublisherApplication.java
deleted file mode 100644
index fe11421..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/ProductPublisherApplication.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.io.File;
-import java.util.ArrayList;
-import org.eclipse.equinox.internal.p2.publisher.actions.ProductAction;
-
-public class ProductPublisherApplication extends AbstractPublisherApplication {
-
-	private String product;
-	private String executables;
-	private String flavor;
-
-	public ProductPublisherApplication() {
-	}
-
-	protected IPublishingAction[] createActions() {
-		ArrayList result = new ArrayList();
-		result.add(createProductAction());
-		return (IPublishingAction[]) result.toArray(new IPublishingAction[result.size()]);
-	}
-
-	private IPublishingAction createProductAction() {
-		return new ProductAction(source, product, flavor, new File(executables));
-	}
-
-	protected void processParameter(String arg, String parameter, PublisherInfo info) {
-		super.processParameter(arg, parameter, info);
-
-		if (arg.equalsIgnoreCase("-productFile")) //$NON-NLS-1$
-			product = parameter;
-		if (arg.equalsIgnoreCase("-executables")) //$NON-NLS-1$
-			executables = parameter;
-		if (arg.equalsIgnoreCase("-flavor")) //$NON-NLS-1$
-			flavor = parameter;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Publisher.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Publisher.java
deleted file mode 100644
index ec9b787..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/Publisher.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collection;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.osgi.util.NLS;
-
-public class Publisher {
-	static final public String PUBLISH_PACK_FILES_AS_SIBLINGS = "publishPackFilesAsSiblings"; //$NON-NLS-1$
-
-	private IPublisherInfo info;
-	private IPublisherResult results;
-
-	/**
-	 * Returns a metadata repository that corresponds to the given settings.  If a repo at the 
-	 * given location already exists, it is updated with the settings and returned.  If no repository
-	 * is found then a new Simple repository is created, configured and returned
-	 * @param location the URL location of the repo
-	 * @param name the name of the repo
-	 * @param append whether or not the repo should appended or cleared
-	 * @param compress whether or not to compress the repository index
-	 * @return the discovered or created repository
-	 * @throws ProvisionException
-	 */
-	public static IMetadataRepository createMetadataRepository(String location, String name, boolean append, boolean compress) throws ProvisionException {
-		URL url;
-		try {
-			url = new URL(location);
-		} catch (MalformedURLException e) {
-			throw new IllegalArgumentException(NLS.bind(Messages.exception_metadataRepoLocationURL, location));
-		}
-		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.context, IMetadataRepositoryManager.class.getName());
-		try {
-			IMetadataRepository result = manager.loadRepository(url, null);
-			if (result != null) {
-				result.setProperty(IRepository.PROP_COMPRESSED, compress ? "true" : "false"); //$NON-NLS-1$//$NON-NLS-2$
-				if (!result.isModifiable())
-					throw new IllegalArgumentException(NLS.bind(Messages.exception_metadataRepoNotWritable, url));
-				if (!append)
-					result.removeAll();
-				return result;
-			}
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-
-		// 	the given repo location is not an existing repo so we have to create something
-		// TODO for now create a random repo by default.
-		String repositoryName = name == null ? location + " - metadata" : name; //$NON-NLS-1$
-		IMetadataRepository result = manager.createRepository(url, repositoryName, IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(result.getLocation());
-		if (result != null)
-			result.setProperty(IRepository.PROP_COMPRESSED, compress ? "true" : "false"); //$NON-NLS-1$//$NON-NLS-2$
-		return result;
-	}
-
-	/**
-	 * Returns an artifact repository that corresponds to the given settings.  If a repo at the 
-	 * given location already exists, it is updated with the settings and returned.  If no repository
-	 * is found then a new Simple repository is created, configured and returned
-	 * @param location the URL location of the repo
-	 * @param name the name of the repo
-	 * @param append whether or not the repo should appended or cleared
-	 * @param compress whether or not to compress the repository index
-	 * @param reusePackedFiles whether or not to include discovered Pack200 files in the repository
-	 * @return the discovered or created repository
-	 * @throws ProvisionException
-	 */
-	public static IArtifactRepository createArtifactRepository(String location, String name, boolean append, boolean compress, boolean reusePackedFiles) throws ProvisionException {
-		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.context, IArtifactRepositoryManager.class.getName());
-		URL url;
-		try {
-			url = new URL(location);
-		} catch (MalformedURLException e) {
-			throw new IllegalArgumentException(NLS.bind(Messages.exception_artifactRepoLocationURL, location));
-		}
-		try {
-			IArtifactRepository result = manager.loadRepository(url, null);
-			if (!result.isModifiable())
-				throw new IllegalArgumentException(NLS.bind(Messages.exception_artifactRepoNotWritable, url));
-			result.setProperty(IRepository.PROP_COMPRESSED, compress ? "true" : "false"); //$NON-NLS-1$//$NON-NLS-2$
-			if (reusePackedFiles)
-				result.setProperty(PUBLISH_PACK_FILES_AS_SIBLINGS, "true"); //$NON-NLS-1$
-			if (!append)
-				result.removeAll();
-			return result;
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-
-		// 	the given repo location is not an existing repo so we have to create something
-		// TODO for now create a Simple repo by default.
-		String repositoryName = name != null ? name : location + " - artifacts"; //$NON-NLS-1$
-		IArtifactRepository result = manager.createRepository(url, repositoryName, IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(result.getLocation());
-		// TODO there must be something we have to do to set up the mapping rules here...
-		//		if (inplace) {
-		//		}
-		result.setProperty(IRepository.PROP_COMPRESSED, compress ? "true" : "false"); //$NON-NLS-1$//$NON-NLS-2$
-		if (reusePackedFiles)
-			result.setProperty(PUBLISH_PACK_FILES_AS_SIBLINGS, "true"); //$NON-NLS-1$
-		return result;
-	}
-
-	public Publisher(IPublisherInfo info) {
-		this.info = info;
-		results = new PublisherResult();
-	}
-
-	public Publisher(IPublisherInfo info, IPublisherResult results) {
-		this.info = info;
-		this.results = results;
-	}
-
-	public IStatus publish(IPublishingAction[] actions) {
-		// run all the actions
-		MultiStatus finalStatus = new MultiStatus("this", 0, "publishing result", null);
-		for (int i = 0; i < actions.length; i++) {
-			IStatus status = actions[i].perform(info, results);
-			finalStatus.merge(status);
-		}
-		if (!finalStatus.isOK())
-			return finalStatus;
-
-		// if there were no errors, publish all the ius.
-		IMetadataRepository metadataRepository = info.getMetadataRepository();
-		if (metadataRepository != null) {
-			Collection ius = results.getIUs(null, null);
-			metadataRepository.addInstallableUnits((IInstallableUnit[]) ius.toArray(new IInstallableUnit[ius.size()]));
-		}
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherInfo.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherInfo.java
deleted file mode 100644
index fc57516..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherInfo.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.osgi.framework.Version;
-
-public class PublisherInfo implements IPublisherInfo {
-
-	private int artifactOptions = 0;
-	private IMetadataRepository metadataRepository;
-	private IArtifactRepository artifactRepository;
-	private String[] configurations;
-	private List adviceList = new ArrayList(11);
-
-	public void addAdvice(IPublishingAdvice advice) {
-		adviceList.add(advice);
-	}
-
-	public Collection getAdvice(String configSpec, boolean includeDefault, String id, Version version, Class type) {
-		ArrayList result = new ArrayList();
-		for (Iterator i = adviceList.iterator(); i.hasNext();) {
-			Object object = i.next();
-			if (type.isInstance(object) && ((IPublishingAdvice) object).isApplicable(configSpec, includeDefault, id, version))
-				result.add(object);
-		}
-		return result;
-	}
-
-	public IArtifactRepository getArtifactRepository() {
-		return artifactRepository;
-	}
-
-	public IMetadataRepository getMetadataRepository() {
-		return metadataRepository;
-	}
-
-	public int getArtifactOptions() {
-		return artifactOptions;
-	}
-
-	public void setArtifactRepository(IArtifactRepository value) {
-		artifactRepository = value;
-	}
-
-	public void setMetadataRepository(IMetadataRepository value) {
-		metadataRepository = value;
-	}
-
-	public void setArtifactOptions(int value) {
-		artifactOptions = value;
-	}
-
-	public String[] getConfigurations() {
-		return configurations;
-	}
-
-	public void setConfigurations(String[] value) {
-		configurations = value;
-	}
-
-	public String getSummary() {
-		return "some text that describes this setup";
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherResult.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherResult.java
deleted file mode 100644
index 92c8330..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/PublisherResult.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher;
-
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-public class PublisherResult implements IPublisherResult {
-	// type markers
-	public static final String ROOT = "root"; //$NON-NLS-1$
-	public static final String NON_ROOT = "non_root"; //$NON-NLS-1$
-
-	// The set of top level IUs
-	final Map rootIUs = new HashMap();
-
-	// The set of internal and leaf IUs
-	final Map nonRootIUs = new HashMap();
-
-	public void addIU(IInstallableUnit iu, String type) {
-		if (type == ROOT)
-			addIU(rootIUs, iu.getId(), iu);
-		if (type == NON_ROOT)
-			addIU(nonRootIUs, iu.getId(), iu);
-	}
-
-	public void addIUs(Collection ius, String type) {
-		for (Iterator i = ius.iterator(); i.hasNext();)
-			addIU((IInstallableUnit) i.next(), type);
-	}
-
-	private void addIU(Map map, String id, IInstallableUnit iu) {
-		Set ius = (Set) map.get(id);
-		if (ius == null) {
-			ius = new HashSet(11);
-			map.put(id, ius);
-		}
-		ius.add(iu);
-	}
-
-	/**
-	 * Returns all IUs generated during this execution of the generator.
-	 */
-	public Map getGeneratedIUs(String type) {
-		if (type == null) {
-			HashMap all = new HashMap();
-			all.putAll(rootIUs);
-			all.putAll(nonRootIUs);
-			return all;
-		}
-		if (type == ROOT)
-			return rootIUs;
-		if (type == NON_ROOT)
-			return nonRootIUs;
-		throw new IllegalArgumentException("Invalid IU type: " + type); //$NON-NLS-1$
-	}
-
-	// TODO this method really should not be needed as it just returns the first
-	// matching IU non-deterministically.
-	public IInstallableUnit getIU(String id, String type) {
-		if (type == null || type == ROOT) {
-			Collection ius = (Collection) rootIUs.get(id);
-			if (ius != null && ius.size() > 0)
-				return (IInstallableUnit) ius.iterator().next();
-		}
-		if (type == null || type == NON_ROOT) {
-			Collection ius = (Collection) nonRootIUs.get(id);
-			if (ius != null && ius.size() > 0)
-				return (IInstallableUnit) ius.iterator().next();
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the IUs in this result with the given id.
-	 */
-	public Collection getIUs(String id, String type) {
-		if (type == null) {
-			ArrayList result = new ArrayList();
-			result.addAll(id == null ? flatten(rootIUs.values()) : (Collection) rootIUs.get(id));
-			result.addAll(id == null ? flatten(nonRootIUs.values()) : (Collection) nonRootIUs.get(id));
-			return result;
-		}
-		if (type == ROOT)
-			return id == null ? flatten(rootIUs.values()) : (Collection) rootIUs.get(id);
-		if (type == NON_ROOT)
-			return id == null ? flatten(nonRootIUs.values()) : (Collection) nonRootIUs.get(id);
-		return null;
-	}
-
-	private List flatten(Collection values) {
-		ArrayList result = new ArrayList();
-		for (Iterator i = values.iterator(); i.hasNext();) {
-			IInstallableUnit[] ius = (IInstallableUnit[]) i.next();
-			for (int j = 0; j < ius.length; j++)
-				result.add(ius[j]);
-		}
-		return result;
-	}
-
-	public void merge(IPublisherResult result, int mode) {
-		if (mode == MERGE_MATCHING) {
-			addIUs(result.getIUs(null, ROOT), ROOT);
-			addIUs(result.getIUs(null, NON_ROOT), NON_ROOT);
-		} else if (mode == MERGE_ALL_ROOT) {
-			addIUs(result.getIUs(null, ROOT), ROOT);
-			addIUs(result.getIUs(null, NON_ROOT), ROOT);
-		} else if (mode == MERGE_ALL_NON_ROOT) {
-			addIUs(result.getIUs(null, ROOT), NON_ROOT);
-			addIUs(result.getIUs(null, NON_ROOT), NON_ROOT);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AbstractAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AbstractAdvice.java
deleted file mode 100644
index bb0dcba..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AbstractAdvice.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.equinox.internal.p2.publisher.AbstractPublishingAction;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class AbstractAdvice implements IPublishingAdvice {
-
-	public boolean isApplicable(String configSpec, boolean includeDefault, String id, Version version) {
-		return matchConfig(configSpec, includeDefault) && matchId(id) && matchVersion(version);
-	}
-
-	protected boolean matchVersion(Version version) {
-		Version adviceVersion = getVersion();
-		if (adviceVersion != null)
-			return version.equals(adviceVersion);
-		VersionRange range = getVersionRange();
-		if (range != null)
-			return range.isIncluded(version);
-		return true;
-	}
-
-	protected Version getVersion() {
-		return null;
-	}
-
-	protected VersionRange getVersionRange() {
-		return null;
-	}
-
-	protected boolean matchId(String id) {
-		String adviceId = getId();
-		return adviceId == null ? true : adviceId.equals(id);
-	}
-
-	protected String getId() {
-		return null;
-	}
-
-	protected boolean matchConfig(String configSpec, boolean includeDefault) {
-		String adviceConfigSpec = getConfigSpec();
-		if (adviceConfigSpec == null)
-			return includeDefault;
-		String[] full = AbstractPublishingAction.parseConfigSpec(configSpec);
-		String[] partial = AbstractPublishingAction.parseConfigSpec(adviceConfigSpec);
-		for (int i = 0; i < partial.length; i++) {
-			String string = partial[i];
-			if (string != null && !string.equals(full[i]))
-				return false;
-		}
-		return true;
-	}
-
-	protected String getConfigSpec() {
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AccumulateConfigDataAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AccumulateConfigDataAction.java
deleted file mode 100644
index 95cde20..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/AccumulateConfigDataAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.ConfigData;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.LauncherData;
-
-public class AccumulateConfigDataAction extends AbstractPublishingAction {
-
-	private String configSpec;
-	private DataLoader loader;
-
-	public AccumulateConfigDataAction(IPublisherInfo info, String configSpec, File configurationLocation, File executableLocation) {
-		this.configSpec = configSpec;
-		loader = new DataLoader(configurationLocation, executableLocation);
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		storeConfigData(info, configSpec, results);
-		return Status.OK_STATUS;
-	}
-
-	protected void storeConfigData(IPublisherInfo info, String configSpec, IPublisherResult result) {
-		ConfigData data = loader.getConfigData();
-		if (data == null)
-			return;
-		info.addAdvice(new ConfigAdvice(data, configSpec));
-		LauncherData launcherData = loader.getLauncherData();
-		if (launcherData == null)
-			return;
-		info.addAdvice(new LaunchingAdvice(launcherData, configSpec));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BrandedExecutableAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BrandedExecutableAction.java
deleted file mode 100644
index 0d6f337..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BrandedExecutableAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.equinox.internal.p2.publisher.features.ProductFile;
-import org.eclipse.equinox.p2.publisher.product.BrandingIron;
-
-public class BrandedExecutableAction extends EquinoxExecutableAction {
-
-	private ProductFile product;
-
-	public BrandedExecutableAction(ExecutablesDescriptor executables, String productLocation, String flavor, String configSpec) {
-		super();
-		this.executables = executables;
-		this.flavor = flavor;
-		this.configSpec = configSpec;
-		product = loadProduct(productLocation);
-		idBase = product.getProductName();
-		versionSpec = product.getVersion();
-	}
-
-	private ProductFile loadProduct(String productLocation) {
-		ProductFile result = null;
-		try {
-			result = new ProductFile(productLocation);
-		} catch (Exception e) {
-			//TODO
-		}
-		if (result == null)
-			throw new IllegalArgumentException("unable to load product file");
-		return result;
-	}
-
-	/**
-	 * Brands a copy of the given executable descriptor with the information in the 
-	 * current product definition.  The files described in the descriptor are also copied
-	 * to a temporary location to avoid destructive modification
-	 * @param the executable descriptor to brand.
-	 * @return the new descriptor
-	 */
-	protected ExecutablesDescriptor brandExecutables(ExecutablesDescriptor descriptor) {
-		ExecutablesDescriptor result = new ExecutablesDescriptor(descriptor);
-		result.makeTemporaryCopy();
-		BrandingIron iron = new BrandingIron();
-		String os = parseConfigSpec(configSpec)[1];
-		iron.setIcons(product.getIcons(os));
-		iron.setName(product.getLauncherName());
-		iron.setOS(os);
-		iron.setRoot(result.getLocation().getAbsolutePath());
-		try {
-			iron.brand();
-			result.setExecutableName(product.getLauncherName(), true);
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundleShapeAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundleShapeAdvice.java
deleted file mode 100644
index 8ce4234..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundleShapeAdvice.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.osgi.framework.Version;
-
-public class BundleShapeAdvice extends AbstractAdvice implements IBundleShapeAdvice {
-
-	private String shape;
-	private Version version;
-	private String id;
-
-	public BundleShapeAdvice(String id, Version version, String shape) {
-		this.id = id;
-		this.version = version;
-		this.shape = shape;
-	}
-
-	protected String getId() {
-		return id;
-	}
-
-	protected Version getVersion() {
-		return version;
-	}
-
-	public String getShape() {
-		return shape;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundlesAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundlesAction.java
deleted file mode 100644
index e61a7e2..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/BundlesAction.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.service.resolver.*;
-
-/**
- * Publish IUs for all of the bundles in the given set of locations.  The locations can 
- * be actual locations of the bundles or folders of bundles.
- */
-public class BundlesAction extends AbstractPublishingAction {
-
-	protected static final String ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR = "org.eclipse.equinox.simpleconfigurator"; //$NON-NLS-1$
-	protected static final String ORG_ECLIPSE_UPDATE_CONFIGURATOR = "org.eclipse.update.configurator"; //$NON-NLS-1$
-
-	private File[] locations;
-	private StateObjectFactory stateObjectFactory;
-
-	public BundlesAction(File[] locations) {
-		this.locations = expandLocations(locations);
-		// TODO need to figure a better way of configuring the generator...
-		PlatformAdmin platformAdmin = (PlatformAdmin) ServiceHelper.getService(Activator.getContext(), PlatformAdmin.class.getName());
-		if (platformAdmin != null)
-			stateObjectFactory = platformAdmin.getFactory();
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		BundleDescription[] bundles = getBundleDescriptions(locations);
-		generateBundleIUs(bundles, results, info);
-		return Status.OK_STATUS;
-	}
-
-	private File[] expandLocations(File[] list) {
-		ArrayList result = new ArrayList();
-		expandLocations(list, result);
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	private void expandLocations(File[] list, ArrayList result) {
-		if (list == null)
-			return;
-		for (int i = 0; i < list.length; i++) {
-			File location = list[i];
-			if (location.isDirectory()) {
-				// if the location is itself a bundle, just add it.  Otherwise r down
-				if (!new File(location, "META-INF/MANIFEST.MF").exists()) //$NON-NLS-1$
-					expandLocations(location.listFiles(), result);
-				else
-					result.add(location);
-			} else {
-				result.add(location);
-			}
-		}
-	}
-
-	protected void generateBundleIUs(BundleDescription[] bundles, IPublisherResult result, IPublisherInfo info) {
-		// Computing the path for localized property files in a NL fragment bundle
-		// requires the BUNDLE_LOCALIZATION property from the manifest of the host bundle,
-		// so a first pass is done over all the bundles to cache this value as well as the tags
-		// from the manifest for the localizable properties.
-		final int CACHE_PHASE = 0;
-		final int GENERATE_PHASE = 1;
-		Map bundleLocalizationMap = new HashMap(bundles.length);
-		Set localizationIUs = new HashSet(32);
-		for (int phase = CACHE_PHASE; phase <= GENERATE_PHASE; phase++) {
-			for (int i = 0; i < bundles.length; i++) {
-				BundleDescription bd = bundles[i];
-				// A bundle may be null if the associated plug-in does not have a manifest file -
-				// for example, org.eclipse.jdt.launching.j9
-				if (bd != null && bd.getSymbolicName() != null && bd.getVersion() != null) {
-					Map bundleManifest = (Map) bd.getUserObject();
-
-					if (phase == CACHE_PHASE) {
-						if (bundleManifest != null) {
-							String[] cachedValues = MetadataGeneratorHelper.getManifestCachedValues(bundleManifest);
-							bundleLocalizationMap.put(makeSimpleKey(bd), cachedValues);
-						}
-					} else {
-						IArtifactKey key = MetadataGeneratorHelper.createBundleArtifactKey(bd.getSymbolicName(), bd.getVersion().toString());
-						File location = new File(bd.getLocation());
-						IArtifactDescriptor ad = MetadataGeneratorHelper.createArtifactDescriptor(key, location);
-						addProperties((ArtifactDescriptor) ad, location, info);
-						IArtifactRepository destination = info.getArtifactRepository();
-						// don't consider any advice here as we want to know about the real form on disk
-						boolean isDir = isDir(bd, info);
-						// if the artifact is a dir and we are not doing "AS_IS", zip it up.
-						if (isDir && !((info.getArtifactOptions() & IPublisherInfo.A_AS_IS) > 0))
-							publishArtifact(ad, new File(bd.getLocation()), new File(bd.getLocation()).listFiles(), info, INCLUDE_ROOT);
-						else
-							publishArtifact(ad, new File(bd.getLocation()), new File[] {new File(bd.getLocation())}, info, AS_IS | INCLUDE_ROOT);
-						IInstallableUnit bundleIU = MetadataGeneratorHelper.createBundleIU(bd, bundleManifest, isDir, key);
-
-						if (isFragment(bd)) {
-							// TODO: Can NL fragments be multi-host?  What special handling
-							//		 is required for multi-host fragments in general?
-							String hostId = bd.getHost().getName();
-							String hostKey = makeSimpleKey(hostId);
-							String[] cachedValues = (String[]) bundleLocalizationMap.get(hostKey);
-
-							if (cachedValues != null) {
-								MetadataGeneratorHelper.createHostLocalizationFragment(bundleIU, bd, hostId, cachedValues, localizationIUs);
-							}
-						}
-
-						result.addIU(bundleIU, IPublisherResult.ROOT);
-						result.addIUs(localizationIUs, IPublisherResult.NON_ROOT);
-						localizationIUs.clear();
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Add all of the advice for the bundle at the given location to the given descriptor.
-	 * @param descriptor the descriptor to decorate
-	 * @param location the location of the bundle
-	 * @param info the publisher info supplying the advice
-	 */
-	private void addProperties(ArtifactDescriptor descriptor, File location, IPublisherInfo info) {
-		Collection advice = info.getAdvice(null, false, null, null, IBundleAdvice.class);
-		for (Iterator i = advice.iterator(); i.hasNext();) {
-			IBundleAdvice entry = (IBundleAdvice) i.next();
-			Properties props = entry.getProperties(location);
-			if (props == null)
-				continue;
-			for (Iterator j = props.keySet().iterator(); j.hasNext();) {
-				String key = (String) j.next();
-				descriptor.setRepositoryProperty(key, props.getProperty(key));
-			}
-		}
-	}
-
-	private boolean isDir(BundleDescription bundle, IPublisherInfo info) {
-		Collection advice = info.getAdvice(null, true, bundle.getSymbolicName(), bundle.getVersion(), IBundleShapeAdvice.class);
-		// if the advice has a shape, use it
-		if (advice != null && !advice.isEmpty()) {
-			// we know there is some advice but if there is more than one, take the first.
-			String shape = ((IBundleShapeAdvice) advice.iterator().next()).getShape();
-			if (shape != null)
-				return shape.equals(IBundleShapeAdvice.DIR);
-		}
-		// otherwise go with whatever we figured out from the manifest or the shape on disk
-		Map manifest = (Map) bundle.getUserObject();
-		String format = (String) manifest.get(BundleDescriptionFactory.BUNDLE_SHAPE);
-		return BundleDescriptionFactory.DIR.equals(format);
-	}
-
-	private String makeSimpleKey(BundleDescription bd) {
-		// TODO: can't use the bundle version in the key for the BundleLocalization
-		//		 property map since the host specification for a fragment has a
-		//		 version range, not a version. Hence, this mechanism for finding
-		// 		 manifest localization property files may break under changes
-		//		 to the BundleLocalization property of a bundle.
-		return makeSimpleKey(bd.getSymbolicName() /*, bd.getVersion() */);
-	}
-
-	private String makeSimpleKey(String id /*, Version version */) {
-		return id; // + '_' + version.toString();
-	}
-
-	private boolean isFragment(BundleDescription bd) {
-		return (bd.getHost() != null ? true : false);
-	}
-
-	protected BundleDescription[] getBundleDescriptions(File[] bundleLocations) {
-		if (bundleLocations == null)
-			return new BundleDescription[0];
-		boolean addSimpleConfigurator = false;
-		boolean scIn = false;
-		for (int i = 0; i < bundleLocations.length; i++) {
-			if (!addSimpleConfigurator)
-				addSimpleConfigurator = bundleLocations[i].toString().indexOf(ORG_ECLIPSE_UPDATE_CONFIGURATOR) > 0;
-			if (!scIn) {
-				scIn = bundleLocations[i].toString().indexOf(ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR) > 0;
-				if (scIn)
-					break;
-			}
-		}
-		if (scIn)
-			addSimpleConfigurator = false;
-		BundleDescription[] result = new BundleDescription[bundleLocations.length + (addSimpleConfigurator ? 1 : 0)];
-		BundleDescriptionFactory factory = getBundleFactory();
-		for (int i = 0; i < bundleLocations.length; i++) {
-			result[i] = factory.getBundleDescription(bundleLocations[i]);
-		}
-		if (addSimpleConfigurator) {
-			// Add simple configurator to the list of bundles
-			try {
-				URL configuratorURL = FileLocator.toFileURL(Activator.getContext().getBundle().getEntry(ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR + ".jar"));
-				if (configuratorURL == null)
-					System.out.println("Could not find simpleconfigurator bundle");
-				else {
-					File location = new File(configuratorURL.getFile()); //$NON-NLS-1$
-					result[result.length - 1] = factory.getBundleDescription(location);
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return result;
-	}
-
-	protected BundleDescriptionFactory getBundleFactory() {
-		return new BundleDescriptionFactory(stateObjectFactory, null);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigAdvice.java
deleted file mode 100644
index 09a9eb5..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigAdvice.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.util.Properties;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.ConfigData;
-
-public class ConfigAdvice extends AbstractAdvice implements IConfigAdvice {
-
-	private ConfigData data;
-	private String configSpec;
-
-	public ConfigAdvice(ConfigData data, String configSpec) {
-		this.data = data;
-		this.configSpec = configSpec;
-	}
-
-	public BundleInfo[] getBundles() {
-		return data.getBundles();
-	}
-
-	protected String getConfigSpec() {
-		return configSpec;
-	}
-
-	public Properties getProperties() {
-		Properties result = new Properties();
-		result.putAll(data.getFwDependentProps());
-		result.putAll(data.getFwIndependentProps());
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigCUsAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigCUsAction.java
deleted file mode 100644
index 225f4b1..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ConfigCUsAction.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.*;
-
-/**
- * Publish CUs for all the configuration data in the current result.
- * This adds config-specific CUs to capture start levels etc found in the config.ini
- * etc for is os, ws, arch combination seen so far.
- */
-public class ConfigCUsAction extends AbstractPublishingAction {
-
-	protected static final String ORG_ECLIPSE_UPDATE_CONFIGURATOR = "org.eclipse.update.configurator"; //$NON-NLS-1$
-	protected String version;
-	protected String id;
-	protected String flavor;
-
-	public ConfigCUsAction(IPublisherInfo info, String flavor, String id, String version) {
-		this.flavor = flavor;
-		this.id = id;
-		this.version = version;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		// generation from remembered config.ini's
-		// we have N platforms, generate a CU for each
-		// TODO try and find common properties across platforms
-		String[] configSpecs = info.getConfigurations();
-		for (int i = 0; i < configSpecs.length; i++) {
-			String configSpec = configSpecs[i];
-			Collection configAdvice = info.getAdvice(configSpec, false, null, null, IConfigAdvice.class);
-			BundleInfo[] bundles = fillInBundles(configAdvice, results);
-			generateBundleConfigIUs(info, bundles, configSpec, results);
-
-			Collection launchingAdvice = info.getAdvice(configSpec, false, null, null, ILaunchingAdvice.class);
-			publishIniIUs(configAdvice, launchingAdvice, results, configSpec);
-		}
-		return Status.OK_STATUS;
-	}
-
-	// there seem to be cases where the bundle infos are not filled in with symbolic name and version.
-	// fill in the missing data.
-	private BundleInfo[] fillInBundles(Collection configAdvice, IPublisherResult results) {
-		ArrayList result = new ArrayList();
-		for (Iterator j = configAdvice.iterator(); j.hasNext();) {
-			IConfigAdvice advice = (IConfigAdvice) j.next();
-			BundleInfo[] bundles = advice.getBundles();
-			for (int i = 0; i < bundles.length; i++) {
-				BundleInfo bundleInfo = bundles[i];
-				// prime the result with the current info.  This will be replaced if there is more info...
-				if ((bundleInfo.getSymbolicName() != null && bundleInfo.getVersion() != null) || bundleInfo.getLocation() == null)
-					result.add(bundles[i]);
-				else {
-					try {
-						File location = new File(new URL(bundleInfo.getLocation()).getPath());
-						Dictionary manifest = BundleDescriptionFactory.loadManifest(location);
-						if (manifest == null)
-							continue;
-						GeneratorBundleInfo newInfo = new GeneratorBundleInfo(bundleInfo);
-						ManifestElement[] element = ManifestElement.parseHeader("dummy-bsn", (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME)); //$NON-NLS-1$
-						newInfo.setSymbolicName(element[0].getValue());
-						newInfo.setVersion((String) manifest.get(Constants.BUNDLE_VERSION));
-						result.add(newInfo);
-					} catch (BundleException e) {
-						// TODO Auto-generated catch block
-						e.printStackTrace();
-					} catch (IOException e) {
-						// TODO Auto-generated catch block
-						e.printStackTrace();
-					}
-				}
-			}
-		}
-		return (BundleInfo[]) result.toArray(new BundleInfo[result.size()]);
-	}
-
-	private void publishIniIUs(Collection configAdvice, Collection launchingAdvice, IPublisherResult results, String configSpec) {
-		if (configAdvice.isEmpty() && launchingAdvice.isEmpty())
-			return;
-
-		String configureData = ""; //$NON-NLS-1$
-		String unconfigureData = ""; //$NON-NLS-1$
-
-		if (!configAdvice.isEmpty()) {
-			String[] dataStrings = getConfigurationStrings(configAdvice);
-			configureData += dataStrings[0];
-			unconfigureData += dataStrings[1];
-		}
-
-		if (!launchingAdvice.isEmpty()) {
-			String[] dataStrings = getLauncherConfigStrings(launchingAdvice);
-			configureData += dataStrings[0];
-			unconfigureData += dataStrings[1];
-		}
-
-		// if there is nothing to configure or unconfigure, then don't even bother generating this IU
-		if (configureData.length() == 0 && unconfigureData.length() == 0)
-			return;
-
-		Map touchpointData = new HashMap();
-		touchpointData.put("configure", configureData); //$NON-NLS-1$
-		touchpointData.put("unconfigure", unconfigureData); //$NON-NLS-1$
-		IInstallableUnit cu = MetadataGeneratorHelper.createIUFragment(id, version, flavor, configSpec, touchpointData);
-		results.addIU(cu, IPublisherResult.ROOT);
-	}
-
-	protected String[] getConfigurationStrings(Collection configAdvice) {
-		String configurationData = ""; //$NON-NLS-1$
-		String unconfigurationData = ""; //$NON-NLS-1$
-		for (Iterator i = configAdvice.iterator(); i.hasNext();) {
-			IConfigAdvice advice = (IConfigAdvice) i.next();
-			for (Iterator iterator = advice.getProperties().entrySet().iterator(); iterator.hasNext();) {
-				Entry aProperty = (Entry) iterator.next();
-				String key = ((String) aProperty.getKey());
-				if (key.equals("osgi.frameworkClassPath") || key.equals("osgi.framework") || key.equals("osgi.bundles") || key.equals("eof")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					continue;
-				configurationData += "setProgramProperty(propName:" + key + ", propValue:" + ((String) aProperty.getValue()) + ");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				unconfigurationData += "setProgramProperty(propName:" + key + ", propValue:);"; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return new String[] {configurationData, unconfigurationData};
-	}
-
-	protected String[] getLauncherConfigStrings(Collection launchingAdvice) {
-		String configurationData = ""; //$NON-NLS-1$
-		String unconfigurationData = ""; //$NON-NLS-1$
-
-		for (Iterator j = launchingAdvice.iterator(); j.hasNext();) {
-			ILaunchingAdvice advice = (ILaunchingAdvice) j.next();
-			String[] jvmArgs = advice.getVMArguments();
-			for (int i = 0; i < jvmArgs.length; i++) {
-				configurationData += "addJvmArg(jvmArg:" + jvmArgs[i] + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-				unconfigurationData += "removeJvmArg(jvmArg:" + jvmArgs[i] + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			String[] programArgs = advice.getProgramArguments();
-			for (int i = 0; i < programArgs.length; i++) {
-				String programArg = programArgs[i];
-				if (programArg.equals("--launcher.library") || programArg.equals("-startup") || programArg.equals("-configuration")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					i++;
-				configurationData += "addProgramArg(programArg:" + programArg + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-				unconfigurationData += "removeProgramArg(programArg:" + programArg + ");"; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return new String[] {configurationData, unconfigurationData};
-	}
-
-	protected void generateBundleConfigIUs(IPublisherInfo info, BundleInfo[] bundles, String configSpec, IPublisherResult result) {
-		if (bundles == null)
-			return;
-
-		String cuIdPrefix = ""; //$NON-NLS-1$
-		String filter = null;
-		if (configSpec != null) {
-			cuIdPrefix = createIdString(configSpec);
-			filter = createFilterSpec(configSpec);
-		}
-
-		for (int i = 0; i < bundles.length; i++) {
-			GeneratorBundleInfo bundle = createGeneratorBundleInfo(info, bundles[i], result);
-			if (bundle == null)
-				continue;
-
-			if (bundle.getSymbolicName().equals(ORG_ECLIPSE_UPDATE_CONFIGURATOR)) {
-				bundle.setStartLevel(BundleInfo.NO_LEVEL);
-				bundle.setMarkedAsStarted(false);
-				bundle.setSpecialConfigCommands("setProgramProperty(propName:org.eclipse.update.reconcile, propValue:false);"); //$NON-NLS-1$
-				bundle.setSpecialUnconfigCommands("setProgramProperty(propName:org.eclipse.update.reconcile, propValue:);"); //$NON-NLS-1$
-			} else if (bundle.getStartLevel() == BundleInfo.NO_LEVEL && !bundle.isMarkedAsStarted()) {
-				// this bundle does not require any particular configuration, the plug-in default IU will handle installing it
-				continue;
-			}
-
-			IInstallableUnit cu = MetadataGeneratorHelper.createBundleConfigurationUnit(bundle.getSymbolicName(), new Version(bundle.getVersion()), false, bundle, flavor + cuIdPrefix, filter);
-			if (cu != null) {
-				// Product Query will run against the repo, make sure these CUs are in before then
-				IMetadataRepository metadataRepository = info.getMetadataRepository();
-				if (metadataRepository != null) {
-					metadataRepository.addInstallableUnits(new IInstallableUnit[] {cu});
-				}
-				result.addIU(cu, IPublisherResult.ROOT);
-			}
-		}
-	}
-
-	protected GeneratorBundleInfo createGeneratorBundleInfo(IPublisherInfo info, BundleInfo bundleInfo, IPublisherResult result) {
-		if (bundleInfo.getLocation() != null)
-			return new GeneratorBundleInfo(bundleInfo);
-
-		String name = bundleInfo.getSymbolicName();
-
-		//easy case: do we have a matching IU?
-		IInstallableUnit iu = result.getIU(name, null);
-		if (iu != null) {
-			bundleInfo.setVersion(iu.getVersion().toString());
-			return new GeneratorBundleInfo(bundleInfo);
-		}
-
-		//harder: try id_version
-		int i = name.indexOf('_');
-		while (i > -1) {
-			Version version = null;
-			try {
-				version = new Version(name.substring(i));
-				bundleInfo.setSymbolicName(name.substring(0, i));
-				bundleInfo.setVersion(version.toString());
-				return new GeneratorBundleInfo(bundleInfo);
-			} catch (IllegalArgumentException e) {
-				// the '_' found was probably part of the symbolic id
-				i = name.indexOf('_', i);
-			}
-		}
-
-		//Query the repo
-		Query query = new InstallableUnitQuery(name);
-		Collector collector = new Collector();
-		Iterator matches = info.getMetadataRepository().query(query, collector, null).iterator();
-		//pick the newest match
-		IInstallableUnit newest = null;
-		while (matches.hasNext()) {
-			IInstallableUnit candidate = (IInstallableUnit) matches.next();
-			if (newest == null || (newest.getVersion().compareTo(candidate.getVersion()) < 0))
-				newest = candidate;
-		}
-		if (newest != null) {
-			bundleInfo.setVersion(newest.getVersion().toString());
-			return new GeneratorBundleInfo(bundleInfo);
-		}
-
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DataLoader.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DataLoader.java
deleted file mode 100644
index 7bcd8ca..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DataLoader.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.publisher.Activator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-public class DataLoader {
-
-	private final static String FILTER_OBJECTCLASS = "(" + Constants.OBJECTCLASS + "=" + FrameworkAdmin.class.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	private final static String filterFwName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_FW_NAME + "=Equinox)"; //$NON-NLS-1$ //$NON-NLS-2$
-	//String filterFwVersion = "(" + FrameworkAdmin.SERVICE_PROP_KEY_FW_VERSION + "=" + props.getProperty("equinox.fw.version") + ")";
-	private final static String filterLauncherName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_NAME + "=Eclipse.exe)"; //$NON-NLS-1$ //$NON-NLS-2$
-	//String filterLauncherVersion = "(" + FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_VERSION + "=" + props.getProperty("equinox.launcher.version") + ")";
-	private final static String frameworkAdminFillter = "(&" + FILTER_OBJECTCLASS + filterFwName + filterLauncherName + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-
-	private static final String ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_MANIPULATOR = "org.eclipse.equinox.simpleconfigurator.manipulator"; //$NON-NLS-1$
-	private static final String ORG_ECLIPSE_EQUINOX_FRAMEWORKADMIN_EQUINOX = "org.eclipse.equinox.frameworkadmin.equinox"; //$NON-NLS-1$
-
-	private Manipulator manipulator;
-	private File configurationLocation;
-
-	public DataLoader(File configurationLocation, File executableLocation) {
-		this.configurationLocation = configurationLocation;
-		initializeFrameworkManipulator(configurationLocation.getParentFile(), executableLocation);
-	}
-
-	private void initializeFrameworkManipulator(File config, File executable) {
-		getFrameworkManipulator();
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwPersistentDataLocation(config, true);
-		launcherData.setLauncher(executable);
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		} catch (FrameworkAdminRuntimeException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		} catch (IOException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		}
-	}
-
-	public ConfigData getConfigData() {
-		if (manipulator == null)
-			return null;
-
-		EquinoxFwConfigFileParser parser = new EquinoxFwConfigFileParser(Activator.getContext());
-		try {
-			parser.readFwConfig(manipulator, configurationLocation);
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return manipulator.getConfigData();
-	}
-
-	public LauncherData getLauncherData() {
-		return manipulator == null ? null : manipulator.getLauncherData();
-	}
-
-	/**
-	 * Obtains the framework manipulator instance. Throws an exception
-	 * if it could not be created.
-	 */
-	private void getFrameworkManipulator() {
-		FrameworkAdmin admin = getFrameworkAdmin();
-		if (admin == null)
-			throw new RuntimeException("Framework admin service not found"); //$NON-NLS-1$
-		manipulator = admin.getManipulator();
-		if (manipulator == null)
-			throw new RuntimeException("Framework manipulator not found"); //$NON-NLS-1$
-	}
-
-	private FrameworkAdmin getFrameworkAdmin() {
-		FrameworkAdmin frameworkAdmin = (FrameworkAdmin) ServiceHelper.getService(Activator.getContext(), FrameworkAdmin.class.getName(), frameworkAdminFillter);
-		if (frameworkAdmin == null) {
-			startBundle(ORG_ECLIPSE_EQUINOX_FRAMEWORKADMIN_EQUINOX);
-			startBundle(ORG_ECLIPSE_EQUINOX_SIMPLECONFIGURATOR_MANIPULATOR);
-			frameworkAdmin = (FrameworkAdmin) ServiceHelper.getService(Activator.getContext(), FrameworkAdmin.class.getName(), frameworkAdminFillter);
-		}
-		return frameworkAdmin;
-	}
-
-	private boolean startBundle(String bundleId) {
-		PackageAdmin packageAdmin = (PackageAdmin) ServiceHelper.getService(Activator.getContext(), PackageAdmin.class.getName());
-		if (packageAdmin == null)
-			return false;
-
-		Bundle[] bundles = packageAdmin.getBundles(bundleId, null);
-		if (bundles != null && bundles.length > 0) {
-			for (int i = 0; i < bundles.length; i++) {
-				try {
-					if ((bundles[0].getState() & Bundle.RESOLVED) > 0) {
-						bundles[0].start();
-						return true;
-					}
-				} catch (BundleException e) {
-					// failed, try next bundle
-				}
-			}
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DefaultCUsAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DefaultCUsAction.java
deleted file mode 100644
index 9a99658..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/DefaultCUsAction.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-
-/**
- * Publish IUs that install/configure the standard things like bundles, features and source bundles
- */
-public class DefaultCUsAction extends AbstractPublishingAction {
-
-	private String flavor;
-	private int startLevel;
-	private boolean start;
-
-	public DefaultCUsAction(IPublisherInfo info, String flavor, int startLevel, boolean start) {
-		this.flavor = flavor;
-		this.startLevel = startLevel;
-		this.start = start;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		generateDefaultConfigIU(results);
-		return Status.OK_STATUS;
-	}
-
-	protected void generateDefaultConfigIU(IPublisherResult result) {
-		//		TODO this is a bit of a hack.  We need to have the default IU fragment generated with code that configures
-		//		and unconfigures.  The Generator should be decoupled from any particular provider but it is not clear
-		//		that we should add the create* methods to IGeneratorInfo...
-		//		MockBundleDescription bd1 = new MockBundleDescription("defaultConfigure");
-		//		MockBundleDescription bd2 = new MockBundleDescription("defaultUnconfigure");
-		result.addIU(MetadataGeneratorHelper.createDefaultBundleConfigurationUnit(createDefaultConfigurationBundleInfo(), createDefaultUnconfigurationBundleInfo(), flavor), IPublisherResult.ROOT);
-		result.addIU(MetadataGeneratorHelper.createDefaultFeatureConfigurationUnit(flavor), IPublisherResult.ROOT);
-		result.addIU(MetadataGeneratorHelper.createDefaultConfigurationUnitForSourceBundles(flavor), IPublisherResult.ROOT);
-	}
-
-	protected GeneratorBundleInfo createDefaultConfigurationBundleInfo() {
-		GeneratorBundleInfo result = new GeneratorBundleInfo();
-		result.setSymbolicName("defaultConfigure"); //$NON-NLS-1$
-		result.setVersion("1.0.0"); //$NON-NLS-1$
-		result.setStartLevel(startLevel);
-		result.setMarkedAsStarted(start);
-		// These should just be in the install section now
-		//		result.setSpecialConfigCommands("installBundle(bundle:${artifact});");
-		return result;
-	}
-
-	protected GeneratorBundleInfo createDefaultUnconfigurationBundleInfo() {
-		GeneratorBundleInfo result = new GeneratorBundleInfo();
-		result.setSymbolicName("defaultUnconfigure"); //$NON-NLS-1$
-		result.setVersion("1.0.0"); //$NON-NLS-1$
-		// These should just be in the uninstall section now
-		//		result.setSpecialConfigCommands("uninstallBundle(bundle:${artifact});");
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EclipseInstallAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EclipseInstallAction.java
deleted file mode 100644
index 5710edb..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EclipseInstallAction.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-
-public class EclipseInstallAction implements IPublishingAction {
-	protected String source;
-	protected String id;
-	protected String version = "1.0.0"; //$NON-NLS-1$
-	protected String name;
-	protected String flavor;
-	protected String[] topLevel;
-	protected IPublisherInfo info;
-	protected String[] nonRootFiles;
-	protected boolean start = false;
-
-	protected EclipseInstallAction() {
-	}
-
-	public EclipseInstallAction(String source, String id, String version, String name, String flavor, String[] topLevel, String[] nonRootFiles, boolean start) {
-		this.source = source;
-		this.id = id;
-		this.version = version;
-		this.name = name == null ? id : name;
-		this.flavor = flavor;
-		this.topLevel = topLevel;
-		this.nonRootFiles = nonRootFiles;
-		this.start = start;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		this.info = info;
-		IPublishingAction[] actions = createActions();
-		for (int i = 0; i < actions.length; i++)
-			actions[i].perform(info, results);
-		return Status.OK_STATUS;
-	}
-
-	protected IPublishingAction[] createActions() {
-		createAdvice();
-		ArrayList result = new ArrayList();
-		// create an action that just publishes the raw bundles and features
-		IPublishingAction action = new MergeResultsAction(new IPublishingAction[] {createFeaturesAction(), createBundlesAction()}, IPublisherResult.MERGE_ALL_NON_ROOT);
-		result.add(action);
-		result.addAll(createExecutablesActions(info.getConfigurations()));
-		result.add(createRootFilesAction());
-		result.add(createEquinoxLauncherFragmentsAction());
-		result.addAll(createAccumulateConfigDataActions(info.getConfigurations()));
-		result.add(createJREAction());
-		result.add(createConfigCUsAction());
-		result.add(createDefaultCUsAction());
-		result.add(createRootIUAction());
-		return (IPublishingAction[]) result.toArray(new IPublishingAction[result.size()]);
-	}
-
-	private void createAdvice() {
-		createRootFilesAdvice();
-		createRootAdvice();
-	}
-
-	protected void createRootAdvice() {
-		info.addAdvice(new RootIUAdvice(getTopLevel()));
-	}
-
-	protected IPublishingAction createDefaultCUsAction() {
-		return new DefaultCUsAction(info, flavor, 4, start);
-	}
-
-	protected IPublishingAction createRootIUAction() {
-		return new RootIUAction(id, version, name, info);
-	}
-
-	protected Collection getTopLevel() {
-		return Arrays.asList(topLevel);
-	}
-
-	protected IPublishingAction createJREAction() {
-		return new JREAction(info, null);
-	}
-
-	protected IPublishingAction createEquinoxLauncherFragmentsAction() {
-		return new EquinoxLauncherCUAction(flavor);
-	}
-
-	protected Collection createAccumulateConfigDataActions(String[] configs) {
-		Collection result = new ArrayList(configs.length);
-		for (int i = 0; i < configs.length; i++) {
-			String configSpec = configs[i];
-			File configuration = computeConfigurationLocation(configSpec);
-			String os = AbstractPublishingAction.parseConfigSpec(configSpec)[1];
-			File executable = ExecutablesDescriptor.findExecutable(os, computeExecutableLocation(configSpec), "eclipse"); //$NON-NLS-1$
-			IPublishingAction action = new AccumulateConfigDataAction(info, configSpec, configuration, executable);
-			result.add(action);
-		}
-		return result;
-	}
-
-	protected IPublishingAction createConfigCUsAction() {
-		return new ConfigCUsAction(info, flavor, id, version);
-	}
-
-	protected IPublishingAction createFeaturesAction() {
-		return new FeaturesAction(new File[] {new File(source, "features")}); //$NON-NLS-1$
-	}
-
-	protected Collection createExecutablesActions(String[] configSpecs) {
-		Collection result = new ArrayList(configSpecs.length);
-		for (int i = 0; i < configSpecs.length; i++) {
-			ExecutablesDescriptor executables = computeExecutables(configSpecs[i]);
-			IPublishingAction action = new EquinoxExecutableAction(executables, configSpecs[i], id, version, flavor);
-			result.add(action);
-		}
-		return result;
-	}
-
-	protected IPublishingAction createRootFilesAction() {
-		return new RootFilesAction(info, id, version, flavor);
-	}
-
-	protected void createRootFilesAdvice() {
-		File[] baseExclusions = computeRootFileExclusions();
-		if (baseExclusions != null)
-			info.addAdvice(new RootFilesAdvice(null, null, baseExclusions, null));
-		String[] configs = info.getConfigurations();
-		for (int i = 0; i < configs.length; i++)
-			info.addAdvice(computeRootFileAdvice(configs[i]));
-	}
-
-	protected IPublishingAdvice computeRootFileAdvice(String configSpec) {
-		File root = computeRootFileRoot(configSpec);
-		File[] inclusions = computeRootFileInclusions(configSpec);
-		File[] exclusions = computeRootFileExclusions(configSpec);
-		return new RootFilesAdvice(root, inclusions, exclusions, configSpec);
-	}
-
-	protected File[] computeRootFileExclusions(String configSpec) {
-		return computeExecutables(configSpec).getFiles();
-	}
-
-	protected File[] computeRootFileExclusions() {
-		if (nonRootFiles == null || nonRootFiles.length == 0)
-			return null;
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < nonRootFiles.length; i++) {
-			String filename = nonRootFiles[i];
-			File file = new File(filename);
-			if (file.isAbsolute())
-				result.add(file);
-			else
-				result.add(new File(source, filename));
-		}
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	protected ExecutablesDescriptor computeExecutables(String configSpec) {
-		String os = AbstractPublishingAction.parseConfigSpec(configSpec)[1];
-		return ExecutablesDescriptor.createDescriptor(os, "eclipse", computeExecutableLocation(configSpec)); //$NON-NLS-1$
-	}
-
-	protected File computeRootFileRoot(String configSpec) {
-		return new File(source);
-	}
-
-	protected File[] computeRootFileInclusions(String configSpec) {
-		return new File[] {new File(source)};
-	}
-
-	protected File computeExecutableLocation(String configSpec) {
-		return new File(source);
-	}
-
-	protected File computeConfigurationLocation(String configSpec) {
-		return new File(source, "configuration/config.ini"); //$NON-NLS-1$
-	}
-
-	protected IPublishingAction createBundlesAction() {
-		return new BundlesAction(new File[] {new File(source, "plugins")}); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxExecutableAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxExecutableAction.java
deleted file mode 100644
index 6e3a291..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxExecutableAction.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.osgi.service.environment.Constants;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class EquinoxExecutableAction extends AbstractPublishingAction {
-
-	protected String configSpec;
-	protected String idBase;
-	protected String versionSpec = "1.0.0"; //$NON-NLS-1$
-	protected ExecutablesDescriptor executables;
-	protected String flavor;
-
-	protected EquinoxExecutableAction() {
-	}
-
-	public EquinoxExecutableAction(ExecutablesDescriptor executables, String configSpec, String idBase, String version, String flavor) {
-		this.executables = executables;
-		this.configSpec = configSpec;
-		this.idBase = idBase == null ? "org.eclipse" : idBase; //$NON-NLS-1$
-		// if the given version is not the default "replace me" version then save it
-		if (version != null && !version.equals("0.0.0")) //$NON-NLS-1$
-			this.versionSpec = version;
-		this.flavor = flavor;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		generateExecutableIUs(info, results);
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Generates IUs and CUs for the files that make up the launcher for a given
-	 * ws/os/arch combination.
-	 */
-	protected void generateExecutableIUs(IPublisherInfo info, IPublisherResult result) {
-		// Create the IU for the executable
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(true);
-		String idPrefix = idBase + ".executable"; //$NON-NLS-1$
-		String executableId = idPrefix + '.' + createIdString(configSpec);
-		iu.setId(executableId);
-		Version version = new Version(versionSpec);
-		iu.setVersion(version);
-		String filter = createFilterSpec(configSpec);
-		iu.setFilter(filter);
-		IArtifactKey key = MetadataGeneratorHelper.createLauncherArtifactKey(executableId, version);
-		iu.setArtifacts(new IArtifactKey[] {key});
-		iu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_NATIVE);
-		ProvidedCapability launcherCapability = MetadataFactory.createProvidedCapability(flavor + idBase, idPrefix, version); //$NON-NLS-1$
-		iu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(executableId, version), launcherCapability});
-
-		// setup a requirement between the executable and the launcher fragment that has the shared library
-		String[] config = parseConfigSpec(configSpec);
-		String ws = config[0];
-		String os = config[1];
-		String arch = config[2];
-		String launcherFragment = EquinoxLauncherCUAction.ORG_ECLIPSE_EQUINOX_LAUNCHER + '.' + ws + '.' + os;
-		if (!Constants.OS_MACOSX.equals(os))
-			launcherFragment += '.' + arch;
-		iu.setRequiredCapabilities(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, launcherFragment, VersionRange.emptyRange, filter, false, false)});
-		result.addIU(MetadataFactory.createInstallableUnit(iu), IPublisherResult.ROOT);
-
-		// Create the CU that installs/configures the executable
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = flavor + executableId;
-		cu.setId(configUnitId);
-		cu.setVersion(version);
-		cu.setFilter(filter);
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, executableId, new VersionRange(version, true, version, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		//TODO bug 218890, would like the fragment to provide the launcher capability as well, but can't right now.
-		cu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(configUnitId, version)});
-
-		// TODO temporary measure for handling the Eclipse launcher feature files.
-		ExecutablesDescriptor files = brandExecutables(executables);
-
-		cu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_NATIVE);
-		Map touchpointData = new HashMap();
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		File[] fileList = files.getFiles();
-		for (int i = 0; i < fileList.length; i++) {
-			File file = fileList[i];
-			if (Constants.OS_MACOSX.equals(os)) {
-				File macOSFolder = new File(file, "Contents/MacOS"); //$NON-NLS-1$
-				if (macOSFolder.exists()) {
-					File[] launcherFiles = macOSFolder.listFiles();
-					for (int j = 0; j < launcherFiles.length; j++) {
-						configurationData += " chmod(targetDir:${installFolder}/" + file.getName() + "/Contents/MacOS/, targetFile:" + launcherFiles[j].getName() + ", permissions:755);"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						if (new Path(launcherFiles[j].getName()).getFileExtension() == null)
-							MetadataGeneratorHelper.generateLauncherSetter(launcherFiles[j].getName(), executableId, version, configSpec, result);
-					}
-				}
-			}
-			if (!Constants.OS_WIN32.equals(os) && !Constants.OS_MACOSX.equals(os)) {
-				configurationData += " chmod(targetDir:${installFolder}, targetFile:" + file.getName() + ", permissions:755);"; //$NON-NLS-1$ //$NON-NLS-2$
-				// if the file has no extension then it is the executable.  Not the best rule but ok for now
-				if (new Path(file.getName()).getFileExtension() == null)
-					MetadataGeneratorHelper.generateLauncherSetter(file.getName(), executableId, version, configSpec, result);
-			}
-		}
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		IInstallableUnit unit = MetadataFactory.createInstallableUnit(cu);
-		result.addIU(unit, IPublisherResult.ROOT);
-
-		//Create the artifact descriptor.  we have several files so no path on disk
-		IArtifactDescriptor descriptor = MetadataGeneratorHelper.createArtifactDescriptor(key, null);
-		publishArtifact(descriptor, fileList, files.getLocation(), info, INCLUDE_ROOT);
-		if (files.isTemporary())
-			FileUtils.deleteAll(files.getLocation());
-	}
-
-	protected ExecutablesDescriptor brandExecutables(ExecutablesDescriptor descriptor) {
-		ExecutablesDescriptor result = new ExecutablesDescriptor(descriptor);
-		result.makeTemporaryCopy();
-		File[] list = descriptor.getFiles();
-		for (int i = 0; i < list.length; i++)
-			mungeLauncherFileName(list[i], descriptor);
-		result.setExecutableName("eclipse", true); //$NON-NLS-1$
-		return result;
-	}
-
-	/**
-	 * @TODO This method is a temporary hack to rename the launcher.exe files
-	 * to eclipse.exe (or "launcher" to "eclipse"). Eventually we will either hand-craft
-	 * metadata/artifacts for launchers, or alter the delta pack to contain eclipse-branded
-	 * launchers.
-	 */
-	private void mungeLauncherFileName(File file, ExecutablesDescriptor descriptor) {
-		if (file.getName().equals("launcher")) { //$NON-NLS-1$
-			File newFile = new File(file.getParentFile(), "eclipse"); //$NON-NLS-1$
-			file.renameTo(newFile); //$NON-NLS-1$
-			descriptor.replace(file, newFile);
-		} else if (file.getName().equals("launcher.exe")) { //$NON-NLS-1$
-			File newFile = new File(file.getParentFile(), "eclipse.exe"); //$NON-NLS-1$
-			file.renameTo(newFile); //$NON-NLS-1$
-			descriptor.replace(file, newFile);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxLauncherCUAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxLauncherCUAction.java
deleted file mode 100644
index 712253d..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/EquinoxLauncherCUAction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.osgi.framework.Version;
-
-/**
- * Create CUs for all Equinox launcher IUs (not fragments) found in the current results
- * such that the corresponding host IU is configured as the launch.library.  
- */
-public class EquinoxLauncherCUAction extends AbstractPublishingAction {
-
-	public static final String ORG_ECLIPSE_EQUINOX_LAUNCHER = "org.eclipse.equinox.launcher"; //$NON-NLS-1$
-
-	private String flavor;
-
-	public EquinoxLauncherCUAction(String flavor) {
-		this.flavor = flavor;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		createLauncherCUs(results);
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Returns the set of all known IUs in the result that are part of the Equinox launcher. 
-	 * @param results the results to scan and supplement
-	 */
-	private void createLauncherCUs(IPublisherResult results) {
-		Collection launchers = getIUs(results.getIUs(null, null), ORG_ECLIPSE_EQUINOX_LAUNCHER);
-		for (Iterator i = launchers.iterator(); i.hasNext();) {
-			IInstallableUnit launcherIU = (IInstallableUnit) i.next();
-			// skip over source bundles and fragments
-			// TODO should we use the source property here rather than magic name matching?
-			if (launcherIU.getId().endsWith(".source") || launcherIU.isFragment()) //$NON-NLS-1$
-				continue;
-			GeneratorBundleInfo bundle = new GeneratorBundleInfo();
-			bundle.setSymbolicName(launcherIU.getId());
-			bundle.setVersion(launcherIU.getVersion().toString());
-			bundle.setSpecialConfigCommands("addProgramArg(programArg:-startup);addProgramArg(programArg:@artifact);"); //$NON-NLS-1$
-			bundle.setSpecialUnconfigCommands("removeProgramArg(programArg:-startup);removeProgramArg(programArg:@artifact);"); //$NON-NLS-1$
-			String filter = launcherIU.getFilter();
-			IInstallableUnit cu = MetadataGeneratorHelper.createBundleConfigurationUnit(bundle.getSymbolicName(), new Version(bundle.getVersion()), false, bundle, flavor, filter);
-			if (cu != null)
-				results.addIU(cu, IPublisherResult.ROOT);
-		}
-	}
-
-	private Collection getIUs(Collection ius, String prefix) {
-		Set result = new HashSet();
-		for (Iterator iterator = ius.iterator(); iterator.hasNext();) {
-			IInstallableUnit tmp = (IInstallableUnit) iterator.next();
-			if (tmp.getId().startsWith(prefix))
-				result.add(tmp);
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ExecutablesDescriptor.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ExecutablesDescriptor.java
deleted file mode 100644
index 91f1a09..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ExecutablesDescriptor.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.*;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.publisher.AbstractPublishingAction;
-import org.eclipse.equinox.internal.p2.publisher.Activator;
-import org.eclipse.osgi.service.environment.Constants;
-
-public class ExecutablesDescriptor {
-
-	private File location;
-	private Set files;
-	private String executableName;
-	private boolean temporary = false;
-	private String os;
-
-	public static File findExecutable(String os, File root, String baseName) {
-		// TODO this may need to get more intelligent
-		// if MacOS its going to be baseName.app/Contents/MacOS/baseName
-		if (Constants.OS_MACOSX.equals(os)) {
-			return new File(root, baseName + ".app/Contents/MacOS/" + baseName);
-		}
-		// if it is not Mac and not Windows it must be a UNIX flavor
-		if (!Constants.OS_WIN32.equals(os)) {
-			return new File(root, baseName);
-		}
-		// otherwise we are left with windows
-		return new File(root, baseName + ".exe");
-	}
-
-	/**
-	 * Return the root directory of the executables folder for the given configSpec.  The folder
-	 * is expected to be part of the standard Eclipse executables feature whose structure is 
-	 * embedded here.
-	 * @param executablesFeatureLocation the location of the executables feature
-	 * @param configSpec the configuration to lookup
-	 * @return the root location of the requested executables
-	 */
-	public static ExecutablesDescriptor createExecutablesFromFeature(File executablesFeatureLocation, String configSpec) {
-		// TODO consider handling JAR'd features here...
-		if (executablesFeatureLocation == null || !executablesFeatureLocation.exists())
-			return null;
-		String[] config = AbstractPublishingAction.parseConfigSpec(configSpec);
-		File result = new File(executablesFeatureLocation, "bin/" + config[0] + "/" + config[1] + "/" + config[2]);
-		if (!result.exists())
-			return null;
-		return new ExecutablesDescriptor(config[1], "launcher", result, new File[] {result});
-	}
-
-	/**
-	 * Create an executable descriptor based on the given location, os and name.
-	 * This method is typically used to identify the executable related files in existing
-	 * unmanaged configurations.
-	 * @param os
-	 * @param location
-	 * @param executable
-	 * @return the created descriptor
-	 */
-	public static ExecutablesDescriptor createDescriptor(String os, String executable, File location) {
-		if (Constants.OS_MACOSX.equals(os))
-			return createMacDescriptor(os, executable, location);
-
-		// if it is not Mac and not Windows it must be a UNIX flavor
-		if (!Constants.OS_WIN32.equals(os))
-			return createUnixDescriptor(os, executable, location);
-
-		// Nothing else so it must be Windows
-		return createWindowsDescriptor(os, executable, location);
-	}
-
-	private static ExecutablesDescriptor createWindowsDescriptor(String os, String executable, File location) {
-		ExecutablesDescriptor result = new ExecutablesDescriptor(os, executable, location, null);
-		File file = new File(location, executable + ".exe"); //$NON-NLS-1$
-		if (file.isFile())
-			result.addFile(file);
-		file = new File(location, "eclipsec.exe"); //$NON-NLS-1$
-		if (file.isFile())
-			result.addFile(file);
-		return result;
-	}
-
-	private static ExecutablesDescriptor createUnixDescriptor(String os, String executable, File location) {
-		ExecutablesDescriptor result = new ExecutablesDescriptor(os, executable, location, null);
-		File[] files = location.listFiles();
-		for (int i = 0; files != null && i < files.length; i++) {
-			String extension = new Path(files[i].getName()).getFileExtension();
-			if (files[i].isFile() && (extension == null || extension.equals("so"))) //$NON-NLS-1$
-				result.addFile(files[i]);
-		}
-		return result;
-	}
-
-	private static ExecutablesDescriptor createMacDescriptor(String os, String executable, File location) {
-		File files[] = location.listFiles(new FilenameFilter() {
-			public boolean accept(File dir, String name) {
-				return name.substring(name.length() - 4, name.length()).equalsIgnoreCase(".app"); //$NON-NLS-1$
-			}
-		});
-		return new ExecutablesDescriptor(os, executable, location, files);
-	}
-
-	public ExecutablesDescriptor(String os, String executable, File location, File[] files) {
-		this.os = os;
-		this.executableName = executable;
-		this.location = location;
-		if (files == null)
-			this.files = new HashSet(11);
-		else {
-			this.files = new HashSet(files.length);
-			for (int i = 0; i < files.length; i++)
-				addAllFiles(files[i]);
-		}
-	}
-
-	public ExecutablesDescriptor(ExecutablesDescriptor descriptor) {
-		this.os = descriptor.os;
-		this.location = descriptor.location;
-		this.executableName = descriptor.executableName;
-		this.temporary = descriptor.temporary;
-		this.files = new HashSet(descriptor.files);
-	}
-
-	public void addAllFiles(File file) {
-		if (file.isFile())
-			files.add(relativize(file));
-		else {
-			File absolute = file.isAbsolute() ? file : new File(location, file.getPath());
-			File[] list = absolute.listFiles();
-			for (int i = 0; i < list.length; i++)
-				addAllFiles(list[i]);
-		}
-	}
-
-	public void addFile(File file) {
-		files.add(relativize(file));
-	}
-
-	// do a simple relativization by removing all the bits before the location
-	private File relativize(File file) {
-		if (!file.isAbsolute())
-			return file;
-		String path = file.getPath();
-		if (!path.startsWith(location.getPath()))
-			throw new IllegalArgumentException(file.toString() + " must be related to " + location); //$NON-NLS-1$
-		path = path.substring(location.getPath().length());
-		// trim off any separator.  This accomodates people who set the location with a trailing /
-		if (path.startsWith("/") || path.startsWith("\\")) //$NON-NLS-1$//$NON-NLS-2$
-			path = path.substring(1);
-		return new File(path);
-	}
-
-	public void removeFile(File file) {
-		files.remove(relativize(file));
-	}
-
-	public void replace(File oldFile, File newFile) {
-		removeFile(oldFile);
-		addFile(newFile);
-	}
-
-	public File[] getFiles() {
-		File[] result = (File[]) files.toArray(new File[files.size()]);
-		for (int i = 0; i < result.length; i++)
-			result[i] = new File(location, result[i].getPath());
-		return result;
-	}
-
-	public String getExecutableName() {
-		return executableName;
-	}
-
-	public File getExecutable() {
-		return findExecutable(os, location, executableName);
-	}
-
-	public File getLocation() {
-		return location;
-	}
-
-	public void setLocation(File value) {
-		location = value;
-	}
-
-	public boolean isTemporary() {
-		return temporary;
-	}
-
-	public void setExecutableName(String value, boolean updateFiles) {
-		if (updateFiles)
-			updateExecutableName(value);
-		executableName = value;
-	}
-
-	public void makeTemporaryCopy() {
-		if (isTemporary())
-			return;
-		File tempFile = null;
-		try {
-			tempFile = File.createTempFile("p2.brandingIron", ""); //$NON-NLS-1$ //$NON-NLS-2$
-			tempFile.delete();
-			for (Iterator i = files.iterator(); i.hasNext();)
-				FileUtils.copy(location, tempFile, (File) i.next(), true);
-		} catch (IOException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error publishing artifacts", e)); //$NON-NLS-1$
-		}
-		location = tempFile;
-		temporary = true;
-	}
-
-	/**
-	 * If the executable represented by this descriptor has been branded then a mess
-	 * of files have been renamed.  Here scan the descriptor's file list and update the names
-	 * taking into accoun the different layout on different OSes.
-	 * @param newName the new name of the executable.
-	 */
-	private void updateExecutableName(String newName) {
-		if (newName.equalsIgnoreCase(executableName))
-			return;
-		String targetIni = executableName + ".ini"; //$NON-NLS-1$
-		String targetExecutable = executableName;
-		String executableExtension = Constants.OS_WIN32.equals(os) ? ".exe" : ""; //$NON-NLS-1$ //$NON-NLS-2$
-		targetExecutable = executableName + executableExtension;
-		for (Iterator i = files.iterator(); i.hasNext();) {
-			File file = (File) i.next();
-			String base = file.getParent();
-
-			// use String concatenation here because new File("", "foo") is absolute on at least windows...
-			base = base == null ? "" : base + "/"; //$NON-NLS-1$ //$NON-NLS-2$
-			if (Constants.OS_MACOSX.equals(os) && base.startsWith(executableName + ".app")) //$NON-NLS-1$
-				base = newName + ".app" + base.substring(executableName.length() + 4); //$NON-NLS-1$
-			if (file.getName().equalsIgnoreCase(targetExecutable))
-				replace(file, new File(base + newName + executableExtension));
-			else if (file.getName().equalsIgnoreCase(targetIni))
-				replace(file, new File(base + newName + ".ini")); //$NON-NLS-1$
-			else if (Constants.OS_MACOSX.equals(os))
-				replace(file, new File(base + file.getName()));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/FeaturesAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/FeaturesAction.java
deleted file mode 100644
index d1bd1e3..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/FeaturesAction.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.*;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.p2.publisher.features.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * Publish IUs for all of the features in the given set of locations.  The locations can 
- * be actual locations of the features or folders of features.
- */
-public class FeaturesAction extends AbstractPublishingAction {
-	public static final String INSTALL_FEATURES_FILTER = "(org.eclipse.update.install.features=true)"; //$NON-NLS-1$
-
-	protected Feature[] featureList;
-
-	public static String getTransformedId(String original, boolean isPlugin, boolean isGroup) {
-		return (isPlugin ? original : original + (isGroup ? ".feature.group" : ".feature.jar")); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	public static IArtifactKey createFeatureArtifactKey(String id, String version) {
-		return new ArtifactKey(MetadataGeneratorHelper.ECLIPSE_FEATURE_CLASSIFIER, id, new Version(version));
-	}
-
-	public FeaturesAction(File[] locations) {
-		featureList = getFeatures(expandLocations(locations));
-	}
-
-	public FeaturesAction(Feature[] featureList) {
-		this.featureList = featureList;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		generateFeatureIUs(featureList, results, info);
-		return Status.OK_STATUS;
-	}
-
-	private File[] expandLocations(File[] list) {
-		ArrayList result = new ArrayList();
-		expandLocations(list, result);
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	private void expandLocations(File[] list, ArrayList result) {
-		if (list == null)
-			return;
-		for (int i = 0; i < list.length; i++) {
-			File location = list[i];
-			if (location.isDirectory()) {
-				// if the location is itself a feature, just add it.  Otherwise r down
-				if (!new File(location, "feature.xml").exists())
-					expandLocations(location.listFiles(), result);
-				else
-					result.add(location);
-			} else {
-				result.add(location);
-			}
-		}
-	}
-
-	protected void generateFeatureIUs(Feature[] features, IPublisherResult result, IPublisherInfo info) {
-		// Build Feature IUs, and add them to any corresponding categories
-		for (int i = 0; i < features.length; i++) {
-			Feature feature = features[i];
-			// The IU hierarchy must be built from the bottom up so do the root files first.
-			ArrayList childIUs = generateRootFileIUs(feature, result, info);
-			IInstallableUnit featureIU = createFeatureJarIU(feature, childIUs, info);
-			publishFeatureArtifacts(feature, featureIU, info);
-			gatherBundleShapeAdvice(feature, info);
-			// create the associated group and register the feature and group in the result.
-			IInstallableUnit groupIU = createGroupIU(feature, featureIU, null);
-			result.addIU(groupIU, IPublisherResult.ROOT);
-			result.addIU(featureIU, IPublisherResult.ROOT);
-		}
-	}
-
-	protected IInstallableUnit createFeatureJarIU(Feature feature, ArrayList childIUs, IPublisherInfo info) {
-		// create the basic feature IU with all the children
-		String location = feature.getLocation();
-		boolean isExploded = (location.endsWith(".jar") ? false : true); //$NON-NLS-1$
-		Properties props = getFeatureAdvice(feature, info);
-		IInstallableUnit featureIU = createFeatureJarIU(feature, childIUs, isExploded, props);
-		return featureIU;
-	}
-
-	protected void publishFeatureArtifacts(Feature feature, IInstallableUnit featureIU, IPublisherInfo info) {
-		// add all the artifacts associated with the feature
-		// TODO this is a little strange.  If there are several artifacts, how do we know which files go with
-		// which artifacts when we publish them?  For now it would be surprising to have more than one
-		// artifact per feature IU.
-		IArtifactKey[] artifacts = featureIU.getArtifacts();
-		for (int j = 0; j < artifacts.length; j++) {
-			File file = new File(feature.getLocation());
-			IArtifactDescriptor ad = MetadataGeneratorHelper.createArtifactDescriptor(artifacts[j], file);
-			// if the artifact is a dir and we are not doing "AS_IS", zip it up.
-			if (file.isDirectory() && !((info.getArtifactOptions() & IPublisherInfo.A_AS_IS) > 0))
-				publishArtifact(ad, file.listFiles(), info, INCLUDE_ROOT);
-			else
-				publishArtifact(ad, new File[] {file}, info, AS_IS | INCLUDE_ROOT);
-		}
-	}
-
-	private Properties getFeatureAdvice(Feature feature, IPublisherInfo info) {
-		Properties result = new Properties();
-		Collection advice = info.getAdvice(null, false, null, null, IFeatureAdvice.class);
-		for (Iterator i = advice.iterator(); i.hasNext();) {
-			IFeatureAdvice entry = (IFeatureAdvice) i.next();
-			Properties props = entry.getProperties(feature, null);
-			if (props != null)
-				result.putAll(props);
-		}
-		return result;
-	}
-
-	protected ArrayList generateRootFileIUs(Feature feature, IPublisherResult result, IPublisherInfo info) {
-		File location = new File(feature.getLocation());
-		Properties props = loadProperties(location, "build.properties");
-		return generateRootFileIUs(feature.getId(), feature.getVersion(), props, location, result, info);
-	}
-
-	private ArrayList generateRootFileIUs(String featureId, String featureVersion, Properties props, File location, IPublisherResult result, IPublisherInfo info) {
-		ArrayList ius = new ArrayList();
-		FileSetDescriptor[] rootFileDescriptors = getRootFileDescriptors(props);
-		for (int i = 0; i < rootFileDescriptors.length; i++) {
-			IInstallableUnit iu = generateRootFileIU(featureId, featureVersion, location, rootFileDescriptors[i], result, info);
-			ius.add(iu);
-		}
-		return ius;
-	}
-
-	private Properties loadProperties(File location, String file) {
-		Properties props = new Properties();
-		File tempFile = null;
-		try {
-			// if the feature is a dir then just return the location
-			if (!location.isDirectory()) {
-				// otherwise extract the JAR into a temp location and return that location
-				tempFile = File.createTempFile("p2.generator", ""); //$NON-NLS-1$ //$NON-NLS-2$
-				FileUtils.unzipFile(location, tempFile);
-				location = tempFile;
-			}
-			try {
-				InputStream in = null;
-				try {
-					in = new BufferedInputStream(new FileInputStream(new File(location, file))); //$NON-NLS-1$
-					props.load(in);
-				} finally {
-					if (in != null)
-						in.close();
-				}
-			} catch (FileNotFoundException e) {
-				// ignore if it is just a file not found.
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error parsing " + file, e)); //$NON-NLS-1$
-			}
-		} catch (IOException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error publishing artifacts", e)); //$NON-NLS-1$
-		} finally {
-			if (tempFile != null)
-				tempFile.delete();
-		}
-		return props;
-	}
-
-	private IInstallableUnit generateRootFileIU(String featureId, String featureVersion, File location, FileSetDescriptor rootFile, IPublisherResult result, IPublisherInfo info) {
-		Object[] iuAndFiles = MetadataGeneratorHelper.createFeatureRootFileIU(featureId, featureVersion, location, rootFile);
-		IInstallableUnit iuResult = (IInstallableUnit) iuAndFiles[0];
-		File[] fileResult = (File[]) iuAndFiles[1];
-		if (fileResult != null && fileResult.length > 0) {
-			IArtifactKey artifact = iuResult.getArtifacts()[0];
-			ArtifactDescriptor descriptor = new ArtifactDescriptor(artifact);
-			publishArtifact(descriptor, fileResult, info, 0);
-		}
-		result.addIU(iuResult, IPublisherResult.NON_ROOT);
-		return iuResult;
-	}
-
-	protected FileSetDescriptor[] getRootFileDescriptors(Properties props) {
-		HashMap result = new HashMap();
-		for (Iterator i = props.keySet().iterator(); i.hasNext();) {
-			String property = (String) i.next();
-			// we only care about root properties
-			if (!property.startsWith("root.")) //$NON-NLS-1$
-				continue;
-			String[] spec = getArrayFromString(property, "."); //$NON-NLS-1$
-			String descriptorKey = spec[0];
-			String configSpec = null;
-			// if the spec is 4 or more then there must be a config involved to get it
-			if (spec.length > 3) {
-				configSpec = createConfigSpec(spec[2], spec[1], spec[3]);
-				descriptorKey += "." + createIdString(configSpec); //$NON-NLS-1$
-			}
-
-			FileSetDescriptor descriptor = (FileSetDescriptor) result.get(descriptorKey);
-			if (descriptor == null) {
-				descriptor = new FileSetDescriptor(descriptorKey, configSpec);
-				result.put(descriptorKey, descriptor);
-			}
-			// if the last segment in the spec is "link" 
-			if (spec[spec.length - 1] == "link") //$NON-NLS-1$
-				descriptor.setLinks(props.getProperty(property));
-			else {
-				// if the second last segment is "permissions" 
-				if (spec[spec.length - 2].equals("permissions")) //$NON-NLS-1$
-					descriptor.addPermissions(new String[] {spec[spec.length - 1], props.getProperty(property)});
-				else {
-					// so it is not a link or a permissions, it must be a straight file copy (with or without a config)
-					descriptor.setFiles(props.getProperty(property));
-				}
-			}
-		}
-		Collection values = result.values();
-		return (FileSetDescriptor[]) values.toArray(new FileSetDescriptor[values.size()]);
-	}
-
-	/**
-	 * Gather any advice we can from the given feature.  In particular, it may have
-	 * information about the shape of the bundles it includes.  The discovered advice is
-	 * added to the given result.
-	 * @param feature the feature to process
-	 * @param info the publishing info to update
-	 */
-	public void gatherBundleShapeAdvice(Feature feature, IPublisherInfo info) {
-		FeatureEntry entries[] = feature.getEntries();
-		for (int i = 0; i < entries.length; i++) {
-			FeatureEntry entry = entries[i];
-			if (entry.isUnpack())
-				info.addAdvice(new BundleShapeAdvice(entry.getId(), new Version(entry.getVersion()), IBundleShapeAdvice.DIR));
-		}
-	}
-
-	public IInstallableUnit createFeatureJarIU(Feature feature, ArrayList childIUs, boolean isExploded, Properties extraProperties) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		String id = getTransformedId(feature.getId(), /*isPlugin*/false, /*isGroup*/false);
-		iu.setId(id);
-		Version version = new Version(feature.getVersion());
-		iu.setVersion(version);
-		if (feature.getLicense() != null)
-			iu.setLicense(new License(feature.getLicenseURL(), feature.getLicense()));
-		if (feature.getCopyright() != null)
-			iu.setCopyright(new Copyright(feature.getCopyrightURL(), feature.getCopyright()));
-
-		// The required capabilities are not specified at this level because we don't want the feature jar to be attractive to install.
-
-		iu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_OSGI);
-		iu.setFilter(INSTALL_FEATURES_FILTER);
-		iu.setSingleton(true);
-
-		if (feature.getInstallHandler() != null && feature.getInstallHandler().trim().length() > 0) {
-			String installHandlerProperty = "handler=" + feature.getInstallHandler(); //$NON-NLS-1$
-
-			if (feature.getInstallHandlerLibrary() != null)
-				installHandlerProperty += ", library=" + feature.getInstallHandlerLibrary(); //$NON-NLS-1$
-
-			if (feature.getInstallHandlerURL() != null)
-				installHandlerProperty += ", url=" + feature.getInstallHandlerURL(); //$NON-NLS-1$
-
-			iu.setProperty(MetadataGeneratorHelper.ECLIPSE_INSTALL_HANDLER_PROP, installHandlerProperty);
-		}
-
-		iu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(id, version), MetadataGeneratorHelper.FEATURE_CAPABILITY, MetadataFactory.createProvidedCapability(MetadataGeneratorHelper.CAPABILITY_NS_UPDATE_FEATURE, feature.getId(), version)});
-		iu.setArtifacts(new IArtifactKey[] {createFeatureArtifactKey(feature.getId(), version.toString())});
-
-		// link in all the children (if any) as requirements.
-		// TODO consider if these should be linked as exact version numbers.  Should be ok but may be brittle.
-		if (childIUs != null) {
-			RequiredCapability[] required = new RequiredCapability[childIUs.size()];
-			for (int i = 0; i < childIUs.size(); i++) {
-				IInstallableUnit child = (IInstallableUnit) childIUs.get(i);
-				required[i] = MetadataFactory.createRequiredCapability(MetadataGeneratorHelper.IU_NAMESPACE, child.getId(), new VersionRange(child.getVersion(), true, child.getVersion(), true), INSTALL_FEATURES_FILTER, false, false);
-			}
-			iu.setRequiredCapabilities(required);
-		}
-
-		if (isExploded) {
-			// Define the immutable metadata for this IU. In this case immutable means
-			// that this is something that will not impact the configuration.
-			Map touchpointData = new HashMap();
-			touchpointData.put("zipped", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-			iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		}
-
-		if (extraProperties != null) {
-			Enumeration e = extraProperties.propertyNames();
-			while (e.hasMoreElements()) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	public IInstallableUnit createGroupIU(Feature feature, IInstallableUnit featureIU, Properties extraProperties) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		String id = getTransformedId(feature.getId(), /*isPlugin*/false, /*isGroup*/true);
-		iu.setId(id);
-		Version version = new Version(feature.getVersion());
-		iu.setVersion(version);
-		iu.setProperty(IInstallableUnit.PROP_NAME, feature.getLabel());
-		if (feature.getLicense() != null)
-			iu.setLicense(new License(feature.getLicenseURL(), feature.getLicense()));
-		if (feature.getCopyright() != null)
-			iu.setCopyright(new Copyright(feature.getCopyrightURL(), feature.getCopyright()));
-		iu.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, new VersionRange(new Version(0, 0, 0), true, new Version(feature.getVersion()), false), IUpdateDescriptor.NORMAL, null));
-
-		// generate requirements for the feature inclusions/requirement 
-		FeatureEntry entries[] = feature.getEntries();
-		RequiredCapability[] required = new RequiredCapability[entries.length + 1];
-		for (int i = 0; i < entries.length; i++) {
-			VersionRange range = getVersionRange(entries[i]);
-			required[i] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, getTransformedId(entries[i].getId(), entries[i].isPlugin(), /*isGroup*/true), range, getFilter(entries[i]), entries[i].isOptional(), false);
-		}
-		required[entries.length] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, featureIU.getId(), new VersionRange(featureIU.getVersion(), true, featureIU.getVersion(), true), INSTALL_FEATURES_FILTER, false, false);
-		iu.setRequiredCapabilities(required);
-		iu.setTouchpointType(TouchpointType.NONE);
-		iu.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString());
-		// TODO: shouldn't the filter for the group be constructed from os, ws, arch, nl
-		// 		 of the feature?
-		// iu.setFilter(filter);
-		iu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(id, version)});
-
-		if (extraProperties != null) {
-			Enumeration e = extraProperties.propertyNames();
-			while (e.hasMoreElements()) {
-				String name = (String) e.nextElement();
-				iu.setProperty(name, extraProperties.getProperty(name));
-			}
-		}
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	public VersionRange getVersionRange(FeatureEntry entry) {
-		String versionSpec = entry.getVersion();
-		if (versionSpec == null)
-			// TODO should really be returning VersionRange.emptyRange here...
-			return null;
-		Version version = new Version(versionSpec);
-		// if this is an includes then return either a completely open range (if the verison is 0.0.0)
-		// or an exact range
-		if (!entry.isRequires()) {
-			if (version.equals(Version.emptyVersion))
-				return VersionRange.emptyRange;
-			return new VersionRange(version, true, version, true);
-		}
-		String match = entry.getMatch();
-		if (match == null)
-			// TODO should really be returning VersionRange.emptyRange here...
-			return null;
-		if (match.equals("perfect")) //$NON-NLS-1$
-			return new VersionRange(version, true, version, true);
-		if (match.equals("equivalent")) { //$NON-NLS-1$
-			Version upper = new Version(version.getMajor(), version.getMinor() + 1, 0);
-			return new VersionRange(version, true, upper, false);
-		}
-		if (match.equals("compatible")) { //$NON-NLS-1$
-			Version upper = new Version(version.getMajor() + 1, 0, 0);
-			return new VersionRange(version, true, upper, false);
-		}
-		if (match.equals("greaterOrEqual")) //$NON-NLS-1$
-			return new VersionRange(version, true, new VersionRange(null).getMaximum(), true);
-		return null;
-	}
-
-	public String getFilter(FeatureEntry entry) {
-		StringBuffer result = new StringBuffer();
-		result.append("(&"); //$NON-NLS-1$
-		if (entry.getFilter() != null)
-			result.append(entry.getFilter());
-		if (entry.getOS() != null)
-			result.append("(osgi.os=" + entry.getOS() + ')');//$NON-NLS-1$
-		if (entry.getWS() != null)
-			result.append("(osgi.ws=" + entry.getWS() + ')');//$NON-NLS-1$
-		if (entry.getArch() != null)
-			result.append("(osgi.arch=" + entry.getArch() + ')');//$NON-NLS-1$
-		if (entry.getNL() != null)
-			result.append("(osgi.nl=" + entry.getNL() + ')');//$NON-NLS-1$
-		if (result.length() == 2)
-			return null;
-		result.append(')');
-		return result.toString();
-	}
-
-	protected Feature[] getFeatures(File[] locations) {
-		ArrayList result = new ArrayList(locations.length);
-		for (int i = 0; i < locations.length; i++) {
-			Feature feature = new FeatureParser().parse(locations[i]);
-			if (feature != null) {
-				feature.setLocation(locations[i].getAbsolutePath());
-				result.add(feature);
-			}
-		}
-		return (Feature[]) result.toArray(new Feature[result.size()]);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleAdvice.java
deleted file mode 100644
index 0f6aa6a..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleAdvice.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.util.Properties;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-
-public interface IBundleAdvice extends IPublishingAdvice {
-
-	/**
-	 * Returns the set of extra properties to be associated with the IU for the bundle
-	 * at the given location
-	 * @param location the location of the feature to advise
-	 * @return extra properties for the given feature
-	 */
-	public Properties getProperties(File location);
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleShapeAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleShapeAdvice.java
deleted file mode 100644
index 9a0d91c..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IBundleShapeAdvice.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.equinox.internal.p2.publisher.BundleDescriptionFactory;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-
-public interface IBundleShapeAdvice extends IPublishingAdvice {
-	public static final String DIR = BundleDescriptionFactory.DIR;
-	public static final String JAR = BundleDescriptionFactory.JAR;
-
-	public String getShape();
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IConfigAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IConfigAdvice.java
deleted file mode 100644
index 640652d..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IConfigAdvice.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.util.Properties;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-
-public interface IConfigAdvice extends IPublishingAdvice {
-
-	public static final String ID = "config_advice"; //$NON-NLS-1$
-
-	public BundleInfo[] getBundles();
-
-	public Properties getProperties();
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IFeatureAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IFeatureAdvice.java
deleted file mode 100644
index d13a82d..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IFeatureAdvice.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.util.Properties;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-import org.eclipse.equinox.internal.p2.publisher.features.Feature;
-
-public interface IFeatureAdvice extends IPublishingAdvice {
-
-	/**
-	 * Returns the set of extra properties to be associated with the IU for the feature
-	 * at the given location
-	 * @param location the location of the feature to advise
-	 * @return extra properties for the given feature
-	 */
-	public Properties getProperties(Feature feature, File location);
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ILaunchingAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ILaunchingAdvice.java
deleted file mode 100644
index 91aaf06..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ILaunchingAdvice.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-
-public interface ILaunchingAdvice extends IPublishingAdvice {
-
-	public String[] getVMArguments();
-
-	public String[] getProgramArguments();
-
-	public String getExecutableName();
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootFilesAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootFilesAdvice.java
deleted file mode 100644
index 3187599..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootFilesAdvice.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-
-public interface IRootFilesAdvice extends IPublishingAdvice {
-
-	public File getRoot();
-
-	public File[] getIncludedFiles();
-
-	public File[] getExcludedFiles();
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootIUAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootIUAdvice.java
deleted file mode 100644
index 2b68e32..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IRootIUAdvice.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.util.Collection;
-
-public interface IRootIUAdvice {
-
-	/**
-	 * Returns the list of children of the root for this publishing operation.
-	 * Returned elements are either the String id of the IUs or the IUs themselves.
-	 * @return the collection of children
-	 */
-	public Collection getChildren();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IVersionAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IVersionAdvice.java
deleted file mode 100644
index 543cebb..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/IVersionAdvice.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-import org.osgi.framework.Version;
-
-public interface IVersionAdvice extends IPublishingAdvice {
-
-	public static final String ID = "version_advice"; //$NON-NLS-1$
-	public static final String NS_BUNDLE = "bundle"; //$NON-NLS-1$
-	public static final String NS_FEATURE = "feature"; //$NON-NLS-1$
-	public static final String NS_ROOT = "root"; //$NON-NLS-1$
-
-	/**
-	 * Returns the version advice for the given id in the given namespace.
-	 * @param namespace the namespace in which to look for advice
-	 * @param id the item for which advice is sought
-	 * @return the version advice found or <code>null</code> if none
-	 */
-	public Version getVersion(String namespace, String id);
-
-	/**
-	 * Sets the version advice for the given id in the given namespace.
-	 * @param namespace the namespace in which to look for advice
-	 * @param id the item for which advice is sought
-	 * @param version the version advice for the given id or <code>null</code> to remove advice
-	 */
-	public void setVersion(String namespace, String id, Version version);
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/JREAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/JREAction.java
deleted file mode 100644
index ba93e92..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/JREAction.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-
-public class JREAction extends AbstractPublishingAction {
-
-	private File location;
-
-	public JREAction(IPublisherInfo info, File location) {
-		this.location = location;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		IArtifactDescriptor artifact = MetadataGeneratorHelper.createJREData(location, results);
-		if (artifact != null)
-			publishArtifact(artifact, new File[] {location}, info, INCLUDE_ROOT);
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LaunchingAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LaunchingAdvice.java
deleted file mode 100644
index 7649995..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LaunchingAdvice.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.equinox.internal.provisional.frameworkadmin.LauncherData;
-
-public class LaunchingAdvice extends AbstractAdvice implements ILaunchingAdvice {
-
-	private LauncherData data;
-	private String configSpec;
-
-	public LaunchingAdvice(LauncherData data, String configSpec) {
-		this.data = data;
-		this.configSpec = configSpec;
-	}
-
-	protected String getConfigSpec() {
-		return configSpec;
-	}
-
-	public String[] getProgramArguments() {
-		return data.getProgramArgs();
-	}
-
-	public String[] getVMArguments() {
-		return data.getJvmArgs();
-	}
-
-	public String getExecutableName() {
-		return data.getLauncherName();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LocalUpdateSiteAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LocalUpdateSiteAction.java
deleted file mode 100644
index 8f8bf14..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/LocalUpdateSiteAction.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.p2.publisher.features.UpdateSite;
-
-/**
- * A publishing action that processes a local (File-based) update site and generates
- * metadata and artifacts for the features, bundles and site index (categories etc).
- */
-public class LocalUpdateSiteAction implements IPublishingAction {
-	protected String source;
-	private UpdateSite updateSite;
-
-	protected LocalUpdateSiteAction() {
-	}
-
-	public LocalUpdateSiteAction(String source) {
-		this.source = source;
-	}
-
-	public LocalUpdateSiteAction(UpdateSite updateSite) {
-		this.updateSite = updateSite;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		IPublishingAction[] actions = createActions();
-		for (int i = 0; i < actions.length; i++)
-			actions[i].perform(info, results);
-		return Status.OK_STATUS;
-	}
-
-	protected IPublishingAction[] createActions() {
-		createAdvice();
-		ArrayList result = new ArrayList();
-		// create an action that just publishes the raw bundles and features
-		IPublishingAction action = new MergeResultsAction(new IPublishingAction[] {createFeaturesAction(), createBundlesAction()}, IPublisherResult.MERGE_ALL_NON_ROOT);
-		result.add(action);
-		result.add(createSiteXMLAction());
-		return (IPublishingAction[]) result.toArray(new IPublishingAction[result.size()]);
-	}
-
-	private IPublishingAction createSiteXMLAction() {
-		if (updateSite != null)
-			return new SiteXMLAction(updateSite);
-		if (source != null) {
-			try {
-				return new SiteXMLAction(new File(source, "site.xml").toURL()); //$NON-NLS-1$
-			} catch (MalformedURLException e) {
-				// never happens
-				return null;
-			}
-		}
-		return null;
-	}
-
-	private void createAdvice() {
-	}
-
-	protected IPublishingAction createFeaturesAction() {
-		return new FeaturesAction(new File[] {new File(source, "features")}); //$NON-NLS-1$
-	}
-
-	protected IPublishingAction createBundlesAction() {
-		return new BundlesAction(new File[] {new File(source, "plugins")}); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/MergeResultsAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/MergeResultsAction.java
deleted file mode 100644
index fa8ccdf..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/MergeResultsAction.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-
-public class MergeResultsAction extends AbstractPublishingAction {
-
-	private IPublishingAction[] actions;
-	private int mode;
-
-	public MergeResultsAction(IPublishingAction[] actions, int mode) {
-		this.actions = actions;
-		this.mode = mode;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		for (int i = 0; i < actions.length; i++) {
-			IPublishingAction action = actions[i];
-			IPublisherResult result = new PublisherResult();
-			action.perform(info, result);
-			results.merge(result, mode);
-		}
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductAction.java
deleted file mode 100644
index 795ea51..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductAction.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.util.*;
-import org.eclipse.equinox.internal.p2.publisher.IPublisherResult;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAction;
-import org.eclipse.equinox.internal.p2.publisher.features.ProductFile;
-
-public class ProductAction extends EclipseInstallAction {
-
-	private String productLocation;
-	private File executablesFeatureLocation;
-
-	public ProductAction(String source, String productLocation, String flavor, File executablesFeatureLocation) {
-		super();
-		this.source = source;
-		this.flavor = flavor;
-		this.executablesFeatureLocation = executablesFeatureLocation;
-		this.productLocation = productLocation;
-	}
-
-	protected IPublishingAction[] createActions() {
-		// generate the advice we can up front.
-		createAdvice();
-
-		// create all the actions needed to publish a product
-		ArrayList result = new ArrayList();
-		// if we have a source location then create actions that publishes the bundles 
-		// and features as well as the root files, launchers, etc.
-		if (source != null) {
-			IPublishingAction action = new MergeResultsAction(new IPublishingAction[] {createFeaturesAction(), createBundlesAction()}, IPublisherResult.MERGE_ALL_NON_ROOT);
-			result.add(action);
-			result.add(createEquinoxLauncherFragmentsAction());
-		}
-		// products include the executable so add actions to publish them
-		result.addAll(createExecutablesActions(info.getConfigurations()));
-		// add the actions that just configure things.
-		result.add(createJREAction());
-		result.add(createConfigCUsAction());
-		result.add(createDefaultCUsAction());
-		result.add(createRootIUAction());
-		return (IPublishingAction[]) result.toArray(new IPublishingAction[result.size()]);
-	}
-
-	private ProductFile loadProduct() {
-		ProductFile product = null;
-		try {
-			product = new ProductFile(productLocation);
-		} catch (Exception e) {
-			//TODO
-		}
-		if (product == null)
-			throw new IllegalArgumentException("unable to load product file"); //$NON-NLS-1$
-		return product;
-	}
-
-	private void createAdvice() {
-		ProductFile product = loadProduct();
-		createProductAdvice(product);
-		createRootAdvice(product);
-	}
-
-	protected void createRootAdvice(ProductFile product) {
-		Collection list;
-		if (product.useFeatures())
-			list = listElements(product.getFeatures(), ".feature.group"); //$NON-NLS-1$
-		else
-			list = listElements(product.getBundles(true), ""); //$NON-NLS-1$
-		info.addAdvice(new RootIUAdvice(list));
-	}
-
-	private void createProductAdvice(ProductFile product) {
-		id = product.getId();
-		version = product.getVersion();
-		name = product.getId();
-
-		String[] configSpecs = info.getConfigurations();
-		for (int i = 0; i < configSpecs.length; i++)
-			info.addAdvice(new ProductFileAdvice(product, configSpecs[i]));
-	}
-
-	protected Collection createExecutablesActions(String[] configSpecs) {
-		Collection result = new ArrayList(configSpecs.length);
-		for (int i = 0; i < configSpecs.length; i++) {
-			ExecutablesDescriptor executables = computeExecutables(configSpecs[i]);
-			IPublishingAction action = new BrandedExecutableAction(executables, productLocation, flavor, configSpecs[i]);
-			result.add(action);
-		}
-		return result;
-	}
-
-	protected ExecutablesDescriptor computeExecutables(String configSpec) {
-		// if we know about the executables feature then use it as the source
-		File location = getExecutablesFeatureLocation();
-		if (location != null) {
-			ExecutablesDescriptor result = ExecutablesDescriptor.createExecutablesFromFeature(location, configSpec);
-			if (result != null)
-				return result;
-		}
-		// otherwise, assume that we are running against an Eclipse install and do the default thing
-		return super.computeExecutables(configSpec);
-	}
-
-	private File getExecutablesFeatureLocation() {
-		if (executablesFeatureLocation != null)
-			return executablesFeatureLocation;
-		if (source == null)
-			return null;
-		// The executables were not explicitly located but the source was so poke around and see if 
-		// we can find something
-		// TODO implement this
-		return null;
-	}
-
-	private Collection listElements(List elements, String suffix) {
-		ArrayList result = new ArrayList(elements.size());
-		for (Iterator i = elements.iterator(); i.hasNext();)
-			result.add(((String) i.next()) + suffix);
-		return result;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductFileAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductFileAdvice.java
deleted file mode 100644
index cce7fdd..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/ProductFileAdvice.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.util.*;
-import org.eclipse.equinox.internal.p2.publisher.AbstractPublishingAction;
-import org.eclipse.equinox.internal.p2.publisher.features.ProductFile;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.ConfigData;
-
-/**
- * Provide advice derived from the .product file.  The product can give some info on 
- * launching as well as the configuration (bundles, properties, ...)
- */
-public class ProductFileAdvice extends AbstractAdvice implements ILaunchingAdvice, IConfigAdvice {
-
-	private ProductFile product;
-	private String configSpec;
-	private String os;
-	private ConfigData configData = null;
-
-	public ProductFileAdvice(ProductFile product, String configSpec) {
-		this.product = product;
-		this.configSpec = configSpec;
-		os = AbstractPublishingAction.parseConfigSpec(configSpec)[1];
-		configData = getConfigData();
-	}
-
-	private ConfigData getConfigData() {
-		DataLoader loader = createDataLoader();
-		ConfigData result;
-		if (loader != null)
-			result = loader.getConfigData();
-		else
-			result = generateConfigData();
-		result.setFwIndependentProp("eclipse.product", product.getId()); //$NON-NLS-1$
-		String location = getSplashLocation();
-		if (location != null)
-			result.setFwIndependentProp("osgi.splashPath", location); //$NON-NLS-1$
-		return result;
-	}
-
-	private ConfigData generateConfigData() {
-		ConfigData result = new ConfigData(null, null, null, null);
-		if (product.useFeatures())
-			return result;
-
-		// TODO need to do something more interesting here.  What if update.config is around?
-		// what if the product is p2 based or simpleconfig is in the list?
-		List bundles = product.getBundles(true);
-		for (Iterator i = bundles.iterator(); i.hasNext();) {
-			String id = (String) i.next();
-			BundleInfo bundleInfo = new BundleInfo();
-			bundleInfo.setSymbolicName(id);
-			result.addBundle(bundleInfo);
-		}
-		return result;
-	}
-
-	private String getSplashLocation() {
-		// TODO implement this
-		return null;
-	}
-
-	protected String getConfigSpec() {
-		return configSpec;
-	}
-
-	public String[] getProgramArguments() {
-		String line = product.getProgramArguments(os);
-		return AbstractPublishingAction.getArrayFromString(line, " "); //$NON-NLS-1$
-	}
-
-	public String[] getVMArguments() {
-		String line = product.getVMArguments(os);
-		return AbstractPublishingAction.getArrayFromString(line, " "); //$NON-NLS-1$
-	}
-
-	protected boolean matchConfig(String spec, boolean includeDefault) {
-		String targetOS = AbstractPublishingAction.parseConfigSpec(spec)[1];
-		return os.equals(targetOS);
-	}
-
-	public BundleInfo[] getBundles() {
-		return configData.getBundles();
-	}
-
-	public Properties getProperties() {
-		Properties result = new Properties();
-		result.putAll(configData.getFwDependentProps());
-		result.putAll(configData.getFwIndependentProps());
-		return result;
-	}
-
-	private DataLoader createDataLoader() {
-		String location = product.getConfigIniPath(os);
-		if (location == null)
-			location = product.getConfigIniPath(null);
-		if (location == null)
-			return null;
-		File configFile = new File(location);
-		if (!configFile.isAbsolute())
-			configFile = new File(product.getLocation().getParentFile(), location);
-		// TODO need to figure out what to do for the launcher location here...
-		// for now just give any old path that has a parent
-		return new DataLoader(configFile, new File(product.getLauncherName()).getAbsoluteFile());
-	}
-
-	public String getExecutableName() {
-		return product.getLauncherName();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAction.java
deleted file mode 100644
index cd66562..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAction.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class RootFilesAction extends AbstractPublishingAction {
-	private String idBase;
-	private String versionSpec = "1.0.0"; //$NON-NLS-1$
-	private String flavor;
-
-	public RootFilesAction(IPublisherInfo info, String idBase, String version, String flavor) {
-		this.idBase = idBase == null ? "org.eclipse" : idBase; //$NON-NLS-1$
-		// if the given version is not the default "replace me" version then save it
-		if (version != null && !version.equals("0.0.0")) //$NON-NLS-1$
-			this.versionSpec = version;
-		this.flavor = flavor;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		String[] configSpecs = info.getConfigurations();
-		for (int i = 0; i < configSpecs.length; i++)
-			generateRootFileIUs(configSpecs[i], info, results);
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Generates IUs and CUs for the files that make up the root files for a given
-	 * ws/os/arch combination.
-	 */
-	protected void generateRootFileIUs(String configSpec, IPublisherInfo info, IPublisherResult result) {
-		// Create the IU for the executable
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setSingleton(true);
-		String idPrefix = idBase + ".rootfiles"; //$NON-NLS-1$
-		String iuId = idPrefix + '.' + createIdString(configSpec);
-		iu.setId(iuId);
-		Version version = new Version(versionSpec);
-		iu.setVersion(version);
-		String filter = createFilterSpec(configSpec);
-		iu.setFilter(filter);
-		IArtifactKey key = MetadataGeneratorHelper.createLauncherArtifactKey(iuId, version);
-		iu.setArtifacts(new IArtifactKey[] {key});
-		iu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_NATIVE);
-		ProvidedCapability launcherCapability = MetadataFactory.createProvidedCapability(flavor + idBase, idPrefix, version); //$NON-NLS-1$
-		iu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(iuId, version), launcherCapability});
-		result.addIU(MetadataFactory.createInstallableUnit(iu), IPublisherResult.ROOT);
-
-		// Create the CU that installs/configures the executable
-		InstallableUnitFragmentDescription cu = new InstallableUnitFragmentDescription();
-		String configUnitId = flavor + iuId;
-		cu.setId(configUnitId);
-		cu.setVersion(version);
-		cu.setFilter(filter);
-		cu.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iuId, new VersionRange(version, true, version, true), null, false, false)});
-		cu.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-
-		//TODO bug 218890, would like the fragment to provide the launcher capability as well, but can't right now.
-		cu.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(configUnitId, version)});
-
-		cu.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_NATIVE);
-		Map touchpointData = new HashMap();
-		String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("install", configurationData); //$NON-NLS-1$
-		String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$
-		touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$
-		cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		IInstallableUnit unit = MetadataFactory.createInstallableUnit(cu);
-		result.addIU(unit, IPublisherResult.ROOT);
-
-		//Create the artifact descriptor.  we have several files so no path on disk
-		IArtifactDescriptor descriptor = MetadataGeneratorHelper.createArtifactDescriptor(key, null);
-		IRootFilesAdvice advice = getAdvice(configSpec, info);
-		publishArtifact(descriptor, filterRootFiles(advice, info), advice.getRoot(), info, INCLUDE_ROOT);
-	}
-
-	private File[] filterRootFiles(IRootFilesAdvice advice, IPublisherInfo info) {
-		File[] inclusions = advice.getIncludedFiles();
-		Set exclusions = new HashSet(Arrays.asList(advice.getExcludedFiles()));
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < inclusions.length; i++)
-			filterFile(inclusions[i], exclusions, result);
-		return (File[]) result.toArray(new File[result.size()]);
-	}
-
-	private void filterFile(File inclusion, Collection exclusions, ArrayList result) {
-		if (exclusions == null || !exclusions.contains(inclusion))
-			if (inclusion.isDirectory()) {
-				File[] list = inclusion.listFiles();
-				for (int i = 0; i < list.length; i++)
-					filterFile(list[i], exclusions, result);
-			} else
-				result.add(inclusion);
-	}
-
-	private IRootFilesAdvice getAdvice(String configSpec, IPublisherInfo info) {
-		Collection advice = info.getAdvice(configSpec, true, null, null, IRootFilesAdvice.class);
-		ArrayList inclusions = new ArrayList();
-		ArrayList exclusions = new ArrayList();
-		File root = null;
-		for (Iterator i = advice.iterator(); i.hasNext();) {
-			IRootFilesAdvice entry = (IRootFilesAdvice) i.next();
-			// TODO for now we simply get root from the first advice that has one
-			if (root == null)
-				root = entry.getRoot();
-			File[] list = entry.getIncludedFiles();
-			if (list != null)
-				inclusions.addAll(Arrays.asList(list));
-			list = entry.getExcludedFiles();
-			if (list != null)
-				exclusions.addAll(Arrays.asList(list));
-		}
-		File[] includeList = (File[]) inclusions.toArray(new File[inclusions.size()]);
-		File[] excludeList = (File[]) exclusions.toArray(new File[exclusions.size()]);
-		return new RootFilesAdvice(root, includeList, excludeList, configSpec);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAdvice.java
deleted file mode 100644
index b32295b..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootFilesAdvice.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.io.File;
-
-public class RootFilesAdvice extends AbstractAdvice implements IRootFilesAdvice {
-	private File root;
-	private File[] excludedFiles;
-	private File[] includedFiles;
-	private String configSpec;
-
-	public RootFilesAdvice(File root, File[] includedFiles, File[] excludedFiles, String configSpec) {
-		this.root = root;
-		this.excludedFiles = excludedFiles;
-		this.includedFiles = includedFiles;
-		this.configSpec = configSpec;
-	}
-
-	public File getRoot() {
-		return root;
-	}
-
-	protected String getConfigSpec() {
-		return configSpec;
-	}
-
-	public File[] getExcludedFiles() {
-		return excludedFiles;
-	}
-
-	public File[] getIncludedFiles() {
-		return includedFiles;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAction.java
deleted file mode 100644
index 0079a87..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAction.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.IQueryable;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * Create a top level IU that lists all the current roots as well as any explicitly identified
- * top level IUs.
- */
-public class RootIUAction extends AbstractPublishingAction {
-
-	private String version;
-	private String id;
-	private String name;
-	private IQueryable repositories;
-	private Collection versionAdvice;
-	private IPublisherInfo info;
-
-	public RootIUAction(String id, String version, String name, IPublisherInfo info) {
-		this.id = id;
-		this.version = version;
-		this.name = name;
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		this.info = info;
-		generateRootIU(results);
-		return Status.OK_STATUS;
-	}
-
-	protected void generateRootIU(IPublisherResult result) {
-		Collection children = getChildren(result);
-		InstallableUnitDescription descriptor = createTopLevelIUDescription(children, id, version, name, null, false);
-		IInstallableUnit rootIU = MetadataFactory.createInstallableUnit(descriptor);
-		if (rootIU == null)
-			return;
-		result.addIU(rootIU, IPublisherResult.NON_ROOT);
-
-		// TODO why do we create a category here?
-		//		result.addIU(generateDefaultCategory(rootIU, rootCategory), IPublisherResult.NON_ROOT);
-	}
-
-	private Collection getChildren(IPublisherResult result) {
-		// get any roots that we have accummulated so far and search for
-		// children from the advice.
-		Collection children = result.getIUs(null, IPublisherResult.ROOT);
-		Collection rootAdvice = info.getAdvice(null, true, null, null, IRootIUAdvice.class);
-		for (Iterator i = rootAdvice.iterator(); i.hasNext();) {
-			IRootIUAdvice advice = (IRootIUAdvice) i.next();
-			Collection list = advice.getChildren();
-			if (list != null)
-				for (Iterator j = list.iterator(); j.hasNext();) {
-					Object object = j.next();
-					// if the advice is a string, look it up in the result.  if not there then 
-					// query the known metadata repos
-					if (object instanceof String) {
-						String childId = (String) object;
-						IInstallableUnit iu = result.getIU(childId, null);
-						if (iu == null)
-							iu = queryFor(childId);
-						if (iu != null)
-							children.add(iu);
-					} else if (object instanceof IInstallableUnit)
-						children.add(object);
-				}
-		}
-		return children;
-	}
-
-	/**
-	 * Loop over the known metadata repositories looking for the given IU.
-	 * Return the first IU found.
-	 * @param iuId  the id of the IU to look for
-	 * @return the first matching IU or <code>null</code> if none.
-	 */
-	private IInstallableUnit queryFor(String iuId) {
-		InstallableUnitQuery query = new InstallableUnitQuery(iuId, getVersionAdvice(iuId));
-		if (repositories == null)
-			return null;
-		Collector result = repositories.query(query, new Collector(), new NullProgressMonitor());
-		if (!result.isEmpty())
-			return (IInstallableUnit) result.iterator().next();
-		return null;
-	}
-
-	protected static InstallableUnitDescription createTopLevelIUDescription(Collection children, String id, String version, String name, Collection requires, boolean configureLauncherData) {
-		InstallableUnitDescription root = new MetadataFactory.InstallableUnitDescription();
-		root.setSingleton(true);
-		root.setId(id);
-		root.setVersion(new Version(version));
-		root.setProperty(IInstallableUnit.PROP_NAME, name);
-
-		ArrayList requiredCapabilities = new ArrayList(children.size());
-		for (Iterator iterator = children.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			VersionRange range = new VersionRange(iu.getVersion(), true, iu.getVersion(), true);
-			//			boolean isOptional = checkOptionalRootDependency(iu);
-			requiredCapabilities.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), range, iu.getFilter(), false, false));
-		}
-		if (requires != null)
-			requiredCapabilities.addAll(requires);
-		root.setRequiredCapabilities((RequiredCapability[]) requiredCapabilities.toArray(new RequiredCapability[requiredCapabilities.size()]));
-		root.setArtifacts(new IArtifactKey[0]);
-
-		root.setProperty("lineUp", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-		root.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, VersionRange.emptyRange, IUpdateDescriptor.NORMAL, null));
-		root.setProperty(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString());
-		root.setCapabilities(new ProvidedCapability[] {MetadataGeneratorHelper.createSelfCapability(id, new Version(version))});
-		root.setTouchpointType(MetadataGeneratorHelper.TOUCHPOINT_OSGI);
-		return root;
-	}
-
-	private Version getVersionAdvice(String id) {
-		if (versionAdvice == null) {
-			versionAdvice = info.getAdvice(null, true, null, null, IVersionAdvice.class);
-			if (versionAdvice == null)
-				return null;
-		}
-		for (Iterator i = versionAdvice.iterator(); i.hasNext();) {
-			IVersionAdvice advice = (IVersionAdvice) i.next();
-			// TODO have to figure a way to know the namespace here.  for now just look everywhere
-			Version result = advice.getVersion(IVersionAdvice.NS_BUNDLE, id);
-			if (result != null)
-				return result;
-			result = advice.getVersion(IVersionAdvice.NS_FEATURE, id);
-			if (result != null)
-				return result;
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAdvice.java
deleted file mode 100644
index 568c7aa..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/RootIUAdvice.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.util.Collection;
-
-public class RootIUAdvice extends AbstractAdvice implements IRootIUAdvice {
-
-	private Collection children;
-
-	public RootIUAdvice(Collection children) {
-		this.children = children;
-	}
-
-	public Collection getChildren() {
-		return children;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/SiteXMLAction.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/SiteXMLAction.java
deleted file mode 100644
index 8134daa..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/SiteXMLAction.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.p2.publisher.features.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.osgi.framework.Version;
-
-/**
- * Action which processes a site.xml and generates categories.  The categorization process
- * relies on IUs for the various features to have already been generated.
- */
-public class SiteXMLAction extends AbstractPublishingAction {
-
-	private UpdateSite updateSite;
-	private SiteCategory defaultCategory;
-	private HashSet defaultCategorySet;
-
-	public SiteXMLAction(URL location) {
-		try {
-			updateSite = UpdateSite.load(location, new NullProgressMonitor());
-		} catch (ProvisionException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		initialize();
-	}
-
-	public SiteXMLAction(UpdateSite updateSite) {
-		this.updateSite = updateSite;
-		initialize();
-	}
-
-	private void initialize() {
-		defaultCategory = new SiteCategory();
-		defaultCategory.setDescription("Default category for otherwise uncategorized features"); //$NON-NLS-1$
-		defaultCategory.setLabel("Uncategorized"); //$NON-NLS-1$
-		defaultCategory.setName("Default"); //$NON-NLS-1$
-		defaultCategorySet = new HashSet(1);
-		defaultCategorySet.add(defaultCategory);
-	}
-
-	public IStatus perform(IPublisherInfo info, IPublisherResult results) {
-		generateCategories(info, results);
-		return Status.OK_STATUS;
-	}
-
-	private void generateCategories(IPublisherInfo info, IPublisherResult results) {
-		Map categoriesToFeatureIUs = new HashMap();
-		Map featuresToCategories = getFeatureToCategoryMappings(info);
-		for (Iterator i = featuresToCategories.keySet().iterator(); i.hasNext();) {
-			SiteFeature feature = (SiteFeature) i.next();
-			IInstallableUnit iu = getFeatureIU(feature, results);
-			Set categories = (Set) featuresToCategories.get(feature);
-			// if there are no categories for this feature then add it to the default category.
-			if (categories == null || categories.isEmpty())
-				categories = defaultCategorySet;
-			for (Iterator it = categories.iterator(); it.hasNext();) {
-				SiteCategory category = (SiteCategory) it.next();
-				Set featureIUs = (Set) categoriesToFeatureIUs.get(category);
-				if (featureIUs == null) {
-					featureIUs = new HashSet();
-					categoriesToFeatureIUs.put(category, featureIUs);
-				}
-				featureIUs.add(iu);
-			}
-		}
-		generateCategoryIUs(categoriesToFeatureIUs, results);
-	}
-
-	private IInstallableUnit getFeatureIU(SiteFeature feature, IPublisherResult results) {
-		String id = MetadataGeneratorHelper.getTransformedId(feature.getFeatureIdentifier(), false, true);
-		Version version = new Version(feature.getFeatureIdentifier());
-		// TODO look elsewhere as well.  Perhaps in the metadata repos and some advice.
-		Collection ius = results.getIUs(id, null);
-		for (Iterator i = ius.iterator(); i.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) i.next();
-			if (iu.getVersion().equals(version))
-				return iu;
-		}
-		return null;
-	}
-
-	/**
-	 * Computes the mapping of features to categories as defined in the site.xml,
-	 * if available. Returns an empty map if there is not site.xml, or no categories.
-	 * @return A map of SiteFeature -> Set<SiteCategory>.
-	 */
-	protected Map getFeatureToCategoryMappings(IPublisherInfo info) {
-		HashMap mappings = new HashMap();
-		if (updateSite == null)
-			return mappings;
-		SiteModel site = updateSite.getSite();
-		if (site == null)
-			return mappings;
-
-		//copy mirror information from update site to p2 repositories
-		String mirrors = site.getMirrorsURL();
-		if (mirrors != null) {
-			//remove site.xml file reference
-			int index = mirrors.indexOf("site.xml"); //$NON-NLS-1$
-			if (index != -1)
-				mirrors = mirrors.substring(0, index) + mirrors.substring(index + 9);
-			info.getMetadataRepository().setProperty(IRepository.PROP_MIRRORS_URL, mirrors);
-			info.getArtifactRepository().setProperty(IRepository.PROP_MIRRORS_URL, mirrors);
-		}
-
-		SiteFeature[] features = site.getFeatures();
-		for (int i = 0; i < features.length; i++) {
-			//add a mapping for each category this feature belongs to
-			String[] categoryNames = features[i].getCategoryNames();
-			Set categories = new HashSet();
-			mappings.put(features[i], categories);
-			for (int j = 0; j < categoryNames.length; j++) {
-				SiteCategory category = site.getCategory(categoryNames[j]);
-				if (category != null)
-					categories.add(category);
-			}
-		}
-		return mappings;
-	}
-
-	/**
-	 * Generates IUs corresponding to update site categories.
-	 * @param categoriesToFeatures Map of SiteCategory ->Set (Feature IUs in that category).
-	 * @param result The generator result being built
-	 */
-	protected void generateCategoryIUs(Map categoriesToFeatures, IPublisherResult result) {
-		for (Iterator it = categoriesToFeatures.keySet().iterator(); it.hasNext();) {
-			SiteCategory category = (SiteCategory) it.next();
-			result.addIU(MetadataGeneratorHelper.createCategoryIU(category, (Set) categoriesToFeatures.get(category), null), IPublisherResult.NON_ROOT);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/VersionAdvice.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/VersionAdvice.java
deleted file mode 100644
index c1ce9cd..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/actions/VersionAdvice.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Code 9 and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Code 9 - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.actions;
-
-import java.util.*;
-import org.eclipse.equinox.internal.p2.publisher.IPublishingAdvice;
-import org.osgi.framework.Version;
-
-public class VersionAdvice extends AbstractAdvice implements IVersionAdvice {
-
-	Map versions = new HashMap(11);
-
-	/**
-	 * Load the given namespace with version mappings from the properties file at 
-	 * the given location.  The properties file is expected to be in the normal format
-	 * produced and consumed by PDE Build.
-	 * @param namespace the namespace to populate
-	 * @param location the location of the mapping file
-	 */
-	public void load(String namespace, String location) {
-
-	}
-
-	public Version getVersion(String namespace, String id) {
-		Map values = (Map) versions.get(namespace);
-		// if no one says anything then don't say anything.  someone else might have an opinion
-		if (values == null)
-			return null;
-		return (Version) values.get(id);
-	}
-
-	public void setVersion(String namespace, String id, Version version) {
-		Map values = (Map) versions.get(namespace);
-		if (values == null) {
-			// if we are clearing values then there is nothing to do
-			if (version == null)
-				return;
-			values = new HashMap();
-			versions.put(namespace, values);
-		}
-		if (version == null)
-			values.remove(id);
-		else
-			values.put(id, version);
-	}
-
-	public IPublishingAdvice merge(IPublishingAdvice advice) {
-		if (!(advice instanceof VersionAdvice))
-			return this;
-		VersionAdvice source = (VersionAdvice) advice;
-		for (Iterator i = source.versions.keySet().iterator(); i.hasNext();) {
-			String namespace = (String) i.next();
-			Map myValues = (Map) versions.get(namespace);
-			Map sourceValues = (Map) source.versions.get(namespace);
-			if (myValues == null)
-				versions.put(namespace, sourceValues);
-			else if (sourceValues != null)
-				versions.put(namespace, merge(myValues, sourceValues));
-		}
-		return this;
-	}
-
-	private Map merge(Map myValues, Map sourceValues) {
-		Map result = new HashMap(myValues);
-		for (Iterator i = sourceValues.keySet().iterator(); i.hasNext();) {
-			String key = (String) i.next();
-			if (result.get(key) == null)
-				result.put(key, sourceValues.get(key));
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DefaultSiteParser.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DefaultSiteParser.java
deleted file mode 100644
index fa99d90..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DefaultSiteParser.java
+++ /dev/null
@@ -1,850 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.io.*;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.Tracing;
-import org.eclipse.equinox.internal.p2.metadata.repository.Activator;
-import org.eclipse.osgi.util.NLS;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Parses a site.xml file.
- * This class was initially copied from org.eclipse.update.core.model.DefaultSiteParser.
- */
-public class DefaultSiteParser extends DefaultHandler {
-
-	private static final String ARCHIVE = "archive"; //$NON-NLS-1$
-	private static final String CATEGORY = "category"; //$NON-NLS-1$
-	private static final String CATEGORY_DEF = "category-def"; //$NON-NLS-1$
-
-	//private static final String ASSOCIATE_SITES = "associateSites"; //$NON-NLS-1$
-	//	private static final String ASSOCIATE_SITE = "associateSite"; //$NON-NLS-1$
-	private static final String DEFAULT_INFO_URL = "index.html"; //$NON-NLS-1$
-	private static final String DESCRIPTION = "description"; //$NON-NLS-1$
-	private static final String FEATURE = "feature"; //$NON-NLS-1$
-	private static final String FEATURES = "features/"; //$NON-NLS-1$
-	private static final String MIRROR = "mirror"; //$NON-NLS-1$
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-	private static final String PLUGIN_ID = Activator.ID;
-	private static final String SITE = "site"; //$NON-NLS-1$
-
-	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_CATEGORY_DEF = 7;
-	private static final int STATE_DESCRIPTION_SITE = 6;
-	private static final int STATE_FEATURE = 2;
-	private static final int STATE_IGNORED_ELEMENT = -1;
-	private static final int STATE_INITIAL = 0;
-	private static final int STATE_SITE = 1;
-
-	private int currentState;
-
-	private boolean DESCRIPTION_SITE_ALREADY_SEEN = false;
-	// Current object stack (used to hold the current object we are
-	// populating in this plugin descriptor
-	Stack objectStack = new Stack();
-
-	private SAXParser parser;
-
-	// Current State Information
-	Stack stateStack = new Stack();
-
-	private MultiStatus status;
-
-	/*
-	 * 
-	 */
-	private static void debug(String s) {
-		Tracing.debug("DefaultSiteParser: " + s); //$NON-NLS-1$
-	}
-
-	//	private static URLEntry[] getAssociateSites(String associateSitesURL) {
-	//
-	//		try {
-	//			DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
-	//			DocumentBuilder builder = domFactory.newDocumentBuilder();
-	//			Document document = builder.parse(associateSitesURL);
-	//			if (document == null)
-	//				return null;
-	//			NodeList mirrorNodes = document.getElementsByTagName(ASSOCIATE_SITE);
-	//			URLEntry[] mirrors = new URLEntry[mirrorNodes.getLength()];
-	//			for (int i = 0; i < mirrorNodes.getLength(); i++) {
-	//				Element mirrorNode = (Element) mirrorNodes.item(i);
-	//				mirrors[i] = new URLEntry();
-	//				String infoURL = mirrorNode.getAttribute("url"); //$NON-NLS-1$
-	//				String label = mirrorNode.getAttribute("label"); //$NON-NLS-1$
-	//				mirrors[i].setURL(infoURL);
-	//				mirrors[i].setAnnotation(label);
-	//
-	//				if (Tracing.DEBUG_GENERATOR_PARSING)
-	//					debug("Processed mirror: url:" + infoURL + " label:" + label); //$NON-NLS-1$ //$NON-NLS-2$
-	//			}
-	//			return mirrors;
-	//		} catch (Exception e) {
-	//			// log if absolute url
-	//			if (associateSitesURL != null && (associateSitesURL.startsWith("http://") //$NON-NLS-1$
-	//					|| associateSitesURL.startsWith("https://") //$NON-NLS-1$
-	//					|| associateSitesURL.startsWith("file://") //$NON-NLS-1$
-	//					|| associateSitesURL.startsWith("ftp://") //$NON-NLS-1$
-	//			|| associateSitesURL.startsWith("jar://"))) //$NON-NLS-1$
-	//				log(Messages.DefaultSiteParser_mirrors, e);
-	//			return null;
-	//		}
-	//	}
-
-	static URLEntry[] getMirrors(String mirrorsURL) {
-
-		try {
-			String countryCode = Locale.getDefault().getCountry().toLowerCase();
-			int timeZone = (new GregorianCalendar()).get(Calendar.ZONE_OFFSET) / (60 * 60 * 1000);
-
-			if (mirrorsURL.indexOf("?") != -1) { //$NON-NLS-1$
-				mirrorsURL = mirrorsURL + "&"; //$NON-NLS-1$
-			} else {
-				mirrorsURL = mirrorsURL + "?"; //$NON-NLS-1$
-			}
-			mirrorsURL = mirrorsURL + "countryCode=" + countryCode + "&timeZone=" + timeZone + "&responseType=xml"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-			DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
-			DocumentBuilder builder = domFactory.newDocumentBuilder();
-			Document document = builder.parse(mirrorsURL);
-			if (document == null)
-				return null;
-			NodeList mirrorNodes = document.getElementsByTagName(MIRROR);
-			URLEntry[] mirrors = new URLEntry[mirrorNodes.getLength()];
-			for (int i = 0; i < mirrorNodes.getLength(); i++) {
-				Element mirrorNode = (Element) mirrorNodes.item(i);
-				mirrors[i] = new URLEntry();
-				String infoURL = mirrorNode.getAttribute("url"); //$NON-NLS-1$
-				String label = mirrorNode.getAttribute("label"); //$NON-NLS-1$
-				mirrors[i].setURL(infoURL);
-				mirrors[i].setAnnotation(label);
-
-				if (Tracing.DEBUG_GENERATOR_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://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("https://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("file://") //$NON-NLS-1$
-					|| mirrorsURL.startsWith("ftp://") //$NON-NLS-1$
-			|| mirrorsURL.startsWith("jar://"))) //$NON-NLS-1$
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, Messages.DefaultSiteParser_mirrors, e));
-			return null;
-		}
-	}
-
-	static void log(Exception e) {
-		LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Internal Error", e)); //$NON-NLS-1$
-	}
-
-	static void log(IStatus error) {
-		LogHelper.log(error);
-	}
-
-	static void log(String message) {
-		LogHelper.log(new Status(IStatus.WARNING, Activator.ID, message, null));
-	}
-
-	static void log(String message, Exception e) {
-		LogHelper.log(new Status(IStatus.WARNING, Activator.ID, message, e));
-	}
-
-	/**
-	 * Constructs a site parser.
-	 */
-	public DefaultSiteParser() {
-		super();
-		stateStack = new Stack();
-		objectStack = new Stack();
-		status = null;
-		DESCRIPTION_SITE_ALREADY_SEEN = false;
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			log(e);
-		} catch (SAXException e) {
-			log(e);
-		}
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("Created"); //$NON-NLS-1$
-	}
-
-	/**
-	 * 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 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;
-		URLEntry 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(Messages.DefaultSiteParser_ParsingStackBackToInitialState);
-				break;
-
-			case STATE_SITE :
-				stateStack.pop();
-				if (objectStack.peek() instanceof String) {
-					text = (String) objectStack.pop();
-					SiteModel site = (SiteModel) objectStack.peek();
-					site.getDescription().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();
-					SiteCategory category = (SiteCategory) objectStack.peek();
-					category.setDescription(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 = (URLEntry) 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(NLS.bind(Messages.DefaultSiteParser_ElementAlreadySet, (new String[] {getState(state)})));
-				siteModel.setDescription(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 = (URLEntry) objectStack.pop();
-				if (text != null)
-					info.setAnnotation(text);
-
-				SiteCategory category = (SiteCategory) objectStack.peek();
-				if (category.getDescription() != null)
-					internalError(NLS.bind(Messages.DefaultSiteParser_ElementAlreadySet, (new String[] {getState(state), category.getLabel()})));
-				else
-					category.setDescription(info.getAnnotation());
-				break;
-
-			default :
-				internalError(NLS.bind(Messages.DefaultSiteParser_UnknownEndState, (new String[] {getState(state)})));
-				break;
-		}
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End Element:" + uri + ":" + localName + ":" + qName);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	/*
-	 * 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, 0, Messages.DefaultSiteParser_ErrorParsingSite, null);
-		}
-
-		status.add(error);
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			LogHelper.log(error);
-	}
-
-	/**
-	 * 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;
-	}
-
-	/*
-	 * 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 Messages.DefaultSiteParser_UnknownState;
-		}
-	}
-
-	/**
-	 * 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;
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	private void handleInitialState(String elementName, Attributes attributes) throws SAXException {
-		if (elementName.equals(SITE)) {
-			stateStack.push(new Integer(STATE_SITE));
-			processSite(attributes);
-		} else {
-			internalErrorUnknownTag(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-			// what we received was not a site.xml, no need to continue
-			throw new SAXException(Messages.DefaultSiteParser_InvalidXMLStream);
-		}
-
-	}
-
-	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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {elementName, getState(currentState)})));
-	}
-
-	/*
-	 * 
-	 */
-	private void internalError(String message) {
-		error(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, message, null));
-	}
-
-	/*
-	 * 
-	 */
-	private void internalErrorUnknownTag(String msg) {
-		stateStack.push(new Integer(STATE_IGNORED_ELEMENT));
-		internalError(msg);
-	}
-
-	private boolean leadingSpace(String str) {
-		if (str.length() <= 0) {
-			return false;
-		}
-		return Character.isWhitespace(str.charAt(0));
-	}
-
-	/*
-	 * 
-	 */
-	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 = NLS.bind(Messages.DefaultSiteParser_ErrorParsing, (new String[] {ex.getMessage()}));
-		else {
-			String[] values = new String[] {name, Integer.toString(ex.getLineNumber()), Integer.toString(ex.getColumnNumber()), ex.getMessage()};
-			msg = NLS.bind(Messages.DefaultSiteParser_ErrorlineColumnMessage, values);
-		}
-		error(new Status(IStatus.ERROR, PLUGIN_ID, msg, ex));
-	}
-
-	/**
-	 * 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(Messages.DefaultSiteParser_NoSiteTag);
-		if (objectStack.peek() instanceof SiteModel) {
-			return (SiteModel) objectStack.pop();
-		}
-		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(NLS.bind(Messages.DefaultSiteParser_WrongParsingStack, (new String[] {stack})));
-	}
-
-	/* 
-	 * process archive info
-	 */
-	private void processArchive(Attributes attributes) {
-		URLEntry archive = new URLEntry();
-		String id = attributes.getValue("path"); //$NON-NLS-1$
-		if (id == null || id.trim().equals("")) { //$NON-NLS-1$
-			internalError(NLS.bind(Messages.DefaultSiteParser_Missing, (new String[] {"path", getState(currentState)}))); //$NON-NLS-1$
-		}
-
-		archive.setAnnotation(id);
-
-		String url = attributes.getValue("url"); //$NON-NLS-1$
-		if (url == null || url.trim().equals("")) { //$NON-NLS-1$
-			internalError(NLS.bind(Messages.DefaultSiteParser_Missing, (new String[] {"archive", getState(currentState)}))); //$NON-NLS-1$
-		} else {
-			archive.setURL(url);
-
-			SiteModel site = (SiteModel) objectStack.peek();
-			site.addArchive(archive);
-		}
-		if (Tracing.DEBUG_GENERATOR_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$
-		SiteFeature feature = (SiteFeature) objectStack.peek();
-		feature.addCategoryName(category);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End processing Category: name:" + category); //$NON-NLS-1$
-	}
-
-	/* 
-	 * process category def info
-	 */
-	private void processCategoryDef(Attributes attributes) {
-		SiteCategory category = new SiteCategory();
-		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.addCategory(category);
-		objectStack.push(category);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End processing CategoryDef: name:" + name + " label:" + label); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/* 
-	 * process feature info
-	 */
-	private void processFeature(Attributes attributes) {
-		SiteFeature feature = new SiteFeature();
-
-		// 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(NLS.bind(Messages.DefaultSiteParser_Missing, (new String[] {"url", getState(currentState)}))); //$NON-NLS-1$
-			else
-				// default url
-				urlInfo = FEATURES + id + '_' + ver; // 
-		}
-
-		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)};
-			log(NLS.bind(Messages.DefaultFeatureParser_IdOrVersionInvalid, values));
-		} 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.addFeature(feature);
-		feature.setSiteModel(site);
-
-		objectStack.push(feature);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End Processing DefaultFeature Tag: url:" + urlInfo + " type:" + type); //$NON-NLS-1$ //$NON-NLS-2$
-
-	}
-
-	/* 
-	 * process URL info with element text
-	 */
-	private void processInfo(Attributes attributes) {
-		URLEntry inf = new URLEntry();
-		String infoURL = attributes.getValue("url"); //$NON-NLS-1$
-		inf.setURL(infoURL);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("Processed Info: url:" + infoURL); //$NON-NLS-1$
-
-		objectStack.push(inf);
-	}
-
-	/* 
-	 * process site info
-	 */
-	private void processSite(Attributes attributes) {
-		// create site map
-		SiteModel site = new SiteModel();
-
-		// 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		
-		URLEntry description = new URLEntry();
-		description.setURL(DEFAULT_INFO_URL);
-		site.setDescription(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$
-		site.setType(type);
-
-		// get mirrors, if any
-		String mirrorsURL = attributes.getValue("mirrorsURL"); //$NON-NLS-1$
-		if (mirrorsURL != null && mirrorsURL.trim().length() > 0) {
-			//			URLEntry[] mirrors = getMirrors(mirrorsURL);
-			//			if (mirrors != null)
-			//				site.setMirrors(mirrors);
-			//			else
-
-			//Since we are parsing the site at p2 generation time and the 
-			//mirrors may change, there is no point doing the mirror expansion now
-			site.setMirrorsURLString(mirrorsURL);
-		}
-
-		String pack200 = attributes.getValue("pack200"); //$NON-NLS-1$
-		if (pack200 != null && new Boolean(pack200).booleanValue()) {
-			site.setSupportsPack200(true);
-		}
-
-		//		if (attributes.getValue("digestURL") != null) { //$NON-NLS-1$
-		//			site.setDigestExist(true);
-		//			site.setDigestURL(attributes.getValue("digestURL")); //$NON-NLS-1$
-		//
-		//			if ((attributes.getValue("availableLocales") != null) && (!attributes.getValue("availableLocales").trim().equals(""))) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		//				StringTokenizer locals = new StringTokenizer(attributes.getValue("availableLocales"), ","); //$NON-NLS-1$//$NON-NLS-2$
-		//				String[] availableLocals = new String[locals.countTokens()];
-		//				int i = 0;
-		//				while (locals.hasMoreTokens()) {
-		//					availableLocals[i++] = locals.nextToken();
-		//				}
-		//								extendedSite.setAvailableLocals(availableLocals);
-		//			}
-		//		}
-		//
-		//		if ((site instanceof ExtendedSite) && (attributes.getValue("associateSitesURL") != null)) { //$NON-NLS-1$
-		//			IURLEntry[] associateSites = getAssociateSites(attributes.getValue("associateSitesURL"), factory); //$NON-NLS-1$
-		//			if (associateSites != null)
-		//				((ExtendedSite) site).setAssociateSites(associateSites);
-		//			else
-		//				site.setMirrorsURLString(mirrorsURL);
-		//		}
-
-		objectStack.push(site);
-
-		if (Tracing.DEBUG_GENERATOR_PARSING)
-			debug("End process Site tag: siteURL:" + siteURL + " type:" + type);//$NON-NLS-1$ //$NON-NLS-2$
-
-	}
-
-	/**
-	 * 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 (Tracing.DEBUG_GENERATOR_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(NLS.bind(Messages.DefaultSiteParser_UnknownElement, (new String[] {localName, getState(currentState)})));
-				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(NLS.bind(Messages.DefaultSiteParser_UnknownStartState, (new String[] {getState(currentState)})));
-				break;
-		}
-		int newState = ((Integer) stateStack.peek()).intValue();
-		if (newState != STATE_IGNORED_ELEMENT)
-			currentState = newState;
-
-	}
-
-	private boolean trailingSpace(String str) {
-		if (str.length() <= 0) {
-			return false;
-		}
-		return Character.isWhitespace(str.charAt(str.length() - 1));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DigestParser.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DigestParser.java
deleted file mode 100644
index bd70626..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/DigestParser.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import javax.xml.parsers.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Default feature parser.
- * Parses the feature manifest file as defined by the platform.
- * 
- * @since 3.0
- */
-public class DigestParser extends DefaultHandler {
-
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-	private SAXParser parser;
-	private final List features = new ArrayList();
-	private final FeatureParser featureHandler = new FeatureParser(false);
-
-	public DigestParser() {
-		super();
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			System.out.println(e);
-		} catch (SAXException e) {
-			System.out.println(e);
-		}
-	}
-
-	public void characters(char[] ch, int start, int length) throws SAXException {
-		featureHandler.characters(ch, start, length);
-	}
-
-	public void endElement(String uri, String localName, String qName) throws SAXException {
-		if ("digest".equals(localName)) { //$NON-NLS-1$
-			return;
-		}
-		if ("feature".equals(localName)) { //$NON-NLS-1$
-			Feature feature = featureHandler.getResult();
-			features.add(feature);
-		} else
-			featureHandler.endElement(uri, localName, qName);
-	}
-
-	public Feature[] parse(File location) {
-		if (!location.exists())
-			return null;
-
-		InputStream is = null;
-		try {
-			JarFile jar = new JarFile(location);
-			JarEntry entry = jar.getJarEntry("digest.xml"); //$NON-NLS-1$
-			if (entry == null)
-				return null;
-			is = new BufferedInputStream(jar.getInputStream(entry));
-			parser.parse(new InputSource(is), this);
-			return (Feature[]) features.toArray(new Feature[features.size()]);
-		} catch (IOException e) {
-			e.printStackTrace();
-		} catch (SAXException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} finally {
-			try {
-				is.close();
-			} catch (IOException e1) {
-				//
-			}
-		}
-		return null;
-	}
-
-	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-		if ("digest".equals(localName)) { //$NON-NLS-1$
-			return;
-		}
-		featureHandler.startElement(uri, localName, qName, attributes);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Feature.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Feature.java
deleted file mode 100644
index 847c5cf..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Feature.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.util.ArrayList;
-
-/**
- * 
- * Feature information
- */
-public class Feature {
-
-	private final String id;
-	private String version;
-	private String label;
-	private String image;
-
-	private URLEntry description;
-	private URLEntry license;
-	private URLEntry copyright;
-
-	private String installHandler;
-	private String installHandlerURL;
-	private String installHandlerLibrary;
-
-	private URLEntry updateSite;
-	private ArrayList discoverySites;
-
-	private ArrayList entries;
-	private String providerName;
-	private String os;
-	private String ws;
-	private String arch;
-	private String nl;
-
-	private String location;
-
-	public Feature(String id, String version) {
-		if (id == null)
-			throw new IllegalArgumentException();
-		this.id = id;
-		this.version = version;
-	}
-
-	public void addDiscoverySite(String label, String url) {
-		if (label == null && url == null)
-			return;
-
-		if (this.discoverySites == null)
-			this.discoverySites = new ArrayList();
-
-		URLEntry entry = new URLEntry(url, label);
-		this.discoverySites.add(entry);
-	}
-
-	public void addEntry(FeatureEntry plugin) {
-		if (entries == null)
-			entries = new ArrayList();
-		entries.add(plugin);
-	}
-
-	public String getArch() {
-		return arch;
-	}
-
-	public String getCopyright() {
-		if (copyright != null)
-			return copyright.getAnnotation();
-		return null;
-	}
-
-	public String getCopyrightURL() {
-		if (copyright != null)
-			return copyright.getURL();
-		return null;
-	}
-
-	public String getDescription() {
-		if (description != null)
-			return description.getAnnotation();
-		return null;
-	}
-
-	public String getDescriptionURL() {
-		if (description != null)
-			return description.getURL();
-		return null;
-	}
-
-	public URLEntry[] getDiscoverySites() {
-		if (discoverySites == null)
-			return new URLEntry[0];
-		return (URLEntry[]) discoverySites.toArray(new URLEntry[discoverySites.size()]);
-	}
-
-	public FeatureEntry[] getEntries() {
-		if (entries == null)
-			return new FeatureEntry[0];
-		return (FeatureEntry[]) entries.toArray(new FeatureEntry[entries.size()]);
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getImage() {
-		return image;
-	}
-
-	public String getInstallHandler() {
-		return installHandler;
-	}
-
-	public String getInstallHandlerLibrary() {
-		return installHandlerLibrary;
-	}
-
-	public String getInstallHandlerURL() {
-		return installHandlerURL;
-	}
-
-	public String getLabel() {
-		return label;
-	}
-
-	public String getLicense() {
-		if (license != null)
-			return license.getAnnotation();
-		return null;
-	}
-
-	public String getLicenseURL() {
-		if (license != null)
-			return license.getURL();
-		return null;
-	}
-
-	public String getLocation() {
-		return this.location;
-	}
-
-	public String getNL() {
-		return nl;
-	}
-
-	public String getOS() {
-		return os;
-	}
-
-	public String getProviderName() {
-		return providerName;
-	}
-
-	public String getUpdateSiteLabel() {
-		if (updateSite != null)
-			return updateSite.getAnnotation();
-		return null;
-	}
-
-	public String getUpdateSiteURL() {
-		if (updateSite != null)
-			return updateSite.getURL();
-		return null;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	public String getWS() {
-		return ws;
-	}
-
-	public void setCopyright(String copyright) {
-		if (this.copyright == null)
-			this.copyright = new URLEntry();
-		this.copyright.setAnnotation(copyright);
-	}
-
-	public void setCopyrightURL(String copyrightURL) {
-		if (this.copyright == null)
-			this.copyright = new URLEntry();
-		this.copyright.setURL(copyrightURL);
-	}
-
-	public void setDescription(String description) {
-		if (this.description == null)
-			this.description = new URLEntry();
-		this.description.setAnnotation(description);
-	}
-
-	public void setDescriptionURL(String descriptionURL) {
-		if (this.description == null)
-			this.description = new URLEntry();
-		this.description.setURL(descriptionURL);
-	}
-
-	public void setEnvironment(String os, String ws, String arch, String nl) {
-		this.os = os;
-		this.ws = ws;
-		this.arch = arch;
-		this.nl = nl;
-	}
-
-	public void setImage(String image) {
-		this.image = image;
-	}
-
-	public void setInstallHandler(String installHandler) {
-		this.installHandler = installHandler;
-	}
-
-	public void setInstallHandlerLibrary(String installHandlerLibrary) {
-		this.installHandlerLibrary = installHandlerLibrary;
-	}
-
-	public void setInstallHandlerURL(String installHandlerURL) {
-		this.installHandlerURL = installHandlerURL;
-	}
-
-	public void setLabel(String label) {
-		this.label = label;
-	}
-
-	public void setLicense(String license) {
-		if (this.license == null)
-			this.license = new URLEntry();
-		this.license.setAnnotation(license);
-	}
-
-	public void setLicenseURL(String licenseURL) {
-		if (this.license == null)
-			this.license = new URLEntry();
-		this.license.setURL(licenseURL);
-	}
-
-	public void setLocation(String location) {
-		this.location = location;
-	}
-
-	public void setProviderName(String value) {
-		providerName = value;
-	}
-
-	public void setUpdateSiteLabel(String updateSiteLabel) {
-		if (this.updateSite == null)
-			this.updateSite = new URLEntry();
-		this.updateSite.setAnnotation(updateSiteLabel);
-	}
-
-	public void setUpdateSiteURL(String updateSiteURL) {
-		if (this.updateSite == null)
-			this.updateSite = new URLEntry();
-		this.updateSite.setURL(updateSiteURL);
-	}
-
-	public void setURL(String value) {
-	}
-
-	public void setVersion(String version) {
-		this.version = version;
-	}
-
-	/**
-	 * For debugging purposes only.
-	 */
-	public String toString() {
-		return "Feature " + id + " version: " + version; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureEntry.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureEntry.java
deleted file mode 100644
index ae974c4..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureEntry.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-/**
- */
-public class FeatureEntry {
-	private final String id;
-	private final String version;
-	private String url;
-	private String os;
-	private String ws;
-	private String arch;
-	private String nl;
-	private String match;
-	private final boolean isPlugin;
-	private boolean isFragment = false;
-	private boolean isRequires = false;
-	private boolean unpack = true;
-	private boolean optional = false;
-
-	/**
-	 * Temporary field to add provisioning filters to features
-	 */
-	private String filter;
-
-	public static FeatureEntry createRequires(String id, String version, String match, String filter, boolean isPlugin) {
-		FeatureEntry result = new FeatureEntry(id, version, isPlugin);
-		result.match = match;
-		result.isRequires = true;
-		// for requires we don't care what the form is so leave it as false (JAR'd)
-		result.unpack = false;
-		if (filter != null)
-			result.setFilter(filter);
-		return result;
-	}
-
-	public FeatureEntry(String id, String version, boolean isPlugin) {
-		this.id = id;
-		this.version = version;
-		this.isPlugin = isPlugin;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final FeatureEntry other = (FeatureEntry) obj;
-		if (id == null) {
-			if (other.id != null)
-				return false;
-		} else if (!id.equals(other.id))
-			return false;
-		if (version == null) {
-			if (other.version != null)
-				return false;
-		} else if (!version.equals(other.version))
-			return false;
-		return true;
-	}
-
-	public String getArch() {
-		return arch;
-	}
-
-	/**
-	 * Temporary method to add provisioning filters to features
-	 */
-	public String getFilter() {
-		return filter;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getMatch() {
-		return match;
-	}
-
-	public String getNL() {
-		return nl;
-	}
-
-	public String getOS() {
-		return os;
-	}
-
-	public String getURL() {
-		return url;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	public String getWS() {
-		return ws;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((id == null) ? 0 : id.hashCode());
-		result = prime * result + ((version == null) ? 0 : version.hashCode());
-		return result;
-	}
-
-	public boolean isFragment() {
-		return isFragment;
-	}
-
-	public boolean isOptional() {
-		return optional;
-	}
-
-	public boolean isPlugin() {
-		return isPlugin;
-	}
-
-	public boolean isRequires() {
-		return isRequires;
-	}
-
-	public boolean isUnpack() {
-		return unpack;
-	}
-
-	public void setEnvironment(String os, String ws, String arch, String nl) {
-		this.os = os;
-		this.ws = ws;
-		this.arch = arch;
-		this.nl = nl;
-	}
-
-	/**
-	 * Temporary method to add provisioning filters to features
-	 */
-	public void setFilter(String filter) {
-		this.filter = filter;
-
-	}
-
-	public void setFragment(boolean value) {
-		isFragment = value;
-	}
-
-	public void setOptional(boolean value) {
-		optional = value;
-	}
-
-	public void setUnpack(boolean value) {
-		unpack = value;
-	}
-
-	public void setURL(String value) {
-		url = value;
-	}
-
-	public String toString() {
-		StringBuffer result = new StringBuffer();
-
-		result.append(isPlugin ? "Plugin: " : "Feature: "); //$NON-NLS-1$ //$NON-NLS-2$
-		result.append(id != null ? id.toString() : ""); //$NON-NLS-1$
-		result.append(version != null ? " " + version.toString() : ""); //$NON-NLS-1$ //$NON-NLS-2$
-		return result.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureParser.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureParser.java
deleted file mode 100644
index c694140..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/FeatureParser.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.io.*;
-import java.net.URL;
-import java.util.Properties;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import javax.xml.parsers.*;
-import org.eclipse.osgi.util.NLS;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Default feature parser.
- * Parses the feature manifest file as defined by the platform.
- * 
- * @since 3.0
- */
-public class FeatureParser extends DefaultHandler {
-
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-	private SAXParser parser;
-	private Feature result;
-	private URL url;
-	private StringBuffer characters = null;
-
-	private Properties messages = null;
-
-	public FeatureParser() {
-		this(true);
-	}
-
-	protected FeatureParser(boolean createParser) {
-		super();
-		if (!createParser)
-			return;
-		try {
-			parserFactory.setNamespaceAware(true);
-			this.parser = parserFactory.newSAXParser();
-		} catch (ParserConfigurationException e) {
-			System.out.println(e);
-		} catch (SAXException e) {
-			System.out.println(e);
-		}
-	}
-
-	public void characters(char[] ch, int start, int length) throws SAXException {
-		if (characters == null)
-			return;
-		characters.append(ch, start, length);
-	}
-
-	protected Feature createFeature(String id, String version) {
-		return new Feature(id, version);
-	}
-
-	public void endElement(String uri, String localName, String qName) throws SAXException {
-		if (characters == null)
-			return;
-		if ("description".equals(localName)) { //$NON-NLS-1$
-			result.setDescription(localize(characters.toString().trim()));
-		} else if ("license".equals(localName)) { //$NON-NLS-1$
-			result.setLicense(localize(characters.toString().trim()));
-		} else if ("copyright".equals(localName)) { //$NON-NLS-1$
-			result.setCopyright(localize(characters.toString().trim()));
-		}
-		characters = null;
-	}
-
-	public Feature getResult() {
-		return result;
-	}
-
-	private Properties loadProperties(File directory) {
-		//skip directories that don't contain a feature.properties file
-		File file = new File(directory, "feature.properties"); //$NON-NLS-1$
-		if (!file.exists())
-			return null;
-		try {
-			InputStream input = new BufferedInputStream(new FileInputStream(file));
-			try {
-				Properties result = new Properties();
-				result.load(input);
-				return result;
-			} finally {
-				if (input != null)
-					input.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	private Properties loadProperties(JarFile jar) {
-		JarEntry entry = jar.getJarEntry("feature.properties"); //$NON-NLS-1$
-		if (entry == null)
-			return null;
-		try {
-			InputStream input = new BufferedInputStream(jar.getInputStream(entry));
-			try {
-				Properties result = new Properties();
-				result.load(input);
-				return result;
-			} finally {
-				if (input != null)
-					input.close();
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	private String localize(String value) {
-		if (messages == null || value == null)
-			return value;
-		if (!value.startsWith("%")) //$NON-NLS-1$
-			return value;
-		return messages.getProperty(value.substring(1), value);
-	}
-
-	/**
-	 * Parses the specified location and constructs a feature. The given location 
-	 * should be either the location of the feature JAR or the directory containing
-	 * the feature.
-	 * 
-	 * @param location the location of the feature to parse.  
-	 */
-	public Feature parse(File location) {
-		if (!location.exists())
-			return null;
-		if (location.isDirectory()) {
-			//skip directories that don't contain a feature.xml file
-			File file = new File(location, "feature.xml"); //$NON-NLS-1$
-			if (!file.exists())
-				return null;
-			Properties properties = loadProperties(location);
-			try {
-				InputStream input = new BufferedInputStream(new FileInputStream(file));
-				return parse(input, properties);
-			} catch (FileNotFoundException e) {
-				e.printStackTrace();
-			}
-		} else if (location.getName().endsWith(".jar")) { //$NON-NLS-1$
-			try {
-				JarFile jar = new JarFile(location);
-				Properties properties = loadProperties(jar);
-				JarEntry entry = jar.getJarEntry("feature.xml"); //$NON-NLS-1$
-				if (entry == null)
-					return null;
-				InputStream input = new BufferedInputStream(jar.getInputStream(entry));
-				return parse(input, properties);
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Parse the given input stream and return a feature object
-	 * or null. This method closes the input stream.
-	 */
-	public Feature parse(InputStream in, Properties messages) {
-		this.messages = messages;
-		result = null;
-		try {
-			parser.parse(new InputSource(in), this);
-		} catch (SAXException e) {
-			e.printStackTrace();
-		} catch (IOException e) {
-			e.printStackTrace();
-		} finally {
-			try {
-				in.close();
-			} catch (IOException e1) {
-				//					Utils.log(e1.getLocalizedMessage());
-			}
-		}
-		return result;
-	}
-
-	private void processCopyright(Attributes attributes) {
-		result.setCopyrightURL(attributes.getValue("url")); //$NON-NLS-1$
-		characters = new StringBuffer();
-	}
-
-	private void processDescription(Attributes attributes) {
-		result.setDescriptionURL(attributes.getValue("url")); //$NON-NLS-1$
-		characters = new StringBuffer();
-	}
-
-	private void processDiscoverySite(Attributes attributes) {
-		result.addDiscoverySite(attributes.getValue("url"), attributes.getValue("label")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	protected void processFeature(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$
-			//			System.out.println(NLS.bind(Messages.FeatureParser_IdOrVersionInvalid, (new String[] { id, ver})));
-		} else {
-			result = createFeature(id, ver);
-
-			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$
-			result.setEnvironment(os, ws, arch, nl);
-
-			//TODO rootURLs
-			if (url != null && "file".equals(url.getProtocol())) { //$NON-NLS-1$
-				File f = new File(url.getFile().replace('/', File.separatorChar));
-				result.setURL("features" + "/" + f.getParentFile().getName() + "/");// + f.getName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			} else {
-				// externalized URLs might be in relative form, ensure they are absolute				
-				//				feature.setURL(Utils.makeAbsolute(Utils.getInstallURL(), url).toExternalForm());
-			}
-
-			result.setProviderName(localize(attributes.getValue("provider-name"))); //$NON-NLS-1$
-			result.setLabel(localize(attributes.getValue("label"))); //$NON-NLS-1$
-			result.setImage(attributes.getValue("image")); //$NON-NLS-1$
-
-			//			Utils.debug("End process DefaultFeature tag: id:" +id + " ver:" +ver + " url:" + feature.getURL()); 	 //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	private void processImport(Attributes attributes) {
-		String id = attributes.getValue("feature"); //$NON-NLS-1$
-		FeatureEntry entry = null;
-		if (id != null) {
-			entry = FeatureEntry.createRequires(id, attributes.getValue("version"), attributes.getValue("match"), attributes.getValue("filter"), false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		} else {
-			id = attributes.getValue("plugin"); //$NON-NLS-1$
-			entry = FeatureEntry.createRequires(id, attributes.getValue("version"), attributes.getValue("match"), attributes.getValue("filter"), true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		result.addEntry(entry);
-	}
-
-	private void processIncludes(Attributes attributes) {
-		FeatureEntry entry = new FeatureEntry(attributes.getValue("id"), attributes.getValue("version"), false); //$NON-NLS-1$ //$NON-NLS-2$
-		String flag = attributes.getValue("optional"); //$NON-NLS-1$
-		if (flag != null)
-			entry.setOptional(Boolean.valueOf(flag).booleanValue());
-		setEnvironment(attributes, entry);
-		result.addEntry(entry);
-	}
-
-	private void processInstallHandler(Attributes attributes) {
-		result.setInstallHandler(attributes.getValue("handler")); //$NON-NLS-1$
-		result.setInstallHandlerLibrary(attributes.getValue("library")); //$NON-NLS-1$
-		result.setInstallHandlerURL(attributes.getValue("url")); //$NON-NLS-1$
-	}
-
-	private void processLicense(Attributes attributes) {
-		result.setLicenseURL(attributes.getValue("url")); //$NON-NLS-1$
-		characters = new StringBuffer();
-	}
-
-	private void processPlugin(Attributes attributes) {
-		String id = attributes.getValue("id"); //$NON-NLS-1$
-		String version = attributes.getValue("version"); //$NON-NLS-1$
-
-		if (id == null || id.trim().equals("") || version == null || version.trim().equals("")) { //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println(NLS.bind("FeatureParser#processPlugin, ID {0} or version {1} invalid", (new String[] {id, version}))); //$NON-NLS-1$
-		} else {
-			FeatureEntry plugin = new FeatureEntry(id, version, true);
-			setEnvironment(attributes, plugin);
-			String unpack = attributes.getValue("unpack"); //$NON-NLS-1$
-			if (unpack != null)
-				plugin.setUnpack(Boolean.valueOf(unpack).booleanValue());
-			String fragment = attributes.getValue("fragment"); //$NON-NLS-1$
-			if (fragment != null)
-				plugin.setFragment(Boolean.valueOf(fragment).booleanValue());
-			String filter = attributes.getValue("filter"); //$NON-NLS-1$
-			if (filter != null)
-				plugin.setFilter(filter);
-			result.addEntry(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 processUpdateSite(Attributes attributes) {
-		result.setUpdateSiteLabel(attributes.getValue("label")); //$NON-NLS-1$
-		result.setUpdateSiteURL(attributes.getValue("url")); //$NON-NLS-1$
-	}
-
-	private void setEnvironment(Attributes attributes, FeatureEntry entry) {
-		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$
-		entry.setEnvironment(os, ws, arch, nl);
-	}
-
-	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$
-			processDescription(attributes);
-		} else if ("license".equals(localName)) { //$NON-NLS-1$
-			processLicense(attributes);
-		} else if ("copyright".equals(localName)) { //$NON-NLS-1$
-			processCopyright(attributes);
-		} else if ("feature".equals(localName)) { //$NON-NLS-1$
-			processFeature(attributes);
-		} else if ("import".equals(localName)) { //$NON-NLS-1$
-			processImport(attributes);
-		} else if ("includes".equals(localName)) { //$NON-NLS-1$
-			processIncludes(attributes);
-		} else if ("install-handler".equals(localName)) { //$NON-NLS-1$
-			processInstallHandler(attributes);
-		} else if ("update".equals(localName)) { //$NON-NLS-1$
-			processUpdateSite(attributes);
-		} else if ("discovery".equals(localName)) { //$NON-NLS-1$
-			processDiscoverySite(attributes);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Messages.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Messages.java
deleted file mode 100644
index 2a1aced..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/Messages.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.publisher.features.messages";//$NON-NLS-1$
-
-	public static String DefaultFeatureParser_IdOrVersionInvalid;
-	public static String DefaultSiteParser_NoSiteTag;
-	public static String DefaultSiteParser_WrongParsingStack;
-	public static String DefaultSiteParser_UnknownElement;
-	public static String DefaultSiteParser_UnknownStartState;
-	public static String DefaultSiteParser_Missing;
-	public static String DefaultSiteParser_ParsingStackBackToInitialState;
-	public static String DefaultSiteParser_ElementAlreadySet;
-	public static String DefaultSiteParser_CategoryAlreadySet;
-	public static String DefaultSiteParser_UnknownEndState;
-	public static String DefaultSiteParser_ErrorParsing;
-	public static String DefaultSiteParser_ErrorlineColumnMessage;
-	public static String DefaultSiteParser_ErrorParsingSite;
-	public static String DefaultSiteParser_UnknownState;
-	public static String DefaultSiteParser_InvalidXMLStream;
-	public static String DefaultSiteParser_mirrors;
-
-	public static String ErrorReadingDigest;
-	public static String ErrorReadingFeature;
-	public static String ErrorReadingSite;
-	public static String InvalidRepositoryLocation;
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// Do not instantiate
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/ProductFile.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/ProductFile.java
deleted file mode 100644
index ea4f0c1..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/ProductFile.java
+++ /dev/null
@@ -1,520 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Code 9 - Additional function and fixes
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.io.*;
-import java.util.*;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.eclipse.equinox.internal.p2.publisher.IProductDescriptor;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * 
- * @since 3.1
- */
-public class ProductFile extends DefaultHandler implements IProductDescriptor {
-	private final static SAXParserFactory parserFactory = SAXParserFactory.newInstance();
-
-	private static final String PROGRAM_ARGS = "programArgs"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_LINUX = "programArgsLin"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_MAC = "programArgsMac"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_SOLARIS = "programArgsSol"; //$NON-NLS-1$
-	private static final String PROGRAM_ARGS_WIN = "programArgsWin"; //$NON-NLS-1$
-	private static final String VM_ARGS = "vmArgs"; //$NON-NLS-1$
-	private static final String VM_ARGS_LINUX = "vmArgsLin"; //$NON-NLS-1$
-	private static final String VM_ARGS_MAC = "vmArgsMac"; //$NON-NLS-1$
-	private static final String VM_ARGS_SOLARIS = "vmArgsSol"; //$NON-NLS-1$
-	private static final String VM_ARGS_WIN = "vmArgsWin"; //$NON-NLS-1$
-
-	private static final String SOLARIS_LARGE = "solarisLarge"; //$NON-NLS-1$
-	private static final String SOLARIS_MEDIUM = "solarisMedium"; //$NON-NLS-1$
-	private static final String SOLARIS_SMALL = "solarisSmall"; //$NON-NLS-1$
-	private static final String SOLARIS_TINY = "solarisTiny"; //$NON-NLS-1$
-	private static final String WIN32_16_LOW = "winSmallLow"; //$NON-NLS-1$
-	private static final String WIN32_16_HIGH = "winSmallHigh"; //$NON-NLS-1$
-	private static final String WIN32_24_LOW = "win24Low"; //$NON-NLS-1$
-	private static final String WIN32_32_LOW = "winMediumLow"; //$NON-NLS-1$
-	private static final String WIN32_32_HIGH = "winMediumHigh"; //$NON-NLS-1$
-	private static final String WIN32_48_LOW = "winLargeLow"; //$NON-NLS-1$
-	private static final String WIN32_48_HIGH = "winLargeHigh"; //$NON-NLS-1$
-
-	private static final String OS_WIN32 = "win32";//$NON-NLS-1$
-	private static final String OS_LINUX = "linux";//$NON-NLS-1$
-	private static final String OS_SOLARIS = "solaris";//$NON-NLS-1$
-	private static final String OS_MACOSX = "macosx";//$NON-NLS-1$
-
-	private static final String PRODUCT = "product"; //$NON-NLS-1$
-	private static final String CONFIG_INI = "configIni"; //$NON-NLS-1$
-	private static final String LAUNCHER = "launcher"; //$NON-NLS-1$
-	private static final String LAUNCHER_ARGS = "launcherArgs"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String SPLASH = "splash"; //$NON-NLS-1$
-	//	private static final String P_USE_ICO = "useIco"; //$NON-NLS-1$
-
-	//These constants form a small state machine to parse the .product file
-	private static final int STATE_START = 0;
-	private static final int STATE_PRODUCT = 1;
-	private static final int STATE_LAUNCHER = 2;
-	private static final int STATE_LAUNCHER_ARGS = 3;
-	private static final int STATE_PLUGINS = 4;
-	private static final int STATE_FEATURES = 5;
-	private static final int STATE_PROGRAM_ARGS = 6;
-	private static final int STATE_PROGRAM_ARGS_LINUX = 7;
-	private static final int STATE_PROGRAM_ARGS_MAC = 8;
-	private static final int STATE_PROGRAM_ARGS_SOLARIS = 9;
-	private static final int STATE_PROGRAM_ARGS_WIN = 10;
-	private static final int STATE_VM_ARGS = 11;
-	private static final int STATE_VM_ARGS_LINUX = 12;
-	private static final int STATE_VM_ARGS_MAC = 13;
-	private static final int STATE_VM_ARGS_SOLARIS = 14;
-	private static final int STATE_VM_ARGS_WIN = 15;
-
-	private int state = STATE_START;
-
-	private SAXParser parser;
-	private String launcherName = null;
-	private Map icons = new HashMap(6);
-	private String configPath = null;
-	private String id = null;
-	private boolean useFeatures = false;
-	private List plugins = null;
-	private List fragments = null;
-	private List features = null;
-	private String splashLocation = null;
-	private String productName = null;
-	private String application = null;
-	private String version = null;
-	private Properties launcherArgs = new Properties();
-	private final Map platformSpecificConfigPaths = new HashMap();
-
-	private File location;
-
-	private static String normalize(String text) {
-		if (text == null || text.trim().length() == 0)
-			return ""; //$NON-NLS-1$
-
-		text = text.replaceAll("\\r|\\n|\\f|\\t", " "); //$NON-NLS-1$ //$NON-NLS-2$
-		return text.replaceAll("\\s+", " "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Constructs a feature parser.
-	 */
-	public ProductFile(String location) throws Exception {
-		super();
-		this.location = new File(location);
-		//		try {
-		parserFactory.setNamespaceAware(true);
-		parser = parserFactory.newSAXParser();
-		InputStream in = new BufferedInputStream(new FileInputStream(location));
-		parser.parse(new InputSource(in), this);
-		parser = null;
-		//		} catch (ParserConfigurationException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FORMAT, NLS.bind(Messages.exception_productParse, location), e));
-		//		} catch (SAXException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FORMAT, NLS.bind(Messages.exception_productParse, location), e));
-		//		} catch (FileNotFoundException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FILE, NLS.bind(Messages.exception_missingElement, location), null));
-		//		} catch (IOException e) {
-		//			throw new CoreException(new Status(IStatus.ERROR, PI_PDEBUILD, EXCEPTION_PRODUCT_FORMAT, NLS.bind(Messages.exception_productParse, location), e));
-		//		}
-	}
-
-	public String getLauncherName() {
-		return launcherName;
-	}
-
-	public File getLocation() {
-		return location;
-	}
-
-	public List getBundles(boolean includeFragments) {
-		List p = plugins != null ? plugins : Collections.EMPTY_LIST;
-		if (!includeFragments)
-			return p;
-
-		List f = fragments != null ? fragments : Collections.EMPTY_LIST;
-		int size = p.size() + f.size();
-		if (size == 0)
-			return Collections.EMPTY_LIST;
-
-		List both = new ArrayList(size);
-		both.addAll(p);
-		both.addAll(f);
-		return both;
-	}
-
-	public List getFragments() {
-		if (fragments == null)
-			return Collections.EMPTY_LIST;
-		return fragments;
-	}
-
-	public List getFeatures() {
-		if (features == null)
-			return Collections.EMPTY_LIST;
-		return features;
-	}
-
-	public boolean containsPlugin(String plugin) {
-		return (plugins != null && plugins.contains(plugin)) || (fragments != null && fragments.contains(plugin));
-	}
-
-	/**
-	 * Parses the specified url and constructs a feature
-	 */
-	public String[] getIcons(String os) {
-		Collection result = (Collection) icons.get(os);
-		if (result == null)
-			return new String[0];
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-
-	public String getConfigIniPath(String os) {
-		String specific = (String) platformSpecificConfigPaths.get(os);
-		return specific == null ? configPath : specific;
-	}
-
-	public String getConfigIniPath() {
-		return configPath;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public String getSplashLocation() {
-		return splashLocation;
-	}
-
-	public String getProductName() {
-		return productName;
-	}
-
-	public String getApplication() {
-		return application;
-	}
-
-	public boolean useFeatures() {
-		return useFeatures;
-	}
-
-	public String getVersion() {
-		return (version == null) ? "0.0.0" : version; //$NON-NLS-1$
-	}
-
-	public String getVMArguments(String os) {
-		String key = null;
-		if (os.equals(OS_WIN32)) {
-			key = VM_ARGS_WIN;
-		} else if (os.equals(OS_LINUX)) {
-			key = VM_ARGS_LINUX;
-		} else if (os.equals(OS_MACOSX)) {
-			key = VM_ARGS_MAC;
-		} else if (os.equals(OS_SOLARIS)) {
-			key = VM_ARGS_SOLARIS;
-		}
-
-		String prefix = launcherArgs.getProperty(VM_ARGS);
-		String platform = null, args = null;
-		if (key != null)
-			platform = launcherArgs.getProperty(key);
-		if (prefix != null)
-			args = platform != null ? prefix + " " + platform : prefix; //$NON-NLS-1$
-		else
-			args = platform != null ? platform : ""; //$NON-NLS-1$
-		return normalize(args);
-	}
-
-	public String getProgramArguments(String os) {
-		String key = null;
-		if (os.equals(OS_WIN32)) {
-			key = PROGRAM_ARGS_WIN;
-		} else if (os.equals(OS_LINUX)) {
-			key = PROGRAM_ARGS_LINUX;
-		} else if (os.equals(OS_MACOSX)) {
-			key = PROGRAM_ARGS_MAC;
-		} else if (os.equals(OS_SOLARIS)) {
-			key = PROGRAM_ARGS_SOLARIS;
-		}
-
-		String prefix = launcherArgs.getProperty(PROGRAM_ARGS);
-		String platform = null, args = null;
-		if (key != null)
-			platform = launcherArgs.getProperty(key);
-		if (prefix != null)
-			args = platform != null ? prefix + " " + platform : prefix; //$NON-NLS-1$
-		else
-			args = platform != null ? platform : ""; //$NON-NLS-1$
-		return normalize(args);
-	}
-
-	public void startElement(String uri, String localName, String qName, Attributes attributes) {
-		switch (state) {
-			case STATE_START :
-				if (PRODUCT.equals(localName)) {
-					processProduct(attributes);
-					state = STATE_PRODUCT;
-				}
-				break;
-
-			case STATE_PRODUCT :
-				if (CONFIG_INI.equals(localName)) {
-					processConfigIni(attributes);
-				} else if (LAUNCHER.equals(localName)) {
-					processLauncher(attributes);
-					state = STATE_LAUNCHER;
-				} else if (PLUGINS.equals(localName)) {
-					state = STATE_PLUGINS;
-				} else if (FEATURES.equals(localName)) {
-					state = STATE_FEATURES;
-				} else if (LAUNCHER_ARGS.equals(localName)) {
-					state = STATE_LAUNCHER_ARGS;
-				} else if (SPLASH.equals(localName)) {
-					splashLocation = attributes.getValue("location"); //$NON-NLS-1$
-				}
-				break;
-
-			case STATE_LAUNCHER :
-				if (OS_SOLARIS.equals(localName)) {
-					processSolaris(attributes);
-				} else if ("win".equals(localName)) { //$NON-NLS-1$
-					processWin(attributes);
-				} else if (OS_LINUX.equals(localName)) {
-					processLinux(attributes);
-				} else if (OS_MACOSX.equals(localName)) {
-					processMac(attributes);
-				}
-				if ("ico".equals(localName)) { //$NON-NLS-1$
-					processIco(attributes);
-				} else if ("bmp".equals(localName)) { //$NON-NLS-1$
-					processBmp(attributes);
-				}
-				break;
-
-			case STATE_LAUNCHER_ARGS :
-				if (PROGRAM_ARGS.equals(localName)) {
-					state = STATE_PROGRAM_ARGS;
-				} else if (PROGRAM_ARGS_LINUX.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_LINUX;
-				} else if (PROGRAM_ARGS_MAC.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_MAC;
-				} else if (PROGRAM_ARGS_SOLARIS.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_SOLARIS;
-				} else if (PROGRAM_ARGS_WIN.equals(localName)) {
-					state = STATE_PROGRAM_ARGS_WIN;
-				} else if (VM_ARGS.equals(localName)) {
-					state = STATE_VM_ARGS;
-				} else if (VM_ARGS_LINUX.equals(localName)) {
-					state = STATE_VM_ARGS_LINUX;
-				} else if (VM_ARGS_MAC.equals(localName)) {
-					state = STATE_VM_ARGS_MAC;
-				} else if (VM_ARGS_SOLARIS.equals(localName)) {
-					state = STATE_VM_ARGS_SOLARIS;
-				} else if (VM_ARGS_WIN.equals(localName)) {
-					state = STATE_VM_ARGS_WIN;
-				}
-				break;
-
-			case STATE_PLUGINS :
-				if ("plugin".equals(localName)) { //$NON-NLS-1$
-					processPlugin(attributes);
-				}
-				break;
-
-			case STATE_FEATURES :
-				if ("feature".equals(localName)) { //$NON-NLS-1$
-					processFeature(attributes);
-				}
-				break;
-		}
-	}
-
-	public void endElement(String uri, String localName, String qName) {
-		switch (state) {
-			case STATE_PLUGINS :
-				if (PLUGINS.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-			case STATE_FEATURES :
-				if (FEATURES.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-			case STATE_LAUNCHER_ARGS :
-				if (LAUNCHER_ARGS.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-			case STATE_LAUNCHER :
-				if (LAUNCHER.equals(localName))
-					state = STATE_PRODUCT;
-				break;
-
-			case STATE_PROGRAM_ARGS :
-			case STATE_PROGRAM_ARGS_LINUX :
-			case STATE_PROGRAM_ARGS_MAC :
-			case STATE_PROGRAM_ARGS_SOLARIS :
-			case STATE_PROGRAM_ARGS_WIN :
-			case STATE_VM_ARGS :
-			case STATE_VM_ARGS_LINUX :
-			case STATE_VM_ARGS_MAC :
-			case STATE_VM_ARGS_SOLARIS :
-			case STATE_VM_ARGS_WIN :
-				state = STATE_LAUNCHER_ARGS;
-				break;
-		}
-	}
-
-	public void characters(char[] ch, int start, int length) {
-		switch (state) {
-			case STATE_PROGRAM_ARGS :
-				addLaunchArgumentToMap(PROGRAM_ARGS, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_LINUX :
-				addLaunchArgumentToMap(PROGRAM_ARGS_LINUX, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_MAC :
-				addLaunchArgumentToMap(PROGRAM_ARGS_MAC, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_SOLARIS :
-				addLaunchArgumentToMap(PROGRAM_ARGS_SOLARIS, String.valueOf(ch, start, length));
-				break;
-			case STATE_PROGRAM_ARGS_WIN :
-				addLaunchArgumentToMap(PROGRAM_ARGS_WIN, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS :
-				addLaunchArgumentToMap(VM_ARGS, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_LINUX :
-				addLaunchArgumentToMap(VM_ARGS_LINUX, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_MAC :
-				addLaunchArgumentToMap(VM_ARGS_MAC, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_SOLARIS :
-				addLaunchArgumentToMap(VM_ARGS_SOLARIS, String.valueOf(ch, start, length));
-				break;
-			case STATE_VM_ARGS_WIN :
-				addLaunchArgumentToMap(VM_ARGS_WIN, String.valueOf(ch, start, length));
-				break;
-		}
-	}
-
-	private void addLaunchArgumentToMap(String key, String value) {
-		if (launcherArgs == null)
-			launcherArgs = new Properties();
-
-		String oldValue = launcherArgs.getProperty(key);
-		if (oldValue != null)
-			launcherArgs.setProperty(key, oldValue + value);
-		else
-			launcherArgs.setProperty(key, value);
-	}
-
-	private void processPlugin(Attributes attributes) {
-		String fragment = attributes.getValue("fragment"); //$NON-NLS-1$
-		if (fragment != null && new Boolean(fragment).booleanValue()) {
-			if (fragments == null)
-				fragments = new ArrayList();
-			fragments.add(attributes.getValue("id")); //$NON-NLS-1$
-		} else {
-			if (plugins == null)
-				plugins = new ArrayList();
-			plugins.add(attributes.getValue("id")); //$NON-NLS-1$
-		}
-	}
-
-	private void processFeature(Attributes attributes) {
-		if (features == null)
-			features = new ArrayList();
-		features.add(attributes.getValue("id")); //$NON-NLS-1$
-	}
-
-	private void processProduct(Attributes attributes) {
-		id = attributes.getValue("id"); //$NON-NLS-1$
-		productName = attributes.getValue("name"); //$NON-NLS-1$
-		application = attributes.getValue("application"); //$NON-NLS-1$
-		String use = attributes.getValue("useFeatures"); //$NON-NLS-1$
-		if (use != null)
-			useFeatures = Boolean.valueOf(use).booleanValue();
-		version = attributes.getValue("version"); //$NON-NLS-1$
-	}
-
-	private void processConfigIni(Attributes attributes) {
-		String path = null;
-		if ("custom".equals(attributes.getValue("use"))) { //$NON-NLS-1$//$NON-NLS-2$
-			path = attributes.getValue("path"); //$NON-NLS-1$
-		}
-		String os = attributes.getValue("os"); //$NON-NLS-1$
-		if (os != null && os.length() > 0) {
-			// TODO should we allow a platform-specific default to over-ride a custom generic path?
-			if (path != null)
-				platformSpecificConfigPaths.put(os, path);
-		} else {
-			configPath = path;
-		}
-	}
-
-	private void processLauncher(Attributes attributes) {
-		launcherName = attributes.getValue("name"); //$NON-NLS-1$
-	}
-
-	private void addIcon(String os, String value) {
-		if (value == null)
-			return;
-		Collection list = (Collection) icons.get(os);
-		if (list == null) {
-			list = new ArrayList(6);
-			icons.put(os, list);
-		}
-		if (!new File(value).isAbsolute())
-			value = new File(location.getParentFile(), value).getAbsolutePath();
-		list.add(value);
-	}
-
-	private void processSolaris(Attributes attributes) {
-		addIcon(OS_SOLARIS, attributes.getValue(SOLARIS_LARGE));
-		addIcon(OS_SOLARIS, attributes.getValue(SOLARIS_MEDIUM));
-		addIcon(OS_SOLARIS, attributes.getValue(SOLARIS_SMALL));
-		addIcon(OS_SOLARIS, attributes.getValue(SOLARIS_TINY));
-	}
-
-	private void processWin(Attributes attributes) {
-		//		useIco = Boolean.valueOf(attributes.getValue(P_USE_ICO)).booleanValue();
-	}
-
-	private void processIco(Attributes attributes) {
-		addIcon(OS_WIN32, attributes.getValue("path")); //$NON-NLS-1$
-	}
-
-	private void processBmp(Attributes attributes) {
-		addIcon(OS_WIN32, attributes.getValue(WIN32_16_HIGH));
-		addIcon(OS_WIN32, attributes.getValue(WIN32_16_LOW));
-		addIcon(OS_WIN32, attributes.getValue(WIN32_24_LOW));
-		addIcon(OS_WIN32, attributes.getValue(WIN32_32_HIGH));
-		addIcon(OS_WIN32, attributes.getValue(WIN32_32_LOW));
-		addIcon(OS_WIN32, attributes.getValue(WIN32_48_HIGH));
-		addIcon(OS_WIN32, attributes.getValue(WIN32_48_LOW));
-	}
-
-	private void processLinux(Attributes attributes) {
-		addIcon(OS_LINUX, attributes.getValue("icon")); //$NON-NLS-1$
-	}
-
-	private void processMac(Attributes attributes) {
-		addIcon(OS_MACOSX, attributes.getValue("icon")); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteCategory.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteCategory.java
deleted file mode 100644
index 18e75f4..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteCategory.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Comparator;
-
-/**
- * A category in an update site.
- * 
- * Based on org.eclipse.update.core.model.CategoryModel.
- */
-public class SiteCategory {
-
-	private static Comparator comp;
-	private String description;
-	private String label;
-	private String name;
-
-	/**
-	 * 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) {
-
-					SiteCategory cat1 = (SiteCategory) o1;
-					SiteCategory cat2 = (SiteCategory) o2;
-
-					if (cat1.equals(cat2))
-						return 0;
-					return cat1.getName().compareTo(cat2.getName());
-				}
-			};
-		}
-		return comp;
-	}
-
-	/**
-	 * Creates an uninitialized model object.
-	 * 
-	 * @since 2.0
-	 */
-	public SiteCategory() {
-		super();
-	}
-
-	/**
-	 * Compare two category models for equality.
-	 * 
-	 * @see Object#equals(Object)
-	 * @since 2.0
-	 */
-	public boolean equals(Object obj) {
-		boolean result = false;
-		if (obj instanceof SiteCategory) {
-			SiteCategory otherCategory = (SiteCategory) obj;
-			result = getName().equalsIgnoreCase(otherCategory.getName());
-		}
-		return result;
-	}
-
-	/**
-	 * Retrieve the detailed category description
-	 * 
-	 * @return category description, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Retrieve the non-localized displayable label for the category.
-	 * 
-	 * @return non-localized displayable label, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Retrieve the name of the category.
-	 * 
-	 * @return category name, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Compute hash code for category model.
-	 * 
-	 * @see Object#hashCode()
-	 * @since 2.0
-	 */
-	public int hashCode() {
-		return getName().hashCode();
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * Sets the category description.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param description category description
-	 * @since 2.0
-	 */
-	public void setDescription(String description) {
-		this.description = 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) {
-		this.label = label;
-	}
-
-	/**
-	 * 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) {
-		this.name = name;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteFeature.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteFeature.java
deleted file mode 100644
index a9f43a0..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteFeature.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     James D Miles (IBM Corp.) - bug 191783, NullPointerException in FeatureDownloader
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-
-/**
- * A reference to a feature in an update site.xml file.
- * 
- * Based on org.eclipse.update.core.model.FeatureReferenceModel.
- */
-public class SiteFeature {
-
-	private String arch;
-	// performance
-	private URL base;
-	private List /* of String*/categoryNames;
-	private String featureId;
-	private String featureVersion;
-	private String label;
-	private String nl;
-
-	private String os;
-	private String patch;
-	private final boolean resolved = false;
-	private SiteModel site;
-	private String type;
-	private URL url;
-	private String urlString;
-	private String ws;
-
-	/*
-	 * 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 = new File(url1.getFile());
-		File file2 = new File(url2.getFile());
-
-		if (file1 == null)
-			return false;
-
-		return (file1.equals(file2));
-	}
-
-	/**
-	 * Creates an uninitialized feature reference model object.
-	 */
-	public SiteFeature() {
-		super();
-	}
-
-	/**
-	 * 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
-	 */
-	public void addCategoryName(String categoryName) {
-		if (this.categoryNames == null)
-			this.categoryNames = new ArrayList();
-		if (!this.categoryNames.contains(categoryName))
-			this.categoryNames.add(categoryName);
-	}
-
-	private void delayedResolve() {
-
-		// PERF: delay resolution
-		if (resolved)
-			return;
-
-		// resolve local elements
-		try {
-			url = new URL(base, urlString);
-		} catch (MalformedURLException e) {
-			//			UpdateCore.warn("", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	public boolean equals(Object object) {
-
-		if (object == null)
-			return false;
-		if (getURL() == null)
-			return false;
-
-		if (!(object instanceof SiteFeature))
-			return false;
-
-		SiteFeature f = (SiteFeature) object;
-
-		return sameURL(getURL(), f.getURL());
-	}
-
-	/**
-	 * Returns the names of categories the referenced feature belongs to.
-	 * 
-	 * @return an array of names, or an empty array.
-	 */
-	public String[] getCategoryNames() {
-		if (categoryNames == null)
-			return new String[0];
-
-		return (String[]) categoryNames.toArray(new String[0]);
-	}
-
-	/**
-	 * Returns the feature identifier as a string
-	 * 
-	 * @return feature identifier
-	 */
-	public String getFeatureIdentifier() {
-		return featureId;
-	}
-
-	/**
-	 * Returns the feature version as a string
-	 * 
-	 * @return feature version 
-	 */
-	public String getFeatureVersion() {
-		return featureVersion;
-	}
-
-	/**
-	 * 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>.
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Retrieve the non-localized displayable label for the feature reference.
-	 *
-	 * @return non-localized displayable label, or <code>null</code>.
-	 */
-	public String getLabelNonLocalized() {
-		return label;
-	}
-
-	/**
-	 * Get optional locale specification as a comma-separated string.
-	 *
-	 * @return the locale specification string, or <code>null</code>.
-	 */
-	public String getNL() {
-		return nl;
-	}
-
-	/**
-	 * Get optional operating system specification as a comma-separated string.
-	 *
-	 * @return the operating system specification string, or <code>null</code>.
-	 */
-	public String getOS() {
-		return os;
-	}
-
-	/**
-	 * Get optional system architecture specification as a comma-separated string.
-	 *
-	 * @return the system architecture specification string, or <code>null</code>.
-	 */
-	public String getOSArch() {
-		return arch;
-	}
-
-	/**
-	 * Returns the patch mode.
-	 */
-	public String getPatch() {
-		return patch;
-	}
-
-	/**
-	 * Returns the site model for the reference.
-	 * 
-	 * @return site model
-	 * @since 2.0
-	 */
-	public SiteModel getSiteModel() {
-		return site;
-	}
-
-	/**
-	 * Returns the referenced feature type.
-	 * 
-	 * @return feature type, or <code>null</code> representing the default
-	 * feature type for the site
-	 */
-	public String getType() {
-		return type;
-	}
-
-	/**
-	 * Returns the resolved URL for the feature reference.
-	 * 
-	 * @return url string
-	 */
-	public URL getURL() {
-		delayedResolve();
-		return url;
-	}
-
-	/**
-	 * Returns the unresolved URL string for the reference.
-	 *
-	 * @return url string
-	 */
-	public String getURLString() {
-		return urlString;
-	}
-
-	/**
-	 * Get optional windowing system specification as a comma-separated string.
-	 *
-	 * @return the windowing system specification string, or <code>null</code>.
-	 */
-	public String getWS() {
-		return ws;
-	}
-
-	/**
-	 * 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 resolveBase URL
-	 * @param bundleURL resource bundle URL
-	 * @exception MalformedURLException
-	 */
-	public void resolve(URL resolveBase, URL bundleURL) throws MalformedURLException {
-		this.base = resolveBase;
-	}
-
-	/**
-	 * 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
-	 */
-	public void setArch(String arch) {
-		this.arch = arch;
-	}
-
-	/**
-	 * 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
-	 */
-	public void setCategoryNames(String[] categoryNames) {
-		if (categoryNames == null)
-			this.categoryNames = null;
-		else
-			this.categoryNames = new ArrayList(Arrays.asList(categoryNames));
-	}
-
-	/**
-	 * Sets the feature identifier.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param featureId feature identifier
-	 */
-	public void setFeatureIdentifier(String featureId) {
-		this.featureId = featureId;
-	}
-
-	/**
-	 * Sets the feature version.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param featureVersion feature version
-	 */
-	public void setFeatureVersion(String featureVersion) {
-		this.featureVersion = featureVersion;
-	}
-
-	/**
-	 * Sets the label.
-	 * @param label The label to set
-	 */
-	public void setLabel(String label) {
-		this.label = label;
-	}
-
-	/**
-	 * Sets the locale specification.
-	 * Throws a runtime exception if this object is marked read-only.
-	 *
-	 * @param nl locale specification as a comma-separated list
-	 */
-	public void setNL(String nl) {
-		this.nl = 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
-	 */
-	public void setOS(String os) {
-		this.os = os;
-	}
-
-	/**
-	 * Sets the patch mode.
-	 */
-	public void setPatch(String patch) {
-		this.patch = patch;
-	}
-
-	/**
-	 * Sets the site for the referenced.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param site site for the reference
-	 */
-	public void setSiteModel(SiteModel site) {
-		this.site = site;
-	}
-
-	/**
-	 * Sets the referenced feature type.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param type referenced feature type
-	 */
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	/**
-	 * Sets the unresolved URL for the feature reference.
-	 * Throws a runtime exception if this object is marked read-only.
-	 * 
-	 * @param urlString unresolved URL string
-	 */
-	public void setURLString(String urlString) {
-		this.urlString = urlString;
-		this.url = null;
-	}
-
-	/**
-	 * 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
-	 */
-	public void setWS(String ws) {
-		this.ws = ws;
-	}
-
-	/**
-	 * @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();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteModel.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteModel.java
deleted file mode 100644
index 8d5da13..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/SiteModel.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-
-/**
- * A model of an update site.
- * 
- * Copied from org.eclipse.update.core.model.SiteModel.
- */
-public class SiteModel {
-
-	private List /*of ArchiveReferenceModel*/archiveReferences;
-	/**
-	 * Map of String (category id) -> SiteCategory
-	 */
-	private Map categories;
-	private URLEntry description;
-	/**
-	 * Map of String (feature id) -> SiteFeature
-	 */
-	private List features;
-	private URL locationURL;
-	private String locationURLString;
-	private List /* of URLEntry */mirrors;
-	private String mirrorsURLString;
-	private boolean supportsPack200;
-	private String type;
-
-	/**
-	 * Creates an uninitialized site model object.
-	 * 
-	 * @since 2.0
-	 */
-	public SiteModel() {
-		super();
-	}
-
-	/**
-	 * 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 addArchive(URLEntry archiveReference) {
-		if (this.archiveReferences == null)
-			this.archiveReferences = new ArrayList();
-		if (!this.archiveReferences.contains(archiveReference))
-			this.archiveReferences.add(archiveReference);
-	}
-
-	/**
-	 * Adds a category to the site.
-	 * 
-	 * @param category category model
-	 */
-	public void addCategory(SiteCategory category) {
-		if (categories == null)
-			categories = new HashMap();
-		if (!categories.containsKey(category.getName()))
-			categories.put(category.getName(), category);
-	}
-
-	/**
-	 * Adds a feature reference model to site.
-	 * 
-	 * @param featureReference feature reference model
-	 */
-	public void addFeature(SiteFeature featureReference) {
-		if (this.features == null)
-			this.features = new ArrayList();
-		this.features.add(featureReference);
-	}
-
-	/**
-	 * Adds a mirror site.
-	 * 
-	 * @param mirror mirror model 
-	 * @since 3.1
-	 */
-	public void addMirror(URLEntry mirror) {
-		if (this.mirrors == null)
-			this.mirrors = new ArrayList();
-		if (!this.mirrors.contains(mirror))
-			this.mirrors.add(mirror);
-	}
-
-	private void doSetMirrorSiteEntryModels(URLEntry[] newMirrors) {
-		if (newMirrors == null || newMirrors.length == 0)
-			this.mirrors = null;
-		else
-			this.mirrors = new ArrayList(Arrays.asList(newMirrors));
-	}
-
-	/**
-	 * 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 URLEntry[] getArchives() {
-		if (archiveReferences == null || archiveReferences.size() == 0)
-			return new URLEntry[0];
-
-		return (URLEntry[]) archiveReferences.toArray(new URLEntry[0]);
-	}
-
-	/**
-	 * Returns an array of category models for this site.
-	 * 
-	 * @return array of site category models, or an empty array.
-	 * @since 2.0
-	 */
-	public SiteCategory[] getCategories() {
-		if (categories == null || categories.size() == 0)
-			return new SiteCategory[0];
-		return (SiteCategory[]) categories.values().toArray(new SiteCategory[0]);
-	}
-
-	/**
-	 * Returns the category with the given name.
-	 * @return the category with the given name, or <code>null</code>
-	 */
-	public SiteCategory getCategory(String name) {
-		return (SiteCategory) (categories == null ? null : categories.get(name));
-	}
-
-	/**
-	 * Returns the site description.
-	 * 
-	 * @return site description, or <code>null</code>.
-	 */
-	public URLEntry getDescription() {
-		return description;
-	}
-
-	/**
-	 * Returns an array of feature reference models on this site.
-	 * 
-	 * @return an array of feature reference models, or an empty array.
-	 */
-	public SiteFeature[] getFeatures() {
-		if (features == null || features.size() == 0)
-			return new SiteFeature[0];
-		return (SiteFeature[]) features.toArray(new SiteFeature[0]);
-	}
-
-	/**
-	 * Returns the resolved URL for the site.
-	 * 
-	 * @return url, or <code>null</code>
-	 */
-	public URL getLocationURL() {
-		return locationURL;
-	}
-
-	/**
-	 * Returns the unresolved URL string for the site.
-	 *
-	 * @return url string, or <code>null</code>
-	 */
-	public String getLocationURLString() {
-		return locationURLString;
-	}
-
-	/**
-	 * Return an array of update site mirrors
-	 * 
-	 * @return an array of mirror entries, or an empty array.
-	 * @since 3.1
-	 */
-	public URLEntry[] getMirrors() {
-		//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));
-
-		if (mirrors == null || mirrors.size() == 0)
-			return new URLEntry[0];
-		return (URLEntry[]) mirrors.toArray(new URLEntry[0]);
-	}
-
-	/**
-	 * Returns the URL from which the list of mirrors of this site can be retrieved.
-	 * 
-	 * @since org.eclipse.equinox.p2.metadata.generator 1.0
-	 */
-	public String getMirrorsURL() {
-		return mirrorsURLString;
-	}
-
-	/** 
-	 * Returns the site type.
-	 * 
-	 * @return site type, or <code>null</code>.
-	 * @since 2.0
-	 */
-	public String getType() {
-		return type;
-	}
-
-	public boolean isPack200Supported() {
-		return supportsPack200;
-	}
-
-	/**
-	 * 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();
-		//
-		//		if ((this instanceof ExtendedSite) && ((ExtendedSite) this).isDigestExist()) {
-		//			ExtendedSite extendedSite = (ExtendedSite) this;
-		//			extendedSite.setLiteFeatures(UpdateManagerUtils.getLightFeatures(extendedSite));
-		//		}
-	}
-
-	/**
-	 * Sets the site description.
-	 * 
-	 * @param description site description
-	 * @since 2.0
-	 */
-	public void setDescription(URLEntry description) {
-		this.description = description;
-	}
-
-	/**
-	 * Sets the unresolved URL for the site.
-	 * 
-	 * @param locationURLString url for the site (as a string)
-	 * @since 2.0
-	 */
-	public void setLocationURLString(String locationURLString) {
-		this.locationURLString = locationURLString;
-	}
-
-	/**
-	 * Sets additional mirror sites
-	 * 
-	 * @param mirrors additional update site mirrors
-	 * @since 3.1
-	 */
-	public void setMirrors(URLEntry[] mirrors) {
-		doSetMirrorSiteEntryModels(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.
-	 * 
-	 * @param mirrorsURL additional update site mirrors
-	 * @since 3.1
-	 */
-	public void setMirrorsURLString(String mirrorsURL) {
-		this.mirrorsURLString = mirrorsURL;
-	}
-
-	public void setSupportsPack200(boolean value) {
-		this.supportsPack200 = value;
-	}
-
-	/**
-	 * 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) {
-		this.type = type;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/URLEntry.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/URLEntry.java
deleted file mode 100644
index 3432223..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/URLEntry.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-public class URLEntry {
-	private String annotation;
-	private String url;
-
-	public URLEntry() {
-	}
-
-	public URLEntry(String url, String annotation) {
-		this.url = url;
-		this.annotation = annotation;
-	}
-
-	public void setAnnotation(String annotation) {
-		this.annotation = annotation;
-	}
-
-	public String getAnnotation() {
-		return annotation;
-	}
-
-	public void setURL(String url) {
-		this.url = url;
-	}
-
-	public String getURL() {
-		return url;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/UpdateSite.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/UpdateSite.java
deleted file mode 100644
index 362aa2e..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/UpdateSite.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.publisher.features;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.zip.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.publisher.Activator;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.osgi.util.NLS;
-import org.xml.sax.SAXException;
-
-/**
- * @since 1.0
- */
-public class UpdateSite {
-
-	private static final String VERSION_SEPARATOR = "_"; //$NON-NLS-1$
-	private static final String JAR_EXTENSION = ".jar"; //$NON-NLS-1$
-	private static final String FEATURE_DIR = "features/"; //$NON-NLS-1$
-	private static final String PLUGIN_DIR = "plugins/"; //$NON-NLS-1$
-	private static final String FEATURE_TEMP_FILE = "feature"; //$NON-NLS-1$
-	private static final String SITE_FILE = "site.xml"; //$NON-NLS-1$
-	private static final String DIR_SEPARATOR = "/"; //$NON-NLS-1$
-	private String checksum;
-	private URL location;
-	private SiteModel site;
-
-	/*
-	 * Some variables for caching.
-	 */
-	// map of String (URL.toExternalForm()) to UpdateSite
-	private static Map siteCache = new HashMap();
-	// map of String (featureID_featureVersion) to Feature
-	private Map featureCache = new HashMap();
-
-	/*
-	 * Return a new URL for the given file which is based from the specified root.
-	 */
-	public static URL getFileURL(URL root, String fileName) throws MalformedURLException {
-		if (root.getPath().endsWith(fileName))
-			return root;
-		if (root.getPath().endsWith(SITE_FILE))
-			return new URL(root, fileName);
-		if (root.getPath().endsWith(DIR_SEPARATOR))
-			return new URL(root.toExternalForm() + fileName);
-		return new URL(root.toExternalForm() + DIR_SEPARATOR + fileName);
-	}
-
-	/*
-	 * Open and return the input stream for the given URL.
-	 */
-	private static InputStream getSiteInputStream(URL url) throws ProvisionException {
-		try {
-			return getSiteURL(url).openStream();
-		} catch (MalformedURLException e) {
-			String msg = NLS.bind(Messages.InvalidRepositoryLocation, url);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_INVALID_LOCATION, msg, e));
-		} catch (IllegalArgumentException e) {
-			//see bug 221600 - URL.openStream can throw IllegalArgumentException
-			String msg = NLS.bind(Messages.InvalidRepositoryLocation, url);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_INVALID_LOCATION, msg, e));
-		} catch (IOException e) {
-			String msg = NLS.bind(Messages.ErrorReadingSite, url);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, msg, e));
-		}
-	}
-
-	/*
-	 * Return a URL based on the given URL, which points to a site.xml file.
-	 */
-	private static URL getSiteURL(URL url) throws MalformedURLException {
-		if (url.getPath().endsWith(SITE_FILE))
-			return url;
-		if (url.getPath().endsWith(DIR_SEPARATOR))
-			return new URL(url.toExternalForm() + SITE_FILE);
-		return new URL(url.toExternalForm() + DIR_SEPARATOR + SITE_FILE);
-	}
-
-	/*
-	 * Load and return an update site object from the given location.
-	 */
-	public static UpdateSite load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		if (location == null)
-			return null;
-		UpdateSite result = (UpdateSite) siteCache.get(location.toExternalForm());
-		if (result != null)
-			return result;
-		InputStream input = getSiteInputStream(location);
-		try {
-			DefaultSiteParser siteParser = new DefaultSiteParser();
-			Checksum checksum = new CRC32();
-			input = new CheckedInputStream(new BufferedInputStream(input), checksum);
-			SiteModel siteModel = siteParser.parse(input);
-			String checksumString = Long.toString(checksum.getValue());
-			result = new UpdateSite(siteModel, location, checksumString);
-			siteCache.put(location.toExternalForm(), result);
-			return result;
-		} catch (SAXException e) {
-			String msg = NLS.bind(Messages.ErrorReadingSite, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_READ, msg, e));
-		} catch (IOException e) {
-			String msg = NLS.bind(Messages.ErrorReadingSite, location);
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_FAILED_READ, msg, e));
-		} finally {
-			try {
-				input.close();
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-	}
-
-	/*
-	 * Parse the feature.xml specified by the given input stream and return the feature object.
-	 */
-	private static Feature parseFeature(FeatureParser featureParser, URL featureURL) throws IOException, FileNotFoundException, ProvisionException {
-		File featureFile = File.createTempFile(FEATURE_TEMP_FILE, JAR_EXTENSION);
-		try {
-			FileUtils.copyStream(featureURL.openStream(), true, new BufferedOutputStream(new FileOutputStream(featureFile)), true);
-			return featureParser.parse(featureFile);
-		} catch (IllegalArgumentException e) {
-			//see bug 221600 - URL.openStream can throw IllegalArgumentException
-			String msg = NLS.bind(Messages.InvalidRepositoryLocation, featureURL.toExternalForm());
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_INVALID_LOCATION, msg, e));
-		} finally {
-			featureFile.delete();
-		}
-	}
-
-	/*
-	 * Throw an exception if the site pointed to by the given URL is not valid.
-	 */
-	public static void validate(URL url, IProgressMonitor monitor) throws ProvisionException {
-		InputStream input = getSiteInputStream(url);
-		try {
-			input.close();
-		} catch (IOException e) {
-			// ignore
-		}
-	}
-
-	/*
-	 * Constructor for the class.
-	 */
-	private UpdateSite(SiteModel site, URL location, String checksum) {
-		super();
-		this.site = site;
-		this.location = location;
-		this.checksum = checksum;
-	}
-
-	/*
-	 * Iterate over the archive entries in this site and return the matching URL string for
-	 * the given identifier, if there is one.
-	 */
-	private URL getArchiveURL(URL base, String identifier) {
-		URLEntry[] archives = site.getArchives();
-		for (int i = 0; archives != null && i < archives.length; i++) {
-			URLEntry entry = archives[i];
-			if (identifier.equals(entry.getAnnotation()))
-				return internalGetURL(base, entry.getURL());
-		}
-		return null;
-	}
-
-	/*
-	 * Return the checksum for this site.
-	 */
-	public String getChecksum() {
-		return checksum;
-	}
-
-	/*
-	 * Return a URL which represents the location of the given feature.
-	 */
-	public URL getFeatureURL(SiteFeature siteFeature, String id, String version) {
-		URL base = site.getLocationURL();
-		if (base == null)
-			base = location;
-		if (siteFeature == null) {
-			SiteFeature[] entries = site.getFeatures();
-			for (int i = 0; i < entries.length; i++) {
-				if (id.equals(entries[i].getFeatureIdentifier()) && version.equals(entries[i].getFeatureVersion())) {
-					siteFeature = entries[i];
-					break;
-				}
-			}
-		}
-		if (siteFeature != null) {
-			URL url = siteFeature.getURL();
-			if (url != null)
-				return url;
-			url = getArchiveURL(base, id);
-			if (url != null)
-				return url;
-		}
-		// fall through to default URL
-		try {
-			return getFileURL(base, FEATURE_DIR + id + VERSION_SEPARATOR + version + JAR_EXTENSION);
-		} catch (MalformedURLException e) {
-			// shouldn't happen
-		}
-		return null;
-	}
-
-	/*
-	 * Return the location of this site.
-	 */
-	public URL getLocation() {
-		return location;
-	}
-
-	/*
-	 * Return a URL which represents the location of the given plug-in.
-	 */
-	public URL getPluginURL(FeatureEntry plugin) {
-		URL base = site.getLocationURL();
-		if (base == null)
-			base = location;
-		String path = PLUGIN_DIR + plugin.getId() + VERSION_SEPARATOR + plugin.getVersion() + JAR_EXTENSION;
-		URL url = getArchiveURL(base, path);
-		if (url != null)
-			return url;
-		try {
-			return getFileURL(base, path);
-		} catch (MalformedURLException e) {
-			// shouldn't happen
-		}
-		return null;
-	}
-
-	/*
-	 * Return the site model.
-	 */
-	public SiteModel getSite() {
-		return site;
-	}
-
-	/*
-	 * The trailing parameter can be either null, relative or absolute. If it is null,
-	 * then return null. If it is absolute, then create a new url and return it. If it is
-	 * relative, then make it relative to the given base url.
-	 */
-	private URL internalGetURL(URL base, String trailing) {
-		if (trailing == null)
-			return null;
-		try {
-			return new URL(trailing);
-		} catch (MalformedURLException e) {
-			try {
-				return new URL(base, trailing);
-			} catch (MalformedURLException e2) {
-				// shouldn't happen
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Load and return the features references in this update site.
-	 */
-	public Feature[] loadFeatures() throws ProvisionException {
-		Feature[] result = loadFeaturesFromDigest();
-		return result == null ? loadFeaturesFromSite() : result;
-	}
-
-	/*
-	 * Try and load the feature information from the update site's
-	 * digest file, if it exists.
-	 */
-	private Feature[] loadFeaturesFromDigest() throws ProvisionException {
-		if (!featureCache.isEmpty())
-			return (Feature[]) featureCache.values().toArray(new Feature[featureCache.size()]);
-		try {
-			URL digestURL = getFileURL(location, "digest.zip"); //$NON-NLS-1$
-			File digestFile = File.createTempFile("digest", ".zip"); //$NON-NLS-1$ //$NON-NLS-2$
-			try {
-				FileUtils.copyStream(digestURL.openStream(), true, new BufferedOutputStream(new FileOutputStream(digestFile)), true);
-				Feature[] result = new DigestParser().parse(digestFile);
-				if (result == null)
-					return null;
-				for (int i = 0; i < result.length; i++) {
-					String key = result[i].getId() + VERSION_SEPARATOR + result[i].getVersion();
-					featureCache.put(key, result[i]);
-				}
-				return result;
-			} catch (IllegalArgumentException e) {
-				//see bug 221600 - URL.openStream can throw IllegalArgumentException
-				String msg = NLS.bind(Messages.InvalidRepositoryLocation, digestURL.toExternalForm());
-				throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_INVALID_LOCATION, msg, e));
-			} finally {
-				digestFile.delete();
-			}
-		} catch (MalformedURLException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.ErrorReadingDigest, location), e));
-		} catch (IOException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.ErrorReadingDigest, location), e));
-		}
-		return null;
-	}
-
-	/*
-	 * Load and return the features that are referenced by this update site. Note this
-	 * requires downloading and parsing the feature manifest locally.
-	 */
-	private Feature[] loadFeaturesFromSite() throws ProvisionException {
-		SiteFeature[] siteFeatures = site.getFeatures();
-		FeatureParser featureParser = new FeatureParser();
-		for (int i = 0; i < siteFeatures.length; i++) {
-			SiteFeature siteFeature = siteFeatures[i];
-			String key = siteFeature.getFeatureIdentifier() + VERSION_SEPARATOR + siteFeature.getFeatureVersion();
-			if (featureCache.containsKey(key))
-				continue;
-			URL featureURL = getFeatureURL(siteFeature, siteFeature.getFeatureIdentifier(), siteFeature.getFeatureVersion());
-			try {
-				Feature feature = parseFeature(featureParser, featureURL);
-				if (feature == null) {
-					LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.ErrorReadingFeature, featureURL)));
-				} else {
-					featureCache.put(key, feature);
-					loadIncludedFeatures(feature, featureParser);
-				}
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.ErrorReadingFeature, featureURL), e));
-			}
-		}
-		return (Feature[]) featureCache.values().toArray(new Feature[featureCache.size()]);
-	}
-
-	/*
-	 * Load the features that are included by the given feature.
-	 */
-	private void loadIncludedFeatures(Feature feature, FeatureParser featureParser) throws ProvisionException {
-		FeatureEntry[] featureEntries = feature.getEntries();
-		for (int i = 0; i < featureEntries.length; i++) {
-			FeatureEntry entry = featureEntries[i];
-			if (entry.isRequires() || entry.isPlugin())
-				continue;
-			String key = entry.getId() + VERSION_SEPARATOR + entry.getVersion();
-			if (featureCache.containsKey(key))
-				continue;
-			URL featureURL = null;
-			try {
-				featureURL = getFileURL(location, FEATURE_DIR + entry.getId() + VERSION_SEPARATOR + entry.getVersion() + JAR_EXTENSION);
-				Feature includedFeature = parseFeature(featureParser, featureURL);
-				if (feature == null) {
-					LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.ErrorReadingFeature, featureURL)));
-				} else {
-					featureCache.put(key, includedFeature);
-					loadIncludedFeatures(includedFeature, featureParser);
-				}
-			} catch (MalformedURLException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.ErrorReadingFeature, entry.getId()), e));
-			} catch (IOException e) {
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, NLS.bind(Messages.ErrorReadingFeature, featureURL), e));
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/messages.properties b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/messages.properties
deleted file mode 100644
index 7ddef91..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/features/messages.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Install Update Core Properties File
-#
-
-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}\".
-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.
-DefaultSiteParser_mirrors = Error processing update site mirror.
-
-ErrorReadingDigest=Error reading site digest {0}.
-ErrorReadingFeature=Error reading feature {0}.
-ErrorReadingSite=Error reading update site {0}.
-InvalidRepositoryLocation=Invalid repository location {0}.
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/messages.properties b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/messages.properties
deleted file mode 100644
index 08affcb..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/internal/p2/publisher/messages.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-exception_errorConverting = An error occurred while generating manifest for {0}.
-exception_outputStream = Unable to open output stream for {0}.
-exception_errorParsingUpdateSite = Error parsing update site: {0}.
-exception_stateAddition = An error has occurred while adding the bundle {0}.
-exception_sourceDirectoryInvalid = Source directory is invalid: {0}.
-exception_artifactRepoLocationURL = Artifact repository location is not a valid URL: {0}.
-exception_artifactRepoNotWritable = Artifact repository is not writable: {0}.
-exception_metadataRepoLocationURL = Metadata repository location is not a valid URL: {0}.
-exception_metadataRepoNotWritable = Metadata repository not writable: {0}.
-exception_baseLocationNotSpecified = Eclipse base location not specified.
-
-message_generatingMetadata = Generating metadata for {0}.
-message_generationCompleted = Generation completed with success [{0} seconds].
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/product/BrandingIron.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/product/BrandingIron.java
deleted file mode 100644
index 54d8778..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/equinox/p2/publisher/product/BrandingIron.java
+++ /dev/null
@@ -1,499 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * 	IBM Corporation - initial API and implementation
- * 	Code 9 - Additional function and fixes
- ******************************************************************************/
-package org.eclipse.equinox.p2.publisher.product;
-
-import java.io.*;
-import org.eclipse.pde.internal.swt.tools.IconExe;
-
-/**
- *
- */
-public class BrandingIron {
-	private static final String MARKER_NAME = "%EXECUTABLE_NAME%"; //$NON-NLS-1$
-	private static final String BUNDLE_NAME = "%BUNDLE_NAME%"; //$NON-NLS-1$
-	private static final String ICON_NAME = "%ICON_NAME%"; //$NON-NLS-1$
-	private static final String MARKER_KEY = "<key>CFBundleExecutable</key>"; //$NON-NLS-1$
-	private static final String BUNDLE_KEY = "<key>CFBundleName</key>"; //$NON-NLS-1$
-	private static final String ICON_KEY = "<key>CFBundleIconFile</key>"; //$NON-NLS-1$
-	private static final String STRING_START = "<string>"; //$NON-NLS-1$
-	private static final String STRING_END = "</string>"; //$NON-NLS-1$
-	private static final String XDOC_ICON = "-Xdock:icon=../Resources/Eclipse.icns"; //$NON-NLS-1$
-
-	private String[] icons = null;
-	private String root;
-	private String name;
-	private String os = "win32"; //$NON-NLS-1$
-	private boolean brandIcons = true;
-
-	public void setName(String value) {
-		name = value;
-	}
-
-	public void setIcons(String[] value) {
-		icons = value;
-	}
-
-	public void setIcons(String value) {
-		icons = value.split(",\\s*"); //$NON-NLS-1$
-		if (icons[0].startsWith("${")) { //$NON-NLS-1$
-			if (icons.length > 1) {
-				String[] temp = new String[icons.length - 1];
-				System.arraycopy(icons, 1, temp, 0, temp.length);
-				icons = temp;
-			} else {
-				icons = null;
-			}
-		}
-	}
-
-	public void setRoot(String value) {
-		root = value;
-	}
-
-	public void brand() throws Exception {
-		// if the name property is not set it will be ${launcher.name} so just bail.
-		if (name.startsWith("${")) //$NON-NLS-1$
-			return;
-
-		if (icons == null || icons[0].startsWith("${")) //$NON-NLS-1$
-			brandIcons = false;
-
-		// if the root does not exists (happens in some packaging cases) or 
-		// there is already a file with target name and we don't need to update its icons, don't do anything
-		String testName = os.equals("win32") ? name + ".exe" : name; //$NON-NLS-1$ //$NON-NLS-2$
-		if (!new File(root).exists() || (!brandIcons && new File(root, testName).exists()))
-			return;
-
-		if ("win32".equals(os)) //$NON-NLS-1$
-			brandWindows();
-		if ("linux".equals(os)) //$NON-NLS-1$
-			brandLinux();
-		if ("solaris".equals(os)) //$NON-NLS-1$
-			brandSolaris();
-		if ("macosx".equals(os)) //$NON-NLS-1$
-			brandMac();
-		if ("aix".equals(os)) //$NON-NLS-1$
-			brandAIX();
-		if ("hpux".equals(os)) //$NON-NLS-1$
-			brandHPUX();
-	}
-
-	private void brandAIX() {
-		renameLauncher();
-	}
-
-	private void brandHPUX() {
-		renameLauncher();
-	}
-
-	private void brandLinux() throws Exception {
-		renameLauncher();
-		if (brandIcons)
-			copy(new File(icons[0]), new File(root, "icon.xpm")); //$NON-NLS-1$
-	}
-
-	private void brandSolaris() throws Exception {
-		renameLauncher();
-		if (brandIcons == false)
-			return;
-
-		for (int i = 0; i < icons.length; i++) {
-			String icon = icons[i];
-			if (icon.endsWith(".l.pm")) //$NON-NLS-1$
-				copy(new File(icon), new File(root, name + ".l.pm")); //$NON-NLS-1$
-			if (icon.endsWith(".m.pm")) //$NON-NLS-1$
-				copy(new File(icon), new File(root, name + ".m.pm")); //$NON-NLS-1$
-			if (icon.endsWith(".s.pm")) //$NON-NLS-1$
-				copy(new File(icon), new File(root, name + ".s.pm")); //$NON-NLS-1$
-			if (icon.endsWith(".t.pm")) //$NON-NLS-1$
-				copy(new File(icon), new File(root, name + ".t.pm")); //$NON-NLS-1$
-		}
-	}
-
-	private void brandMac() throws Exception {
-		//Initially the files are in: <root>/Eclipse.app/ 
-		//and they must appear in <root>/MyAppName.app/
-		//Because java does not support the rename of a folder, files are copied.
-
-		//Initialize the target folders
-		String target = root + '/' + name + ".app/Contents"; //$NON-NLS-1$
-		new File(target).mkdirs();
-		new File(target + "/MacOS").mkdirs(); //$NON-NLS-1$
-		new File(target + "/Resources").mkdirs(); //$NON-NLS-1$
-
-		String initialRoot = root + "/Launcher.app/Contents"; //$NON-NLS-1$
-		if (!new File(initialRoot).exists())
-			initialRoot = root + "/Eclipse.app/Contents"; //$NON-NLS-1$
-		copyMacLauncher(initialRoot, target);
-		String iconName = ""; //$NON-NLS-1$
-		File splashApp = new File(initialRoot, "Resources/Splash.app"); //$NON-NLS-1$
-		if (brandIcons) {
-			File icon = new File(icons[0]);
-			iconName = icon.getName();
-			copy(icon, new File(target + "/Resources/" + icon.getName())); //$NON-NLS-1$
-			new File(initialRoot + "/Resources/Eclipse.icns").delete(); //$NON-NLS-1$
-			if (!splashApp.exists())
-				new File(initialRoot + "/Resources/").delete(); //$NON-NLS-1$
-		}
-		copyMacIni(initialRoot, target, iconName);
-		modifyInfoPListFile(initialRoot, target, iconName);
-		if (splashApp.exists()) {
-			brandMacSplash(initialRoot, target, iconName);
-		}
-
-		File rootFolder = new File(initialRoot);
-		rootFolder.delete();
-		if (rootFolder.exists()) {
-			//if the rootFolder still exists, its because there were other files that need to be moved over
-			moveContents(rootFolder, new File(target));
-		}
-		rootFolder.getParentFile().delete();
-	}
-
-	/**
-	 * Brand the splash.app Info.plist and  link or copy the mac launcher.
-	 * It is assumed that the mac launcher has been branded already.
-	 * @param initialRoot
-	 * @param target
-	 * @param iconName
-	 */
-	private void brandMacSplash(String initialRoot, String target, String iconName) {
-		String splashContents = "/Resources/Splash.app/Contents"; //$NON-NLS-1$
-		modifyInfoPListFile(initialRoot + splashContents, target + splashContents, iconName);
-
-		//link the MacOS launcher for the splash app
-		int result = -1;
-		String osName = System.getProperty("os.name"); //$NON-NLS-1$
-		if (osName != null && !osName.startsWith("Windows")) { //$NON-NLS-1$
-			try {
-				String[] command = new String[] {"ln", "-sf", "../../../MacOS/" + name, "MacOS/" + name}; //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
-				File linkDir = new File(target, splashContents);
-				Process proc = Runtime.getRuntime().exec(command, null, linkDir);
-				result = proc.waitFor();
-			} catch (IOException e) {
-				// ignore
-			} catch (InterruptedException e) {
-				// ignore
-			}
-		}
-
-		if (result != 0) {
-			//ln failed, or we are on windows, just copy the executable instead
-			File macOSDir = new File(target, "MacOS"); //$NON-NLS-1$
-			File splashMacOSDir = new File(target, splashContents + "/MacOS"); //$NON-NLS-1$
-			splashMacOSDir.mkdirs();
-			try {
-				File targetFile = new File(splashMacOSDir, name);
-				copy(new File(macOSDir, name), targetFile);
-				try {
-					Runtime.getRuntime().exec(new String[] {"chmod", "755", targetFile.getAbsolutePath()}); //$NON-NLS-1$ //$NON-NLS-2$
-				} catch (IOException e) {
-					// ignore
-				}
-			} catch (IOException e) {
-				System.out.println("Could not copy macosx splash launcher"); //$NON-NLS-1$
-			}
-		}
-	}
-
-	private void moveContents(File source, File target) {
-		if (!source.exists())
-			return;
-
-		try {
-			if (source.getCanonicalFile().equals(target.getCanonicalFile()))
-				return;
-		} catch (IOException e) {
-			System.out.println("Could not copy macosx resources."); //$NON-NLS-1$
-			return;
-		}
-
-		target.getParentFile().mkdirs();
-		if (source.isDirectory()) {
-			target.mkdirs();
-			File[] contents = source.listFiles();
-			for (int i = 0; i < contents.length; i++) {
-				File dest = new File(target, contents[i].getName());
-				if (contents[i].isFile())
-					contents[i].renameTo(dest);
-				else
-					moveContents(contents[i], dest);
-			}
-			source.delete();
-		} else {
-			source.renameTo(target);
-		}
-	}
-
-	private void brandWindows() throws Exception {
-		File templateLauncher = new File(root, "launcher.exe"); //$NON-NLS-1$
-		if (!templateLauncher.exists())
-			templateLauncher = new File(root, "eclipse.exe"); //$NON-NLS-1$
-		if (brandIcons) {
-			String[] args = new String[icons.length + 1];
-			args[0] = templateLauncher.getAbsolutePath();
-			System.arraycopy(icons, 0, args, 1, icons.length);
-			IconExe.main(args);
-		}
-		templateLauncher.renameTo(new File(root, name + ".exe")); //$NON-NLS-1$
-	}
-
-	private void renameLauncher() {
-		if (!new File(root, "launcher").renameTo(new File(root, name))) //$NON-NLS-1$
-			new File(root, "eclipse").renameTo(new File(root, name)); //$NON-NLS-1$
-	}
-
-	private void copyMacLauncher(String initialRoot, String target) {
-		String targetLauncher = target + "/MacOS/"; //$NON-NLS-1$
-		File launcher = new File(initialRoot + "/MacOS/launcher"); //$NON-NLS-1$
-		File eclipseLauncher = new File(initialRoot + "/MacOS/eclipse"); //$NON-NLS-1$
-		if (!launcher.exists()) {
-			launcher = eclipseLauncher;
-		} else if (eclipseLauncher.exists()) {
-			//we may actually have both if exporting from the mac
-			eclipseLauncher.delete();
-		}
-		File targetFile = new File(targetLauncher, name);
-		try {
-			if (targetFile.getCanonicalFile().equals(launcher.getCanonicalFile())) {
-				try {
-					//Force the executable bit on the exe because it has been lost when copying the file
-					Runtime.getRuntime().exec(new String[] {"chmod", "755", targetFile.getAbsolutePath()}); //$NON-NLS-1$ //$NON-NLS-2$
-				} catch (IOException e) {
-					//ignore
-				}
-				return;
-			}
-			copy(launcher, targetFile);
-		} catch (IOException e) {
-			System.out.println("Could not copy macosx launcher"); //$NON-NLS-1$
-			return;
-		}
-		try {
-			//Force the executable bit on the exe because it has been lost when copying the file
-			Runtime.getRuntime().exec(new String[] {"chmod", "755", targetFile.getAbsolutePath()}); //$NON-NLS-1$ //$NON-NLS-2$
-		} catch (IOException e) {
-			//ignore
-		}
-		launcher.delete();
-		launcher.getParentFile().delete();
-	}
-
-	private void copyMacIni(String initialRoot, String target, String iconName) {
-		File brandedIni = new File(initialRoot, "/MacOS/" + name + ".ini"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		File ini = new File(initialRoot, "/MacOS/eclipse.ini"); //$NON-NLS-1$
-		if (!ini.exists() && !brandedIni.exists())
-			return;
-
-		if (brandedIni.exists() && ini.exists()) {
-			//take the one that is already branded
-			ini.delete();
-			ini = brandedIni;
-		}
-
-		StringBuffer buffer;
-		try {
-			buffer = readFile(ini);
-			ini.delete();
-		} catch (IOException e) {
-			System.out.println("Impossible to brand ini file"); //$NON-NLS-1$
-			return;
-		}
-
-		if (iconName.length() > 0) {
-			int xdoc = scan(buffer, 0, XDOC_ICON);
-			if (xdoc != -1) {
-				String icns = XDOC_ICON.replaceFirst("Eclipse.icns", iconName); //$NON-NLS-1$
-				buffer.replace(xdoc, xdoc + XDOC_ICON.length(), icns);
-			}
-		}
-
-		try {
-			File targetFile = new File(target, "/MacOS/" + name + ".ini"); //$NON-NLS-1$//$NON-NLS-2$
-			transferStreams(new ByteArrayInputStream(buffer.toString().getBytes()), new FileOutputStream(targetFile));
-		} catch (FileNotFoundException e) {
-			System.out.println("Impossible to brand ini file"); //$NON-NLS-1$
-			return;
-		} catch (IOException e) {
-			System.out.println("Impossible to brand ini file"); //$NON-NLS-1$
-			return;
-		}
-	}
-
-	private void modifyInfoPListFile(String initialRoot, String targetRoot, String iconName) {
-		File infoPList = new File(initialRoot, "Info.plist"); //$NON-NLS-1$
-		StringBuffer buffer;
-		try {
-			buffer = readFile(infoPList);
-		} catch (IOException e) {
-			System.out.println("Impossible to brand info.plist file"); //$NON-NLS-1$
-			return;
-		}
-		int exePos = scan(buffer, 0, MARKER_NAME);
-		if (exePos != -1)
-			buffer.replace(exePos, exePos + MARKER_NAME.length(), name);
-		else {
-			exePos = scan(buffer, 0, MARKER_KEY);
-			if (exePos != -1) {
-				int start = scan(buffer, exePos + MARKER_KEY.length(), STRING_START);
-				int end = scan(buffer, start + STRING_START.length(), STRING_END);
-				if (start > -1 && end > start) {
-					buffer.replace(start + STRING_START.length(), end, name);
-				}
-			}
-		}
-
-		int bundlePos = scan(buffer, 0, BUNDLE_NAME);
-		if (bundlePos != -1)
-			buffer.replace(bundlePos, bundlePos + BUNDLE_NAME.length(), name);
-		else {
-			exePos = scan(buffer, 0, BUNDLE_KEY);
-			if (exePos != -1) {
-				int start = scan(buffer, exePos + BUNDLE_KEY.length(), STRING_START);
-				int end = scan(buffer, start + STRING_START.length(), STRING_END);
-				if (start > -1 && end > start) {
-					buffer.replace(start + STRING_START.length(), end, name);
-				}
-			}
-		}
-
-		int iconPos = scan(buffer, 0, ICON_NAME);
-		if (iconPos != -1)
-			buffer.replace(iconPos, iconPos + ICON_NAME.length(), iconName);
-		else {
-			exePos = scan(buffer, 0, ICON_KEY);
-			if (exePos != -1) {
-				int start = scan(buffer, exePos + ICON_KEY.length(), STRING_START);
-				int end = scan(buffer, start + STRING_START.length(), STRING_END);
-				if (start > -1 && end > start) {
-					buffer.replace(start + STRING_START.length(), end, iconName);
-				}
-			}
-		}
-
-		File target = null;
-		try {
-			target = new File(targetRoot, "Info.plist"); //$NON-NLS-1$
-			target.getParentFile().mkdirs();
-			transferStreams(new ByteArrayInputStream(buffer.toString().getBytes()), new FileOutputStream(target));
-		} catch (FileNotFoundException e) {
-			System.out.println("Impossible to brand info.plist file"); //$NON-NLS-1$
-			return;
-		} catch (IOException e) {
-			System.out.println("Impossible to brand info.plist file"); //$NON-NLS-1$
-			return;
-		}
-		try {
-			if (!infoPList.getCanonicalFile().equals(target.getCanonicalFile()))
-				infoPList.delete();
-		} catch (IOException e) {
-			//ignore
-		}
-	}
-
-	/**
-	 * Transfers all available bytes from the given input stream to the given output stream. 
-	 * Regardless of failure, this method closes both streams.
-	 * @throws IOException 
-	 */
-	public void copy(File source, File destination) throws IOException {
-		InputStream in = null;
-		OutputStream out = null;
-		try {
-			in = new BufferedInputStream(new FileInputStream(source));
-			out = new BufferedOutputStream(new FileOutputStream(destination));
-			final byte[] buffer = new byte[8192];
-			while (true) {
-				int bytesRead = -1;
-				bytesRead = in.read(buffer);
-				if (bytesRead == -1)
-					break;
-				out.write(buffer, 0, bytesRead);
-			}
-		} finally {
-			try {
-				if (in != null)
-					in.close();
-			} finally {
-				if (out != null)
-					out.close();
-			}
-		}
-	}
-
-	private int scan(StringBuffer buf, int start, String targetName) {
-		return scan(buf, start, new String[] {targetName});
-	}
-
-	private int scan(StringBuffer buf, int start, String[] targets) {
-		for (int i = start; i < buf.length(); i++) {
-			for (int j = 0; j < targets.length; j++) {
-				if (i < buf.length() - targets[j].length()) {
-					String match = buf.substring(i, i + targets[j].length());
-					if (targets[j].equalsIgnoreCase(match))
-						return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	private StringBuffer readFile(File targetName) throws IOException {
-		InputStreamReader reader = new InputStreamReader(new BufferedInputStream(new FileInputStream(targetName)));
-		StringBuffer result = new StringBuffer();
-		char[] buf = new char[4096];
-		int count;
-		try {
-			count = reader.read(buf, 0, buf.length);
-			while (count != -1) {
-				result.append(buf, 0, count);
-				count = reader.read(buf, 0, buf.length);
-			}
-		} finally {
-			try {
-				reader.close();
-			} catch (IOException e) {
-				// ignore exceptions here
-			}
-		}
-		return result;
-	}
-
-	private void transferStreams(InputStream source, OutputStream destination) throws IOException {
-		source = new BufferedInputStream(source);
-		destination = new BufferedOutputStream(destination);
-		try {
-			byte[] buffer = new byte[8192];
-			while (true) {
-				int bytesRead = -1;
-				if ((bytesRead = source.read(buffer)) == -1)
-					break;
-				destination.write(buffer, 0, bytesRead);
-			}
-		} finally {
-			try {
-				source.close();
-			} catch (IOException e) {
-				// ignore
-			}
-			try {
-				destination.close();
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-	}
-
-	public void setOS(String value) {
-		os = value;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/pde/internal/swt/tools/IconExe.java b/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/pde/internal/swt/tools/IconExe.java
deleted file mode 100644
index 596e7b8..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src/org/eclipse/pde/internal/swt/tools/IconExe.java
+++ /dev/null
@@ -1,3287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.internal.swt.tools;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Customize the icon of a Windows exe
- * 
- * WARNING! This class is not part of SWT API. It is NOT API. It is an internal
- * tool that may be changed or removed at anytime.
- * 
- * Based on MSDN "An In-Depth Look into the Win32 Portable Executable File Format"
- */
-public class IconExe {
-	
-	 /**
-	 * Replace the Desktop icons provided in the Windows executable program
-	 * with matching icons provided by the user.
-	 *
- 	 * Takes 2 arguments
-	 * argument 0: the Windows executable e.g c:/eclipse/eclipse.exe
-	 * argument 1: The .ico file to write to the given executable e.g. c:/myApp.ico
-	 *
-	 * Note 1. Write access to the executable program is required. As a result, that
-	 * program must not be currently running or edited elsewhere.
-	 * 
-	 * Note 2.  The Eclipse 3.1 launcher requires a .ico file with the following 6 images
-	 * 1. 32x32, 4 bit (Windows 16 colors palette)
-	 * 2. 16x16, 4 bit (Windows 16 colors palette)
-	 * 3. 16x16, 8 bit (256 colors)
-	 * 4. 32x32, 8 bit (256 colors)
-	 * 5. 48x48, 4 bit (Windows 16 colors palette)
-	 * 6. 48x48, 8 bit (256 colors)
-	 * A user icon matching exactly the width/height/depth of an executable icon will be written
-	 * to the executable and will replace that executable icon. If an executable icon
-	 * does not match a user icon, it is silently left as is.
-	 * 
-	 * Note 3. This function modifies the content of the executable program and may cause
-	 * its corruption.
-	 */
-	public static void main(String[] args) throws Exception {
-		if (args.length < 2) {
-			System.err.println("Usage: IconExe <windows executable> <ico file>"); //$NON-NLS-1$
-			return;
-		}
-		ImageLoader loader = new ImageLoader();
-
-		List images = new ArrayList();
-		for (int i = 1; i < args.length; i++) {
-			try {
-				//An ICO should contain 7 images, a BMP will contain 1
-				ImageData[] current = loader.load(args[i]);
-				for (int j = 0; j < current.length; j++) {
-					images.add(current[j]);
-				}
-			} catch (RuntimeException e) {
-				//ignore so that we process the other images
-			}
-		}
-		ImageData[] data = new ImageData[images.size()];
-		data = (ImageData[]) images.toArray(data);
-		
-		int nMissing = unloadIcons(args[0], data);
-		if (nMissing != 0)
-			System.err.println("Error - " + nMissing + " icon(s) not replaced in " + args[0] + " using " + args[1]); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-	
-	/* Implementation */
-
-	/** 
-	 * Retrieve the Desktop icons provided in the Windows executable program.
-	 * These icons are typically shown in various places of the Windows desktop.
-	 * 
-	 * Note.  The Eclipse 3.1 launcher returns the following 6 images
-	 * 1. 32x32, 4 bit (Windows 16 colors palette)
-	 * 2. 16x16, 4 bit (Windows 16 colors palette)
-	 * 3. 16x16, 8 bit (256 colors)
-	 * 4. 32x32, 8 bit (256 colors)
-	 * 5. 48x48, 4 bit (Windows 16 colors palette)
-	 * 6. 48x48, 8 bit (256 colors)
-	 * 
-	 * @param program the Windows executable e.g c:/eclipse/eclipse.exe
-	 */	
-	static ImageData[] loadIcons(String program) throws FileNotFoundException, IOException {
-		RandomAccessFile raf = new RandomAccessFile(program, "r"); //$NON-NLS-1$
-		IconExe iconExe = new IconExe();
-		IconResInfo[] iconInfo = iconExe.getIcons(raf);
-		ImageData[] data = new ImageData[iconInfo.length];
-		for (int i = 0; i < data.length; i++) data[i] = iconInfo[i].data;
-		raf.close();
-		return data;
-	}
-	
-	/** 
-	 * Replace the Desktop icons provided in the Windows executable program
-	 * with icons provided by the user.
-	 * 
-	 * Note 1. Write access to the executable program is required. As a result, that
-	 * program must not be currently running or edited elsewhere.
-	 * 
-	 * Note 2. Use loadIcons to determine which set of icons (width, height, depth)
-	 * is required to replace the icons in the executable program. A user icon
-	 * matching exactly the width/height/depth of an executable icon will be written
-	 * to the executable and will replace that executable icon. If an executable icon
-	 * does not match a user icon, it is left as is. Verify the return value matches
-	 * the number of icons to write. Finally, use loadIcons after this operation
-	 * to verify the icons have changed as expected.
-	 * 
-	 * Note 3. The Eclipse 3.1 launcher requires the following 6 images (in any order).
-	 * 1. 32x32, 4 bit (Windows 16 colors palette)
-	 * 2. 16x16, 4 bit (Windows 16 colors palette)
-	 * 3. 16x16, 8 bit (256 colors)
-	 * 4. 32x32, 8 bit (256 colors)
-	 * 5. 48x48, 4 bit (Windows 16 colors palette)
-	 * 6. 48x48, 8 bit (256 colors)
-	 * 
-	 * Note 4. This function modifies the content of the executable program and may cause
-	 * its corruption. 
-	 * 
-	 * @param program the Windows executable e.g c:/eclipse/eclipse.exe
-	 * @param icons to write to the given executable
-	 * @return the number of icons from the original program that were not successfully replaced (0 if success)
-	 */	
-	static int unloadIcons(String program, ImageData[] icons) throws FileNotFoundException, IOException {
-		RandomAccessFile raf = new RandomAccessFile(program, "rw"); //$NON-NLS-1$
-		IconExe iconExe = new IconExe();
-		IconResInfo[] iconInfo = iconExe.getIcons(raf);
-		int cnt = 0;
-		for (int i = 0; i < iconInfo.length; i++) {
-			for (int j = 0; j < icons.length; j++) {
-				if (icons[j] == null)
-					continue;
-				if (iconInfo[i].data.width == icons[j].width && iconInfo[i].data.height == icons[j].height && iconInfo[i].data.depth == icons[j].depth) {
-					raf.seek(iconInfo[i].offset);
-					unloadIcon(raf, icons[j]);
-					cnt++;
-					break;
-				}
-			}
-		}
-		raf.close();
-		return iconInfo.length - cnt;
-	}
-	
-	public static final String VERSION = "20050124"; //$NON-NLS-1$
-	
-	static final boolean DEBUG = false;
-	public static class IconResInfo {
-		ImageData data;
-		int offset;
-		int size;
-	}
-	
-	IconResInfo[] iconInfo = null;
-	int iconCnt;
-	
-	IconResInfo[] getIcons(RandomAccessFile raf) throws IOException {
-		iconInfo = new IconResInfo[4];
-		iconCnt = 0;
-		IMAGE_DOS_HEADER imageDosHeader = new IMAGE_DOS_HEADER();
-		read(raf, imageDosHeader);
-		if (imageDosHeader.e_magic != IMAGE_DOS_SIGNATURE) return null;
-		int imageNtHeadersOffset = imageDosHeader.e_lfanew;
-		raf.seek(imageNtHeadersOffset);
-		IMAGE_NT_HEADERS imageNtHeaders = new IMAGE_NT_HEADERS();
-		read(raf, imageNtHeaders);
-		if (imageNtHeaders.Signature != IMAGE_NT_SIGNATURE) return null;
-		
-		// DumpResources
-		int resourcesRVA = imageNtHeaders.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress;
-		if (resourcesRVA == 0) return null;
-		if (DEBUG) System.out.println("* Resources (RVA= "+resourcesRVA+")"); //$NON-NLS-1$ //$NON-NLS-2$
-		IMAGE_SECTION_HEADER imageSectionHeader = new IMAGE_SECTION_HEADER();
-		int firstSectionOffset = imageNtHeadersOffset + IMAGE_NT_HEADERS.FIELD_OFFSET_OptionalHeader + imageNtHeaders.FileHeader.SizeOfOptionalHeader;
-		raf.seek(firstSectionOffset);
-		boolean found = false;
-		for (int i = 0; i < imageNtHeaders.FileHeader.NumberOfSections; i++) {
-			read(raf, imageSectionHeader);
-			if (resourcesRVA >= imageSectionHeader.VirtualAddress && resourcesRVA < imageSectionHeader.VirtualAddress + imageSectionHeader.Misc_VirtualSize) {
-				// could check the imageSectionHeader name is .rsrc
-				found = true;
-				break;
-			}
-		}
-		if (!found) return null;
-		int delta = imageSectionHeader.VirtualAddress - imageSectionHeader.PointerToRawData;
-		int imageResourceDirectoryOffset = resourcesRVA - delta;
-		dumpResourceDirectory(raf, imageResourceDirectoryOffset, imageResourceDirectoryOffset, delta, 0, 0, false);
-		if (iconCnt < iconInfo.length) {
-			IconResInfo[] newArray = new IconResInfo[iconCnt];
-			System.arraycopy(iconInfo, 0, newArray, 0, iconCnt);
-			iconInfo = newArray;
-		}
-		return iconInfo;
-	}
-
-void dumpResourceDirectory(RandomAccessFile raf, int imageResourceDirectoryOffset, int resourceBase, int delta, int type, int level, boolean rt_icon_root) throws IOException {
-	if (DEBUG) System.out.println("** LEVEL "+level); //$NON-NLS-1$
-
-	IMAGE_RESOURCE_DIRECTORY imageResourceDirectory = new IMAGE_RESOURCE_DIRECTORY();
-	raf.seek(imageResourceDirectoryOffset);
-	read(raf, imageResourceDirectory);
-
-	if (DEBUG) {
-		String sType = ""+type; //$NON-NLS-1$
-		// level 1 resources are resource types
-		if (level == 1) {
-			System.out.println("___________________________"); //$NON-NLS-1$
-			if (type == RT_ICON) sType = "RT_ICON"; //$NON-NLS-1$
-			if (type == RT_GROUP_ICON) sType = "RT_GROUP_ICON"; //$NON-NLS-1$
-		}
-		System.out.println("Resource Directory ["+sType+"]"+" (Named "+imageResourceDirectory.NumberOfNamedEntries+", ID "+imageResourceDirectory.NumberOfIdEntries+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-	}
-
-	IMAGE_RESOURCE_DIRECTORY_ENTRY[] imageResourceDirectoryEntries = new IMAGE_RESOURCE_DIRECTORY_ENTRY[imageResourceDirectory.NumberOfIdEntries];
-	for (int i = 0; i < imageResourceDirectoryEntries.length; i++) {
-		imageResourceDirectoryEntries[i] = new IMAGE_RESOURCE_DIRECTORY_ENTRY();
-		read(raf, imageResourceDirectoryEntries[i]);
-	}
-	for (int i = 0; i < imageResourceDirectoryEntries.length; i++) {
-		if (imageResourceDirectoryEntries[i].DataIsDirectory) {
-			dumpResourceDirectory(raf, imageResourceDirectoryEntries[i].OffsetToDirectory + resourceBase, resourceBase, delta, imageResourceDirectoryEntries[i].Id, level + 1, rt_icon_root ? true : type == RT_ICON);
-		} else {
-			// Resource found
-			/// pResDirEntry->Name
-			IMAGE_RESOURCE_DIRECTORY_ENTRY irde = imageResourceDirectoryEntries[i];
-			IMAGE_RESOURCE_DATA_ENTRY data = new IMAGE_RESOURCE_DATA_ENTRY();
-			raf.seek(imageResourceDirectoryEntries[i].OffsetToData + resourceBase);
-			read(raf, data);
-			if (DEBUG) System.out.println("Resource Id "+irde.Id+" Data Offset RVA "+data.OffsetToData+", Size "+data.Size); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			if (rt_icon_root) {
-				if (DEBUG) System.out.println("iconcnt "+iconCnt+" |"+iconInfo.length); //$NON-NLS-1$ //$NON-NLS-2$
-				iconInfo[iconCnt] = new IconResInfo();
-				iconInfo[iconCnt].data = parseIcon(raf, data.OffsetToData - delta, data.Size);
-				iconInfo[iconCnt].offset = data.OffsetToData - delta;
-				iconInfo[iconCnt].size = data.Size;	
-				iconCnt++;
-				if (iconCnt == iconInfo.length) {
-					IconResInfo[] newArray = new IconResInfo[iconInfo.length + 4];
-					System.arraycopy(iconInfo, 0, newArray, 0, iconInfo.length);
-					iconInfo = newArray;
-				}
-			}
-		}
- 	}
-}
-
-static ImageData parseIcon(RandomAccessFile raf, int offset, int size) throws IOException {
-	raf.seek(offset);
-	BITMAPINFO bitmapInfo = new BITMAPINFO();
-	read(raf, bitmapInfo);
-	bitmapInfo.bmiHeader.biHeight /= 2;
-	int width = bitmapInfo.bmiHeader.biWidth;
-	int height = bitmapInfo.bmiHeader.biHeight;
-	int depth = bitmapInfo.bmiHeader.biBitCount;
-
-	PaletteData palette = loadPalette(bitmapInfo.bmiHeader, raf);
-	byte[] shapeData = loadData(bitmapInfo.bmiHeader, raf);
-	bitmapInfo.bmiHeader.biBitCount = 1;
-	byte[] maskData = loadData(bitmapInfo.bmiHeader, raf);
-	maskData = convertPad(maskData, width, height, 1, 4, 2);
-	bitInvertData(maskData, 0, maskData.length);
-	return ImageData.internal_new(
-		width,
-		height,
-		depth,
-		palette,
-		4,
-		shapeData,
-		2,
-		maskData,
-		null,
-		-1,
-		-1,
-		SWT.IMAGE_ICO,
-		0,
-		0,
-		0,
-		0);
-}
-
-static byte[] bitInvertData(byte[] data, int startIndex, int endIndex) {
-	// Destructively bit invert data in the given byte array.
-	for (int i = startIndex; i < endIndex; i++) {
-		data[i] = (byte)(255 - data[i - startIndex]);
-	}
-	return data;
-}
-
-static final byte[] convertPad(byte[] data, int width, int height, int depth, int pad, int newPad) {
-	if (pad == newPad) return data;
-	int stride = (width * depth + 7) / 8;
-	int bpl = (stride + (pad - 1)) / pad * pad;
-	int newBpl = (stride + (newPad - 1)) / newPad * newPad;
-	byte[] newData = new byte[height * newBpl];
-	int srcIndex = 0, destIndex = 0;
-	for (int y = 0; y < height; y++) {
-		System.arraycopy(data, srcIndex, newData, destIndex, newBpl);
-		srcIndex += bpl;
-		destIndex += newBpl;
-	}
-	return newData;
-}
-static PaletteData loadPalette(BITMAPINFOHEADER bih, RandomAccessFile raf) throws IOException {
-	int depth = bih.biBitCount;
-	if (depth <= 8) {
-		int numColors = bih.biClrUsed;
-		if (numColors == 0) {
-			numColors = 1 << depth;
-		} else {
-			if (numColors > 256)
-				numColors = 256;
-		}
-		byte[] buf = new byte[numColors * 4];
-		raf.read(buf);
-		return paletteFromBytes(buf, numColors);
-	}
-	if (depth == 16) return new PaletteData(0x7C00, 0x3E0, 0x1F);
-	if (depth == 24) return new PaletteData(0xFF, 0xFF00, 0xFF0000);
-	return new PaletteData(0xFF00, 0xFF0000, 0xFF000000);
-}
-static PaletteData paletteFromBytes(byte[] bytes, int numColors) {
-	int bytesOffset = 0;
-	RGB[] colors = new RGB[numColors];
-	for (int i = 0; i < numColors; i++) {
-		colors[i] = new RGB(bytes[bytesOffset + 2] & 0xFF,
-			bytes[bytesOffset + 1] & 0xFF,
-			bytes[bytesOffset] & 0xFF);
-		bytesOffset += 4;
-	}
-	return new PaletteData(colors);
-}
-static byte[] loadData(BITMAPINFOHEADER bih, RandomAccessFile raf) throws IOException {
-	int stride = (bih.biWidth * bih.biBitCount + 7) / 8;
-	stride = (stride + 3) / 4 * 4; // Round up to 4 byte multiple
-	byte[] data = loadData(bih, raf, stride);
-	flipScanLines(data, stride, bih.biHeight);
-	return data;
-}
-static void flipScanLines(byte[] data, int stride, int height) {
-	int i1 = 0;
-	int i2 = (height - 1) * stride;
-	for (int i = 0; i < height / 2; i++) {
-		for (int index = 0; index < stride; index++) {
-			byte b = data[index + i1];
-			data[index + i1] = data[index + i2];
-			data[index + i2] = b;
-		}
-		i1 += stride;
-		i2 -= stride;
-	}
-}
-static byte[] loadData(BITMAPINFOHEADER bih, RandomAccessFile raf, int stride) throws IOException {
-	int dataSize = bih.biHeight * stride;
-	byte[] data = new byte[dataSize];
-	int cmp = bih.biCompression;
-	if (cmp == 0) { // BMP_NO_COMPRESSION
-		raf.read(data);
-	} else {
-		if (DEBUG) System.out.println("ICO cannot be compressed?"); //$NON-NLS-1$
-	}
-	return data;
-}
-
-static void unloadIcon(RandomAccessFile raf, ImageData icon) throws IOException {
-	int sizeImage = (((icon.width * icon.depth + 31) / 32 * 4) +
-		((icon.width + 31) / 32 * 4)) * icon.height;
-	write4(raf, BMPHeaderFixedSize);
-	write4(raf, icon.width);
-	write4(raf, icon.height * 2);
-	writeU2(raf, 1);
-	writeU2(raf, icon.depth);
-	write4(raf, 0);
-	write4(raf, sizeImage);
-	write4(raf, 0);
-	write4(raf, 0);
-	write4(raf, icon.palette.colors != null ? icon.palette.colors.length : 0);
-	write4(raf, 0);
-	
-	byte[] rgbs = paletteToBytes(icon.palette);
-	raf.write(rgbs);
-	unloadShapeData(raf, icon);
-	unloadMaskData(raf, icon);
-}
-static byte[] paletteToBytes(PaletteData pal) {
-	int n = pal.colors == null ? 0 : (pal.colors.length < 256 ? pal.colors.length : 256);
-	byte[] bytes = new byte[n * 4];
-	int offset = 0;
-	for (int i = 0; i < n; i++) {
-		RGB col = pal.colors[i];
-		bytes[offset] = (byte)col.blue;
-		bytes[offset + 1] = (byte)col.green;
-		bytes[offset + 2] = (byte)col.red;
-		offset += 4;
-	}
-	return bytes;
-}
-static void unloadMaskData(RandomAccessFile raf, ImageData icon) {
-	ImageData mask = icon.getTransparencyMask();
-	int bpl = (icon.width + 7) / 8;
-	int pad = mask.scanlinePad;
-	int srcBpl = (bpl + pad - 1) / pad * pad;
-	int destBpl = (bpl + 3) / 4 * 4;
-	byte[] buf = new byte[destBpl];
-	int offset = (icon.height - 1) * srcBpl;
-	byte[] data = mask.data;
-	try {
-		for (int i = 0; i < icon.height; i++) {
-			System.arraycopy(data, offset, buf, 0, bpl);
-			bitInvertData(buf, 0, bpl);
-			raf.write(buf, 0, destBpl);
-			offset -= srcBpl;
-		}
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-}
-static void unloadShapeData(RandomAccessFile raf, ImageData icon) {
-	int bpl = (icon.width * icon.depth + 7) / 8;
-	int pad = icon.scanlinePad;
-	int srcBpl = (bpl + pad - 1) / pad * pad;
-	int destBpl = (bpl + 3) / 4 * 4;
-	byte[] buf = new byte[destBpl];
-	int offset = (icon.height - 1) * srcBpl;
-	byte[] data = icon.data;
-	try {
-		for (int i = 0; i < icon.height; i++) {
-			System.arraycopy(data, offset, buf, 0, bpl);
-			raf.write(buf, 0, destBpl);
-			offset -= srcBpl;
-		}
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-}
-static boolean readIconGroup(RandomAccessFile raf, int offset, int size) throws IOException {
-	raf.seek(offset);
-	NEWHEADER newHeader = new NEWHEADER();
-	read(raf, newHeader);
-	if (newHeader.ResType != RES_ICON) return false;
-	RESDIR[] resDir = new RESDIR[newHeader.ResCount];
-	for (int i = 0; i < newHeader.ResCount; i++) {
-		resDir[i] = new RESDIR();
-		read(raf, resDir[i]);
-	}
-	return true;
-}
-
-static void copyFile(String src, String dst) throws FileNotFoundException, IOException {
-	File srcFile = new File(src);
-	File dstFile = new File(dst);
-	InputStream in = new BufferedInputStream(new FileInputStream(srcFile));
-	OutputStream out = new BufferedOutputStream(new FileOutputStream(dstFile));
-	int c;
-	while ((c = in.read()) != -1) out.write(c); 
-	in.close();
-	out.close();
-}
-
-/* IO utilities to parse Windows executable */
-static final int IMAGE_DOS_SIGNATURE = 0x5a4d;
-static final int IMAGE_NT_SIGNATURE = 0x00004550;
-static final int IMAGE_DIRECTORY_ENTRY_RESOURCE = 2;
-static final int RES_ICON = 1;
-static final int RT_ICON = 3;
-static final int RT_GROUP_ICON = 14;
-static final int BMPHeaderFixedSize = 40;
-	
-public static class IMAGE_DOS_HEADER {
-	int e_magic; // WORD
-	int e_cblp; // WORD
-	int e_cp; // WORD
-	int e_crlc; // WORD
-	int e_cparhdr; // WORD
-	int e_minalloc; // WORD
-	int e_maxalloc; // WORD
-	int e_ss; // WORD
-	int e_sp; // WORD
-	int e_csum; // WORD
-	int e_ip; // WORD
-	int e_cs; // WORD
-	int e_lfarlc; // WORD
-	int e_ovno; // WORD
-	int[] e_res = new int[4]; // WORD[4]
-	int e_oemid; // WORD
-	int e_oeminfo; // WORD
-	int[] e_res2 = new int[10]; // WORD[10]
-	int e_lfanew; // LONG
-}
-
-public static class IMAGE_FILE_HEADER {
-	int Machine; // WORD
-	int NumberOfSections; // WORD
-	int TimeDateStamp; // DWORD
-	int PointerToSymbolTable; // DWORD
-	int NumberOfSymbols; // DWORD
-	int SizeOfOptionalHeader; // WORD
-	int Characteristics; // WORD
-}
-
-public static class IMAGE_DATA_DIRECTORY {
-	int VirtualAddress; // DWORD
-	int Size; // DWORD
-}
-
-public static class IMAGE_OPTIONAL_HEADER {
-	int Magic; // WORD
-	int MajorLinkerVersion; // BYTE
-	int MinorLinkerVersion; // BYTE
-	int SizeOfCode; // DWORD
-	int SizeOfInitializedData; // DWORD
-	int SizeOfUninitializedData; // DWORD
-	int AddressOfEntryPoint; // DWORD
-	int BaseOfCode; // DWORD
-	int BaseOfData; // DWORD
-	int ImageBase; // DWORD
-	int SectionAlignment; // DWORD
-	int FileAlignment; // DWORD
-	int MajorOperatingSystemVersion; // WORD
-	int MinorOperatingSystemVersion; // WORD
-	int MajorImageVersion; // WORD
-	int MinorImageVersion; // WORD
-	int MajorSubsystemVersion; // WORD
-	int MinorSubsystemVersion; // WORD
-	int Win32VersionValue; // DWORD
-	int SizeOfImage; // DWORD
-	int SizeOfHeaders; // DWORD
-	int CheckSum; // DWORD
-	int Subsystem; // WORD
-	int DllCharacteristics; // WORD
-	int SizeOfStackReserve; // DWORD
-	int SizeOfStackCommit; // DWORD
-	int SizeOfHeapReserve; // DWORD
-	int SizeOfHeapCommit; // DWORD
-	int LoaderFlags; // DWORD
-	int NumberOfRvaAndSizes; // DWORD
-	IMAGE_DATA_DIRECTORY[] DataDirectory = new IMAGE_DATA_DIRECTORY[16];
-}
-public static class IMAGE_NT_HEADERS {
-	int Signature; // DWORD
-	IMAGE_FILE_HEADER FileHeader = new IMAGE_FILE_HEADER();
-	IMAGE_OPTIONAL_HEADER OptionalHeader = new IMAGE_OPTIONAL_HEADER();
-	final static int FIELD_OFFSET_OptionalHeader = 24;  
-}
-	
-public static class IMAGE_SECTION_HEADER {
-	int[] Name = new int[8]; // BYTE[8]
-	int Misc_VirtualSize; // DWORD (union Misc { DWORD PhysicalAddress; DWORD VirtualSize }
-	int VirtualAddress; // DWORD
-	int SizeOfRawData; // DWORD
-	int PointerToRawData; // DWORD
-	int PointerToRelocations; // DWORD
-	int PointerToLinenumbers; // DWORD
-	int NumberOfRelocations; // WORD
-	int NumberOfLinenumbers; // WORD
-	int Characteristics; // DWORD
-}
-
-public static class IMAGE_RESOURCE_DIRECTORY {
-	int Characteristics; // DWORD
-	int TimeDateStamp; // DWORD
-	int MajorVersion; // WORD
-	int MinorVersion; // WORD
-	int NumberOfNamedEntries; // WORD - used
-	int NumberOfIdEntries; // WORD - used
-	final static int SIZEOF = 16;
-}
-
-public static class IMAGE_RESOURCE_DIRECTORY_ENTRY {
-	// union
-	int NameOffset; // DWORD 31 bits
-	boolean NameIsString; // DWORD 1 bit
-	int Name; // DWORD
-	int Id; // WORD
-	// union
-	int OffsetToData; // DWORD
-	int OffsetToDirectory; // DWORD 31 bits
-	boolean DataIsDirectory; // DWORD 1 bit
-}
-
-public static class IMAGE_RESOURCE_DATA_ENTRY {
-	int OffsetToData; // DWORD
-	int Size; // DWORD
-	int CodePage; // DWORD
-	int Reserved; // DWORD
-}
-
-public static class NEWHEADER {
-	int Reserved; // WORD
-	int ResType; // WORD
-	int ResCount; // WORD
-}
-
-public static class ICONRESDIR {
-	int Width; // BYTE
-	int Height; // BYTE
-	int ColorCount; // BYTE
-	int reserved; // BYTE
-}
-
-public static class CURSORDIR {
-	int Width; // WORD
-	int Height; // WORD
-}
-
-public static class RESDIR {
-	// union
-	ICONRESDIR Icon = new ICONRESDIR();
-	CURSORDIR Cursor = new CURSORDIR();
-	int Planes; // WORD
-	int BitCount; // WORD
-	int BytesInRes; // DWORD
-	int IconCursorId; // WORD
-}
-
-public static class BITMAPINFOHEADER {
-	int biSize; // DWORD
-	int biWidth; // LONG
-	int biHeight; // LONG
-	int biPlanes; // WORD
-	int biBitCount; // WORD
-	int biCompression; // DWORD
-	int biSizeImage; // DWORD
-	int biXPelsPerMeter; // LONG
-	int biYPelsPerMeter; // LONG
-	int biClrUsed; // DWORD
-	int biClrImportant; // DWORD
-}
-
-static class RGBQUAD {
-	int rgBlue; // BYTE
-	int rgbGreen; // BYTE
-	int rgbRed; // BYTE
-	int rgbReserved; // BYTE
-}
-static class BITMAPINFO {
-	BITMAPINFOHEADER bmiHeader = new BITMAPINFOHEADER();
-	RGBQUAD[] bmiColors = null;
-}
-static void read(RandomAccessFile raf, BITMAPINFOHEADER bih) throws IOException {
-	bih.biSize = read4(raf);
-	bih.biWidth = read4(raf);
-	bih.biHeight = read4(raf);
-	bih.biPlanes = readU2(raf);
-	bih.biBitCount = readU2(raf);
-	bih.biCompression = read4(raf);
-	bih.biSizeImage = read4(raf);
-	bih.biXPelsPerMeter = read4(raf);
-	bih.biYPelsPerMeter = read4(raf);
-	bih.biClrUsed = read4(raf);
-	bih.biClrImportant = read4(raf);
-}
-static void read(RandomAccessFile raf, BITMAPINFO bi) throws IOException {
-	read(raf, bi.bmiHeader);
-}
-/* Little Endian helpers */
-static int readU2(RandomAccessFile raf) throws IOException {
-	int b0 = raf.readByte() & 0xFF;
-	int b1 = raf.readByte() & 0xFF;
-	return (b1 << 8 | b0);
-}
-static int read4(RandomAccessFile raf) throws IOException {
-	int b0 = raf.readByte() & 0xFF;
-	int b1 = raf.readByte() & 0xFF;
-	int b2 = raf.readByte() & 0xFF;
-	int b3 = raf.readByte() & 0xFF;
-	return b3 << 24 | b2 << 16 | b1 << 8 | b0;
-}
-static void write4(RandomAccessFile raf, int value) throws IOException {
-	raf.write(value & 0xFF);
-	raf.write((value >> 8) & 0xFF);
-	raf.write((value >> 16) & 0xFF);
-	raf.write((value >> 24) & 0xFF);
-}
-static void writeU2(RandomAccessFile raf, int value) throws IOException {
-	raf.write(value & 0xFF);
-	raf.write((value >> 8) & 0xFF);
-}
-static void read(RandomAccessFile raf, IMAGE_DOS_HEADER idh) throws IOException {
-	idh.e_magic = readU2(raf);
-	idh.e_cblp = readU2(raf);
-	idh.e_cp = readU2(raf);
-	idh.e_crlc = readU2(raf);
-	idh.e_cparhdr = readU2(raf);
-	idh.e_minalloc = readU2(raf);
-	idh.e_maxalloc = readU2(raf);
-	idh.e_ss = readU2(raf);
-	idh.e_sp = readU2(raf);
-	idh.e_csum = readU2(raf);
-	idh.e_ip = readU2(raf);
-	idh.e_cs = readU2(raf);
-	idh.e_lfarlc = readU2(raf);
-	idh.e_ovno = readU2(raf);
-	for (int i = 0; i < idh.e_res.length; i++) idh.e_res[i] = readU2(raf);
-	idh.e_oemid = readU2(raf);
-	idh.e_oeminfo = readU2(raf);
-	for (int i = 0; i < idh.e_res2.length; i++) idh.e_res2[i] = readU2(raf);
-	idh.e_lfanew = read4(raf);
-}
-static void read(RandomAccessFile raf, IMAGE_FILE_HEADER ifh) throws IOException {
-	ifh.Machine = readU2(raf);
-	ifh.NumberOfSections = readU2(raf);
-	ifh.TimeDateStamp = read4(raf);
-	ifh.PointerToSymbolTable = read4(raf);
-	ifh.NumberOfSymbols = read4(raf);
-	ifh.SizeOfOptionalHeader = readU2(raf);
-	ifh.Characteristics  = readU2(raf);
-}
-static void read(RandomAccessFile raf, IMAGE_DATA_DIRECTORY idd) throws IOException {
-	idd.VirtualAddress = read4(raf);
-	idd.Size = read4(raf);
-}
-static void read(RandomAccessFile raf, IMAGE_OPTIONAL_HEADER ioh) throws IOException {
-	ioh.Magic = readU2(raf);
-	ioh.MajorLinkerVersion = raf.read();
-	ioh.MinorLinkerVersion = raf.read();
-	ioh.SizeOfCode = read4(raf);
-	ioh.SizeOfInitializedData = read4(raf);
-	ioh.SizeOfUninitializedData = read4(raf);
-	ioh.AddressOfEntryPoint = read4(raf);
-	ioh.BaseOfCode = read4(raf);
-	ioh.BaseOfData = read4(raf);
-	ioh.ImageBase = read4(raf);
-	ioh.SectionAlignment = read4(raf);
-	ioh.FileAlignment = read4(raf);
-	ioh.MajorOperatingSystemVersion = readU2(raf);
-	ioh.MinorOperatingSystemVersion = readU2(raf);
-	ioh.MajorImageVersion = readU2(raf);
-	ioh.MinorImageVersion = readU2(raf);
-	ioh.MajorSubsystemVersion = readU2(raf);
-	ioh.MinorSubsystemVersion = readU2(raf);
-	ioh.Win32VersionValue = read4(raf);
-	ioh.SizeOfImage = read4(raf);
-	ioh.SizeOfHeaders = read4(raf);
-	ioh.CheckSum = read4(raf);
-	ioh.Subsystem = readU2(raf);
-	ioh.DllCharacteristics = readU2(raf);
-	ioh.SizeOfStackReserve = read4(raf);
-	ioh.SizeOfStackCommit = read4(raf);
-	ioh.SizeOfHeapReserve = read4(raf);
-	ioh.SizeOfHeapCommit = read4(raf);
-	ioh.LoaderFlags = read4(raf);
-	ioh.NumberOfRvaAndSizes = read4(raf);
-	for (int i = 0 ; i < ioh.DataDirectory.length; i++) {
-		ioh.DataDirectory[i] = new IMAGE_DATA_DIRECTORY();
-		read(raf, ioh.DataDirectory[i]);
-	}
-}
-static void read(RandomAccessFile raf, IMAGE_NT_HEADERS inh) throws IOException {
-	inh.Signature = read4(raf);
-	read(raf, inh.FileHeader);
-	read(raf, inh.OptionalHeader);
-}
-static void read(RandomAccessFile raf, IMAGE_SECTION_HEADER ish) throws IOException {
-	for (int i = 0 ; i < ish.Name.length; i++) ish.Name[i] = raf.read();
-	ish.Misc_VirtualSize = read4(raf);
-	ish.VirtualAddress = read4(raf);
-	ish.SizeOfRawData = read4(raf);
-	ish.PointerToRawData = read4(raf);
-	ish.PointerToRelocations = read4(raf);
-	ish.PointerToLinenumbers = read4(raf);
-	ish.NumberOfRelocations = readU2(raf);
-	ish.NumberOfLinenumbers = readU2(raf);
-	ish.Characteristics = read4(raf);
-}
-static void read(RandomAccessFile raf, IMAGE_RESOURCE_DIRECTORY ird) throws IOException {
-	ird.Characteristics = read4(raf);
-	ird.TimeDateStamp = read4(raf);
-	ird.MajorVersion = readU2(raf);
-	ird.MinorVersion = readU2(raf);
-	ird.NumberOfNamedEntries = readU2(raf);
-	ird.NumberOfIdEntries = readU2(raf);
-}
-static void read(RandomAccessFile raf, IMAGE_RESOURCE_DIRECTORY_ENTRY irde) throws IOException {
-	irde.Name = read4(raf);
-	irde.OffsetToData = read4(raf);
-	// construct other union members
-	irde.NameOffset = irde.Name & ~ (1 << 31);
-	irde.NameIsString = (irde.Name & (1 << 31)) != 0;
-	irde.Id = irde.Name & 0xFFFF;
-	irde.OffsetToDirectory = irde.OffsetToData & ~ (1 << 31);
-	irde.DataIsDirectory = (irde.OffsetToData & (1 << 31)) != 0;
-}
-static void read(RandomAccessFile raf, IMAGE_RESOURCE_DATA_ENTRY irde) throws IOException {
-	irde.OffsetToData = read4(raf);
-	irde.Size = read4(raf);
-	irde.CodePage = read4(raf);
-	irde.Reserved = read4(raf);
-}
-static void read(RandomAccessFile raf, NEWHEADER nh) throws IOException {
-	nh.Reserved = readU2(raf);
-	nh.ResType = readU2(raf);
-	nh.ResCount = readU2(raf);
-}
-static void read(RandomAccessFile raf, ICONRESDIR i) throws IOException {
-	i.Width = raf.read();
-	i.Height = raf.read();
-	i.ColorCount = raf.read();
-	i.reserved = raf.read();
-}
-static void read(RandomAccessFile raf, CURSORDIR c) throws IOException {
-	c.Width = readU2(raf);
-	c.Height = readU2(raf);
-}
-static void read(RandomAccessFile raf, RESDIR rs) throws IOException {
-	long start = raf.getFilePointer();
-	read(raf, rs.Icon);
-	raf.seek(start);
-	read(raf, rs.Cursor);
-	rs.Planes = readU2(raf);
-	rs.BitCount = readU2(raf);
-	rs.BytesInRes = read4(raf);
-	rs.IconCursorId = readU2(raf);
-}
-
-/* ImageData and Image Decoder inlining to avoid dependency on SWT 
- * The following section can be entirely removed if SWT can be used.
- */
-
-static class RGB {
-	
-	/**
-	 * the red component of the RGB
-	 */
-	public int red;
-	
-	/**
-	 * the green component of the RGB
-	 */
-	public int green;
-	
-	/**
-	 * the blue component of the RGB
-	 */
-	public int blue;
-	
-	static final long serialVersionUID = 3258415023461249074L;
-	
-/**
- * Constructs an instance of this class with the given
- * red, green and blue values.
- *
- * @param red the red component of the new instance
- * @param green the green component of the new instance
- * @param blue the blue component of the new instance
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_INVALID_ARGUMENT - if the red, green or blue argument is not between 0 and 255</li>
- * </ul>
- */
-public RGB(int red, int green, int blue) {
-	if ((red > 255) || (red < 0) ||
-		(green > 255) || (green < 0) ||
-		(blue > 255) || (blue < 0))
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-	this.red = red;
-	this.green = green;
-	this.blue = blue;
-}
-
-/**
- * Compares the argument to the receiver, and returns true
- * if they represent the <em>same</em> object using a class
- * specific comparison.
- *
- * @param object the object to compare with this object
- * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise
- *
- * @see #hashCode()
- */
-public boolean equals (Object object) {
-	if (object == this) return true;
-	if (!(object instanceof RGB)) return false;
-	RGB rgb = (RGB)object;
-	return (rgb.red == this.red) && (rgb.green == this.green) && (rgb.blue == this.blue);
-}
-
-/**
- * Returns an integer hash code for the receiver. Any two 
- * objects which return <code>true</code> when passed to 
- * <code>equals</code> must return the same value for this
- * method.
- *
- * @return the receiver's hash
- *
- * @see #equals(Object)
- */
-public int hashCode () {
-	return (blue << 16) | (green << 8) | red;
-}
-
-/**
- * Returns a string containing a concise, human-readable
- * description of the receiver.
- *
- * @return a string representation of the <code>RGB</code>
- */
-public String toString () {
-	return "RGB {" + red + ", " + green + ", " + blue + "}"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ 
-
-//$NON-NLS-4$
-}
-
-}
-static class PaletteData {
-	
-	/**
-	 * true if the receiver is a direct palette, 
-	 * and false otherwise
-	 */
-	public boolean isDirect;
-	
-	/**
-	 * the RGB values for an indexed palette, where the
-	 * indices of the array correspond to pixel values
-	 */
-	public RGB[] colors;
-	
-	/**
-	 * the red mask for a direct palette
-	 */
-	public int redMask;
-	
-	/**
-	 * the green mask for a direct palette
-	 */
-	public int greenMask;
-	
-	/**
-	 * the blue mask for a direct palette
-	 */
-	public int blueMask;
-	
-	/**
-	 * the red shift for a direct palette
-	 */
-	public int redShift;
-	
-	/**
-	 * the green shift for a direct palette
-	 */
-	public int greenShift;
-	
-	/**
-	 * the blue shift for a direct palette
-	 */
-	public int blueShift;
-
-/**
- * Constructs a new indexed palette given an array of RGB values.
- *
- * @param colors the array of <code>RGB</code>s for the palette
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the argument is null</li>
- * </ul>
- */
-public PaletteData(RGB[] colors) {
-	if (colors == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	this.colors = colors;
-	this.isDirect = false;
-}
-
-/**
- * Constructs a new direct palette given the red, green and blue masks.
- *
- * @param redMask the red mask
- * @param greenMask the green mask
- * @param blueMask the blue mask
- */
-public PaletteData(int redMask, int greenMask, int blueMask) {
-	this.redMask = redMask;
-	this.greenMask = greenMask;
-	this.blueMask = blueMask;
-	this.isDirect = true;
-	this.redShift = shiftForMask(redMask);
-	this.greenShift = shiftForMask(greenMask);
-	this.blueShift = shiftForMask(blueMask);
-}
-
-/**
- * Returns the pixel value corresponding to the given <code>RBG</code>.
- *
- * @param rgb the RGB to get the pixel value for
- * @return the pixel value for the given RGB
- * 
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the argument is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if the RGB is not found in the palette</li>
- * </ul>
- */
-public int getPixel(RGB rgb) {
-	if (rgb == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	if (isDirect) {
-		int pixel = 0;
-		pixel |= (redShift < 0 ? rgb.red << -redShift : rgb.red >>> redShift) & redMask;
-		pixel |= (greenShift < 0 ? rgb.green << -greenShift : rgb.green >>> greenShift) & greenMask;
-		pixel |= (blueShift < 0 ? rgb.blue << -blueShift : rgb.blue >>> blueShift) & blueMask;
-		return pixel;
-	} 
-
-	for (int i = 0; i < colors.length; i++) {
-		if (colors[i].equals(rgb)) return i;
-	}
-	/* The RGB did not exist in the palette */
-	SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-	return 0;
-}
-
-/**
- * Returns an <code>RGB</code> corresponding to the given pixel value.
- *
- * @param pixel the pixel to get the RGB value for
- * @return the RGB value for the given pixel
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the argument is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if the pixel does not exist in the palette</li>
- * </ul>
- */
-public RGB getRGB(int pixel) {
-	if (isDirect) {
-		int r = pixel & redMask;
-		r = (redShift < 0) ? r >>> -redShift : r << redShift;
-		int g = pixel & greenMask;
-		g = (greenShift < 0) ? g >>> -greenShift : g << greenShift;
-		int b = pixel & blueMask;
-		b = (blueShift < 0) ? b >>> -blueShift : b << blueShift;
-		return new RGB(r, g, b);
-	}
-	if (pixel < 0 || pixel >= colors.length) {
-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-	}
-	return colors[pixel];
-}
-
-/**
- * Returns all the RGB values in the receiver if it is an
- * indexed palette, or null if it is a direct palette.
- *
- * @return the <code>RGB</code>s for the receiver or null
- */
-public RGB[] getRGBs() {
-	return colors;
-}
-
-/**
- * Computes the shift value for a given mask.
- *
- * @param mask the mask to compute the shift for
- * @return the shift amount
- *
- * @see PaletteData
- */
-int shiftForMask(int mask) {
-	for (int i = 31; i >= 0; i--) { 
-		if (((mask >> i) & 0x1) != 0) return 7 - i;
-	}
-	return 32;
-}
-
-}
-static class ImageLoader {
-	
-	/**
-	 * the array of ImageData objects in this ImageLoader.
-	 * This array is read in when the load method is called,
-	 * and it is written out when the save method is called
-	 */
-	public ImageData[] data;
-	
-	/**
-	 * the width of the logical screen on which the images
-	 * reside, in pixels (this corresponds to the GIF89a
-	 * Logical Screen Width value)
-	 */
-	public int logicalScreenWidth;
-
-	/**
-	 * the height of the logical screen on which the images
-	 * reside, in pixels (this corresponds to the GIF89a
-	 * Logical Screen Height value)
-	 */
-	public int logicalScreenHeight;
-
-	/**
-	 * the background pixel for the logical screen (this 
-	 * corresponds to the GIF89a Background Color Index value).
-	 * The default is -1 which means 'unspecified background'
-	 * 
-	 */
-	public int backgroundPixel;
-
-	/**
-	 * the number of times to repeat the display of a sequence
-	 * of animated images (this corresponds to the commonly-used
-	 * GIF application extension for "NETSCAPE 2.0 01")
-	 */
-	public int repeatCount;
-		
-	/*
-	 * the set of ImageLoader event listeners, created on demand
-	 */
-	Vector imageLoaderListeners;
-
-/**
- * Construct a new empty ImageLoader.
- */
-public ImageLoader() {
-	reset();
-}
-
-/**
- * Resets the fields of the ImageLoader, except for the
- * <code>imageLoaderListeners</code> field.
- */
-void reset() {
-	data = null;
-	logicalScreenWidth = 0;
-	logicalScreenHeight = 0;
-	backgroundPixel = -1;
-	repeatCount = 1;
-}
-
-/**
- * Loads an array of <code>ImageData</code> objects from the
- * specified input stream. Throws an error if either an error
- * occurs while loading the images, or if the images are not
- * of a supported type. Returns the loaded image data array.
- *
- * @param stream the input stream to load the images from
- * @return an array of <code>ImageData</code> objects loaded from the specified input stream
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the stream is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_INVALID_IMAGE - if the image file contains invalid data</li>
- *    <li>ERROR_IO - if an input/output error occurs while reading data</li>
- *    <li>ERROR_UNSUPPORTED_FORMAT - if the image file contains an unrecognized format</li>
- * </ul>
- */
-public ImageData[] load(InputStream stream) {
-	if (stream == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	reset();
-	data = FileFormat.load(stream, this);
-	return data;
-}
-
-/**
- * Loads an array of <code>ImageData</code> objects from the
- * file with the specified name. Throws an error if either
- * an error occurs while loading the images, or if the images are
- * not of a supported type. Returns the loaded image data array.
- *
- * @param filename the name of the file to load the images from
- * @return an array of <code>ImageData</code> objects loaded from the specified file
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the file name is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_INVALID_IMAGE - if the image file contains invalid data</li>
- *    <li>ERROR_IO - if an IO error occurs while reading data</li>
- *    <li>ERROR_UNSUPPORTED_FORMAT - if the image file contains an unrecognized format</li>
- * </ul>
- */
-public ImageData[] load(String filename) {
-	if (filename == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	InputStream stream = null;
-	try {
-		stream = new BufferedInputStream(new FileInputStream(filename));
-		return load(stream);
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	} finally {
-		try {
-			if (stream != null) stream.close();
-		} catch (IOException e) {
-			// Ignore error
-		}
-	}
-	return null;
-}
-}
-static class ImageData {
-	
-	/**
-	 * The width of the image, in pixels.
-	 */
-	public int width;
-
-	/**
-	 * The height of the image, in pixels.
-	 */
-	public int height;
-
-	/**
-	 * The color depth of the image, in bits per pixel.
-	 * <p>
-	 * Note that a depth of 8 or less does not necessarily
-	 * mean that the image is palette indexed, or
-	 * conversely that a depth greater than 8 means that
-	 * the image is direct color.  Check the associated
-	 * PaletteData's isDirect field for such determinations.
-	 */
-	public int depth;
-
-	/**
-	 * The scanline padding.
-	 * <p>
-	 * If one scanline of the image is not a multiple of
-	 * this number, it will be padded with zeros until it is.
-	 * </p>
-	 */
-	public int scanlinePad;
-
-	/**
-	 * The number of bytes per scanline.
-	 * <p>
-	 * This is a multiple of the scanline padding.
-	 * </p>
-	 */
-	public int bytesPerLine;
-
-	/**
-	 * The pixel data of the image.
-	 * <p>
-	 * Note that for 16 bit depth images the pixel data is stored
-	 * in least significant byte order; however, for 24bit and
-	 * 32bit depth images the pixel data is stored in most
-	 * significant byte order.
-	 * </p>
-	 */
-	public byte[] data;
-
-	/**
-	 * The color table for the image.
-	 */
-	public PaletteData palette;
-
-	/**
-	 * The transparent pixel.
-	 * <p>
-	 * Pixels with this value are transparent.
-	 * </p><p>
-	 * The default is -1 which means 'no transparent pixel'.
-	 * </p>
-	 */
-	public int transparentPixel;
-
-	/**
-	 * An icon-specific field containing the data from the icon mask.
-	 * <p>
-	 * This is a 1 bit bitmap stored with the most significant
-	 * bit first.  The number of bytes per scanline is
-	 * '((width + 7) / 8 + (maskPad - 1)) / maskPad * maskPad'.
-	 * </p><p>
-	 * The default is null which means 'no transparency mask'.
-	 * </p>
-	 */
-	public byte[] maskData;
-
-	/**
-	 * An icon-specific field containing the scanline pad of the mask.
-	 * <p>
-	 * If one scanline of the transparency mask is not a
-	 * multiple of this number, it will be padded with zeros until
-	 * it is.
-	 * </p>
-	 */
-	public int maskPad;
-	
-	/**
-	 * The alpha data of the image.
-	 * <p>
-	 * Every pixel can have an <em>alpha blending</em> value that
-	 * varies from 0, meaning fully transparent, to 255 meaning
-	 * fully opaque.  The number of bytes per scanline is
-	 * 'width'.
-	 * </p>
-	 */
-	public byte[] alphaData;
-	
-	/**
-	 * The global alpha value to be used for every pixel.
-	 * <p>
-	 * If this value is set, the <code>alphaData</code> field
-	 * is ignored and when the image is rendered each pixel
-	 * will be blended with the background an amount
-	 * proportional to this value.
-	 * </p><p>
-	 * The default is -1 which means 'no global alpha value'
-	 * </p>
-	 */
-	public int alpha;
-
-	/**
-	 * The type of file from which the image was read.
-	 * 
-	 * It is expressed as one of the following values:
-	 * <dl>
-	 * <dt><code>IMAGE_BMP</code></dt>
-	 * <dd>Windows BMP file format, no compression</dd>
-	 * <dt><code>IMAGE_BMP_RLE</code></dt>
-	 * <dd>Windows BMP file format, RLE compression if appropriate</dd>
-	 * <dt><code>IMAGE_GIF</code></dt>
-	 * <dd>GIF file format</dd>
-	 * <dt><code>IMAGE_ICO</code></dt>
-	 * <dd>Windows ICO file format</dd>
-	 * <dt><code>IMAGE_JPEG</code></dt>
-	 * <dd>JPEG file format</dd>
-	 * <dt><code>IMAGE_PNG</code></dt>
-	 * <dd>PNG file format</dd>
-	 * </dl>
-	 */
-	public int type;
-
-	/**
-	 * The x coordinate of the top left corner of the image
-	 * within the logical screen (this field corresponds to
-	 * the GIF89a Image Left Position value).
-	 */
-	public int x;
-
-	/**
-	 * The y coordinate of the top left corner of the image
-	 * within the logical screen (this field corresponds to
-	 * the GIF89a Image Top Position value).
-	 */
-	public int y;
-
-	/**
-	 * A description of how to dispose of the current image
-	 * before displaying the next.
-	 * 
-	 * It is expressed as one of the following values:
-	 * <dl>
-	 * <dt><code>DM_UNSPECIFIED</code></dt>
-	 * <dd>disposal method not specified</dd>
-	 * <dt><code>DM_FILL_NONE</code></dt>
-	 * <dd>do nothing - leave the image in place</dd>
-	 * <dt><code>DM_FILL_BACKGROUND</code></dt>
-	 * <dd>fill with the background color</dd>
-	 * <dt><code>DM_FILL_PREVIOUS</code></dt>
-	 * <dd>restore the previous picture</dd>
-	 * </dl>
-	 * (this field corresponds to the GIF89a Disposal Method value)
-	 */
-	public int disposalMethod;
-
-	/**
-	 * The time to delay before displaying the next image
-	 * in an animation (this field corresponds to the GIF89a
-	 * Delay Time value).
-	 */
-	public int delayTime;
-
-	/**
-	 * Arbitrary channel width data to 8-bit conversion table.
-	 */
-	static final byte[][] ANY_TO_EIGHT = new byte[9][];
-	static {
-		for (int b = 0; b < 9; ++b) {
-			byte[] data = ANY_TO_EIGHT[b] = new byte[1 << b];
-			if (b == 0) continue;
-			int inc = 0;
-			for (int bit = 0x10000; (bit >>= b) != 0;) inc |= bit;
-			for (int v = 0, p = 0; v < 0x10000; v+= inc) data[p++] = (byte)(v >> 8);
-		}
-	}
-	static final byte[] ONE_TO_ONE_MAPPING = ANY_TO_EIGHT[8];
-
-	/**
-	 * Scaled 8x8 Bayer dither matrix.
-	 */
-	static final int[][] DITHER_MATRIX = {
-		{ 0xfc0000, 0x7c0000, 0xdc0000, 0x5c0000, 0xf40000, 0x740000, 0xd40000, 0x540000 },
-		{ 0x3c0000, 0xbc0000, 0x1c0000, 0x9c0000, 0x340000, 0xb40000, 0x140000, 0x940000 },
-		{ 0xcc0000, 0x4c0000, 0xec0000, 0x6c0000, 0xc40000, 0x440000, 0xe40000, 0x640000 },
-		{ 0x0c0000, 0x8c0000, 0x2c0000, 0xac0000, 0x040000, 0x840000, 0x240000, 0xa40000 },
-		{ 0xf00000, 0x700000, 0xd00000, 0x500000, 0xf80000, 0x780000, 0xd80000, 0x580000 },
-		{ 0x300000, 0xb00000, 0x100000, 0x900000, 0x380000, 0xb80000, 0x180000, 0x980000 },
-		{ 0xc00000, 0x400000, 0xe00000, 0x600000, 0xc80000, 0x480000, 0xe80000, 0x680000 },
-		{ 0x000000, 0x800000, 0x200000, 0xa00000, 0x080000, 0x880000, 0x280000, 0xa80000 }
-	};
-
-/**
- * Constructs a new, empty ImageData with the given width, height,
- * depth and palette. The data will be initialized to an (all zero)
- * array of the appropriate size.
- *
- * @param width the width of the image
- * @param height the height of the image
- * @param depth the depth of the image
- * @param palette the palette of the image (must not be null)
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_INVALID_ARGUMENT - if the width or height is negative, or if the depth is not
- *        	one of 1, 2, 4, 8, 16, 24 or 32</li>
- *    <li>ERROR_NULL_ARGUMENT - if the palette is null</li>
- * </ul>
- */
-public ImageData(int width, int height, int depth, PaletteData palette) {
-	this(width, height, depth, palette,
-		4, null, 0, null,
-		null, -1, -1, SWT.IMAGE_UNDEFINED,
-		0, 0, 0, 0);
-}
-
-/**
- * Constructs a new, empty ImageData with the given width, height,
- * depth, palette, scanlinePad and data.
- *
- * @param width the width of the image
- * @param height the height of the image
- * @param depth the depth of the image
- * @param palette the palette of the image
- * @param scanlinePad the padding of each line, in bytes
- * @param data the data of the image
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_INVALID_ARGUMENT - if the width or height is negative, or if the depth is not
- *        	one of 1, 2, 4, 8, 16, 24 or 32</li>
- *    <li>ERROR_NULL_ARGUMENT - if the palette or data is null</li>
- *    <li>ERROR_CANNOT_BE_ZERO - if the scanlinePad is zero</li>
- * </ul>
- */
-public ImageData(int width, int height, int depth, PaletteData palette, int scanlinePad, byte[] data) {
-	this(width, height, depth, palette,
-		scanlinePad, checkData(data), 0, null,
-		null, -1, -1, SWT.IMAGE_UNDEFINED,
-		0, 0, 0, 0);
-}
-
-/**
- * Constructs an <code>ImageData</code> loaded from a file with the
- * specified name. Throws an error if an error occurs loading the
- * image, or if the image has an unsupported type.
- * <p>
- * This constructor is provided for convenience when loading a single
- * image only. If the file contains multiple images, only the first
- * one will be loaded. To load multiple images, use 
- * <code>ImageLoader.load()</code>.
- * </p>
- *
- * @param filename the name of the file to load the image from (must not be null)
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the file name is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_INVALID_IMAGE - if the image file contains invalid data</li>
- *    <li>ERROR_IO if an IO error occurs while reading data</li>
- *    <li>ERROR_UNSUPPORTED_FORMAT - if the image file contains an unrecognized format</li>
- * </ul>
- */
-public ImageData(String filename) {
-	ImageData[] data = new ImageLoader().load(filename);
-	if (data.length < 1) SWT.error(SWT.ERROR_INVALID_IMAGE);
-	ImageData i = data[0];
-	setAllFields(
-		i.width,
-		i.height,
-		i.depth,
-		i.scanlinePad,
-		i.bytesPerLine,
-		i.data,
-		i.palette,
-		i.transparentPixel,
-		i.maskData,
-		i.maskPad,
-		i.alphaData,
-		i.alpha,
-		i.type,
-		i.x,
-		i.y,
-		i.disposalMethod,
-		i.delayTime);
-}
-
-/**
- * Prevents uninitialized instances from being created outside the package.
- */
-ImageData() {
-	//empty constructor
-}
-
-/**
- * Constructs an image data by giving values for all non-computable fields.
- * <p>
- * This method is for internal use, and is not described further.
- * </p>
- */
-ImageData(
-	int width, int height, int depth, PaletteData palette,
-	int scanlinePad, byte[] data, int maskPad, byte[] maskData,
-	byte[] alphaData, int alpha, int transparentPixel, int type,
-	int x, int y, int disposalMethod, int delayTime)
-{
-
-	if (palette == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	if (!(depth == 1 || depth == 2 || depth == 4 || depth == 8
-		|| depth == 16 || depth == 24 || depth == 32)) {
-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-	}
-	if (width <= 0 || height <= 0) {
-		SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-	}
-	if (scanlinePad == 0) SWT.error (SWT.ERROR_CANNOT_BE_ZERO);
-
-	int bytesPerLine = (((width * depth + 7) / 8) + (scanlinePad - 1))
-		/ scanlinePad * scanlinePad;
-	setAllFields(
-		width,
-		height,
-		depth,
-		scanlinePad,
-		bytesPerLine,
-		data != null ? data : new byte[bytesPerLine * height],
-		palette,
-		transparentPixel,
-		maskData,
-		maskPad,
-		alphaData,
-		alpha,
-		type,
-		x,
-		y,
-		disposalMethod,
-		delayTime);
-}
-
-/**
- * Initializes all fields in the receiver. This method must be called
- * by all public constructors to ensure that all fields are initialized
- * for a new ImageData object. If a new field is added to the class,
- * then it must be added to this method.
- * <p>
- * This method is for internal use, and is not described further.
- * </p>
- */
-void setAllFields(int width, int height, int depth, int scanlinePad,
-	int bytesPerLine, byte[] data, PaletteData palette, int transparentPixel,
-	byte[] maskData, int maskPad, byte[] alphaData, int alpha,
-	int type, int x, int y, int disposalMethod, int delayTime) {
-
-	this.width = width;
-	this.height = height;
-	this.depth = depth;
-	this.scanlinePad = scanlinePad;
-	this.bytesPerLine = bytesPerLine;
-	this.data = data;
-	this.palette = palette;
-	this.transparentPixel = transparentPixel;
-	this.maskData = maskData;
-	this.maskPad = maskPad;
-	this.alphaData = alphaData;
-	this.alpha = alpha;
-	this.type = type;
-	this.x = x;
-	this.y = y;
-	this.disposalMethod = disposalMethod;
-	this.delayTime = delayTime;
-}
-
-/**	 
- * Invokes internal SWT functionality to create a new instance of
- * this class.
- * <p>
- * <b>IMPORTANT:</b> This method is <em>not</em> part of the public
- * API for <code>ImageData</code>. It is marked public only so that it
- * can be shared within the packages provided by SWT. It is subject
- * to change without notice, and should never be called from
- * application code.
- * </p>
- * <p>
- * This method is for internal use, and is not described further.
- * </p>
- */
-public static ImageData internal_new(
-	int width, int height, int depth, PaletteData palette,
-	int scanlinePad, byte[] data, int maskPad, byte[] maskData,
-	byte[] alphaData, int alpha, int transparentPixel, int type,
-	int x, int y, int disposalMethod, int delayTime)
-{
-	return new ImageData(
-		width, height, depth, palette, scanlinePad, data, maskPad, maskData,
-		alphaData, alpha, transparentPixel, type, x, y, disposalMethod, delayTime);
-}
-
-ImageData colorMaskImage(int pixel) {
-	ImageData mask = new ImageData(width, height, 1, bwPalette(),
-		2, null, 0, null, null, -1, -1, SWT.IMAGE_UNDEFINED,
-		0, 0, 0, 0);
-	int[] row = new int[width];
-	for (int y = 0; y < height; y++) {
-		getPixels(0, y, width, row, 0);
-		for (int i = 0; i < width; i++) {
-			if (pixel != -1 && row[i] == pixel) {
-				row[i] = 0;
-			} else {
-				row[i] = 1;
-			}
-		}
-		mask.setPixels(0, y, width, row, 0);
-	}
-	return mask;
-}
-
-static byte[] checkData(byte [] data) {
-	if (data == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	return data;
-}
-
-/**
- * Returns <code>getWidth</code> pixel values starting at offset
- * <code>x</code> in scanline <code>y</code> in the receiver's
- * data starting at <code>startIndex</code>.
- *
- * @param x the x position of the first pixel to get
- * @param y the y position of the first pixel to get
- * @param getWidth the width of the data to get
- * @param pixels the buffer in which to put the pixels
- * @param startIndex the offset into the byte array to begin storing pixels
- *
- * @exception IndexOutOfBoundsException if getWidth is too large
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if pixels is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if x or y is out of bounds</li>
- *    <li>ERROR_INVALID_ARGUMENT - if getWidth is negative</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_UNSUPPORTED_DEPTH - if the depth is not one of 1, 2, 4 or 8
- *        (For higher depths, use the int[] version of this method.)</li>
- * </ul>
- */
-public void getPixels(int x, int y, int getWidth, byte[] pixels, int startIndex) {
-	if (pixels == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	if (getWidth < 0 || x >= width || y >= height || x < 0 || y < 0) SWT.error
-
-(SWT.ERROR_INVALID_ARGUMENT);
-	if (getWidth == 0) return;
-	int index;
-	int theByte;
-	int mask = 0;
-	int n = getWidth;
-	int i = startIndex;
-	int srcX = x, srcY = y;
-	if (depth == 1) {
-		index = (y * bytesPerLine) + (x >> 3);
-		theByte = data[index] & 0xFF;
-		while (n > 0) {
-			mask = 1 << (7 - (srcX & 0x7));
-			if ((theByte & mask) == 0) {
-				pixels[i] = 0;
-			} else {
-				pixels[i] = 1;
-			}
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				if (n > 0) theByte = data[index] & 0xFF;
-				srcX = 0;
-			} else {
-				if (mask == 1) {
-					index++;
-					if (n > 0) theByte = data[index] & 0xFF;
-				}
-			}
-		}
-		return;
-	}
-	if (depth == 2) {
-		index = (y * bytesPerLine) + (x >> 2);
-		theByte = data[index] & 0xFF;
-		int offset;
-		while (n > 0) {
-			offset = 3 - (srcX % 4);
-			mask = 3 << (offset * 2);
-			pixels[i] = (byte)((theByte & mask) >> (offset * 2));
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				if (n > 0) theByte = data[index] & 0xFF;
-				srcX = 0;
-			} else {
-				if (offset == 0) {
-					index++;
-					theByte = data[index] & 0xFF;
-				}
-			}
-		}
-		return;
-	}
-	if (depth == 4) {
-		index = (y * bytesPerLine) + (x >> 1);
-		if ((x & 0x1) == 1) {
-			theByte = data[index] & 0xFF;
-			pixels[i] = (byte)(theByte & 0x0F);
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index++;
-			}
-		}
-		while (n > 1) {
-			theByte = data[index] & 0xFF;
-			pixels[i] = (byte)(theByte >> 4);
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				pixels[i] = (byte)(theByte & 0x0F);
-				i++;
-				n--;
-				srcX++;
-				if (srcX >= width) {
-					srcY++;
-					index = srcY * bytesPerLine;
-					srcX = 0;
-				} else {
-					index++;
-				}
-			}
-		}
-		if (n > 0) {
-			theByte = data[index] & 0xFF;
-			pixels[i] = (byte)(theByte >> 4);
-		}
-		return;
-	}
-	if (depth == 8) {
-		index = (y * bytesPerLine) + x;
-		for (int j = 0; j < getWidth; j++) {
-			pixels[i] = data[index];
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index++;
-			}
-		}
-		return;
-	}
-	SWT.error(SWT.ERROR_UNSUPPORTED_DEPTH);
-}
-
-/**
- * Returns <code>getWidth</code> pixel values starting at offset
- * <code>x</code> in scanline <code>y</code> in the receiver's
- * data starting at <code>startIndex</code>.
- *
- * @param x the x position of the first pixel to get
- * @param y the y position of the first pixel to get
- * @param getWidth the width of the data to get
- * @param pixels the buffer in which to put the pixels
- * @param startIndex the offset into the buffer to begin storing pixels
- *
- * @exception IndexOutOfBoundsException if getWidth is too large
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if pixels is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if x or y is out of bounds</li>
- *    <li>ERROR_INVALID_ARGUMENT - if getWidth is negative</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_UNSUPPORTED_DEPTH - if the depth is not one of 1, 2, 4, 8, 16, 24 or 32</li>
- * </ul>
- */
-public void getPixels(int x, int y, int getWidth, int[] pixels, int startIndex) {
-	if (pixels == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	if (getWidth < 0 || x >= width || y >= height || x < 0 || y < 0) SWT.error
-
-(SWT.ERROR_INVALID_ARGUMENT);
-	if (getWidth == 0) return;
-	int index;
-	int theByte;
-	int mask;
-	int n = getWidth;
-	int i = startIndex;
-	int srcX = x, srcY = y;
-	if (depth == 1) {
-		index = (y * bytesPerLine) + (x >> 3);
-		theByte = data[index] & 0xFF;
-		while (n > 0) {
-			mask = 1 << (7 - (srcX & 0x7));
-			if ((theByte & mask) == 0) {
-				pixels[i] = 0;
-			} else {
-				pixels[i] = 1;
-			}
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				if (n > 0) theByte = data[index] & 0xFF;
-				srcX = 0;
-			} else {
-				if (mask == 1) {
-					index++;
-					if (n > 0) theByte = data[index] & 0xFF;
-				}
-			}
-		}
-		return;
-	}		
-	if (depth == 2) {
-		index = (y * bytesPerLine) + (x >> 2);
-		theByte = data[index] & 0xFF;
-		int offset;
-		while (n > 0) {
-			offset = 3 - (srcX % 4);
-			mask = 3 << (offset * 2);
-			pixels[i] = (byte)((theByte & mask) >> (offset * 2));
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				if (n > 0) theByte = data[index] & 0xFF;
-				srcX = 0;
-			} else {
-				if (offset == 0) {
-					index++;
-					theByte = data[index] & 0xFF;
-				}
-			}
-		}
-		return;
-	}
-	if (depth == 4) {
-		index = (y * bytesPerLine) + (x >> 1);
-		if ((x & 0x1) == 1) {
-			theByte = data[index] & 0xFF;
-			pixels[i] = theByte & 0x0F;
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index++;
-			}
-		}
-		while (n > 1) {
-			theByte = data[index] & 0xFF;
-			pixels[i] = theByte >> 4;
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				pixels[i] = theByte & 0x0F;
-				i++;
-				n--;
-				srcX++;
-				if (srcX >= width) {
-					srcY++;
-					index = srcY * bytesPerLine;
-					srcX = 0;
-				} else {
-					index++;
-				}
-			}
-		}
-		if (n > 0) {
-			theByte = data[index] & 0xFF;
-			pixels[i] = theByte >> 4;
-		}
-		return;
-	}
-	if (depth == 8) {
-		index = (y * bytesPerLine) + x;
-		for (int j = 0; j < getWidth; j++) {
-			pixels[i] = data[index] & 0xFF;
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index++;
-			}
-		}
-		return;
-	}
-	if (depth == 16) {
-		index = (y * bytesPerLine) + (x * 2);
-		for (int j = 0; j < getWidth; j++) {
-			pixels[i] = ((data[index+1] & 0xFF) << 8) + (data[index] & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index += 2;
-			}
-		}
-		return;
-	}
-	if (depth == 24) {
-		index = (y * bytesPerLine) + (x * 3);
-		for (int j = 0; j < getWidth; j++) {
-			pixels[i] = ((data[index] & 0xFF) << 16) | ((data[index+1] & 0xFF) << 8)
-				| (data[index+2] & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index += 3;
-			}
-		}
-		return;
-	}
-	if (depth == 32) {
-		index = (y * bytesPerLine) + (x * 4);
-		i = startIndex;
-		for (int j = 0; j < getWidth; j++) {
-			pixels[i] = ((data[index] & 0xFF) << 24) | ((data[index+1] & 0xFF) << 16)
-				| ((data[index+2] & 0xFF) << 8) | (data[index+3] & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index += 4;
-			}
-		}
-		return;
-	}
-	SWT.error(SWT.ERROR_UNSUPPORTED_DEPTH);
-}
-
-/**
- * Returns an array of <code>RGB</code>s which comprise the
- * indexed color table of the receiver, or null if the receiver
- * has a direct color model.
- *
- * @return the RGB values for the image or null if direct color
- *
- * @see PaletteData#getRGBs()
- */
-public RGB[] getRGBs() {
-	return palette.getRGBs();
-}
-
-/**
- * Returns an <code>ImageData</code> which specifies the
- * transparency mask information for the receiver, or null if the
- * receiver has no transparency and is not an icon.
- *
- * @return the transparency mask or null if none exists
- */
-public ImageData getTransparencyMask() {
-	if (getTransparencyType() == SWT.TRANSPARENCY_MASK) {
-		return new ImageData(width, height, 1, bwPalette(), maskPad, maskData);
-	}
-	return colorMaskImage(transparentPixel);
-}
-
-/**
- * Returns the image transparency type.
- *
- * @return the receiver's transparency type
- */
-public int getTransparencyType() {
-	if (maskData != null) return SWT.TRANSPARENCY_MASK;
-	if (transparentPixel != -1) return SWT.TRANSPARENCY_PIXEL;
-	if (alphaData != null) return SWT.TRANSPARENCY_ALPHA;
-	return SWT.TRANSPARENCY_NONE;
-}
-
-/**
- * Returns the byte order of the receiver.
- * 
- * @return MSB_FIRST or LSB_FIRST
- */
-int getByteOrder() {
-	return depth != 16 ? MSB_FIRST : LSB_FIRST;
-}
-
-/**
- * Sets the pixel values starting at offset <code>x</code> in
- * scanline <code>y</code> in the receiver's data to the
- * values from the array <code>pixels</code> starting at
- * <code>startIndex</code>.
- *
- * @param x the x position of the pixel to set
- * @param y the y position of the pixel to set
- * @param putWidth the width of the pixels to set
- * @param pixels the pixels to set
- * @param startIndex the index at which to begin setting
- *
- * @exception IndexOutOfBoundsException if putWidth is too large
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if pixels is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if x or y is out of bounds</li>
- *    <li>ERROR_INVALID_ARGUMENT - if putWidth is negative</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_UNSUPPORTED_DEPTH if the depth is not one of 1, 2, 4, 8
- *        (For higher depths, use the int[] version of this method.)</li>
- * </ul>
- */
-public void setPixels(int x, int y, int putWidth, byte[] pixels, int startIndex) {
-	if (pixels == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	if (putWidth < 0 || x >= width || y >= height || x < 0 || y < 0) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-	if (putWidth == 0) return;
-	int index;
-	int theByte;
-	int mask;
-	int n = putWidth;
-	int i = startIndex;
-	int srcX = x, srcY = y;
-	if (depth == 1) {
-		index = (y * bytesPerLine) + (x >> 3);
-		while (n > 0) {
-			mask = 1 << (7 - (srcX & 0x7));
-			if ((pixels[i] & 0x1) == 1) {
-				data[index] = (byte)((data[index] & 0xFF) | mask);
-			} else {
-				data[index] = (byte)((data[index] & 0xFF) & (mask ^ -1));
-			}
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				if (mask == 1) {
-					index++;
-				}
-			}
-		}
-		return;
-	}
-	if (depth == 2) {
-		byte [] masks = { (byte)0xFC, (byte)0xF3, (byte)0xCF, (byte)0x3F };
-		index = (y * bytesPerLine) + (x >> 2);
-		int offset = 3 - (x % 4);
-		while (n > 0) {
-			theByte = pixels[i] & 0x3;
-			data[index] = (byte)((data[index] & masks[offset]) | (theByte << (offset * 2)));
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				offset = 0;
-				srcX = 0;
-			} else {
-				if (offset == 0) {
-					index++;
-					offset = 3;
-				} else {
-					offset--;
-				}
-			}
-		}
-		return;
-	}
-	if (depth == 4) {
-		index = (y * bytesPerLine) + (x >> 1);
-		boolean high = (x & 0x1) == 0;
-		while (n > 0) {
-			theByte = pixels[i] & 0x0F;
-			if (high) {
-				data[index] = (byte)((data[index] & 0x0F) | (theByte << 4));
-			} else {
-				data[index] = (byte)((data[index] & 0xF0) | theByte);
-			}
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				high = true;
-				srcX = 0;
-			} else {
-				if (!high) index++;
-				high = !high;
-			}
-		}
-		return;
-	}
-	if (depth == 8) {
-		index = (y * bytesPerLine) + x;
-		for (int j = 0; j < putWidth; j++) {
-			data[index] = (byte)(pixels[i] & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index++;
-			}
-		}
-		return;
-	}
-	SWT.error(SWT.ERROR_UNSUPPORTED_DEPTH);
-}
-
-/**
- * Sets the pixel values starting at offset <code>x</code> in
- * scanline <code>y</code> in the receiver's data to the
- * values from the array <code>pixels</code> starting at
- * <code>startIndex</code>.
- *
- * @param x the x position of the pixel to set
- * @param y the y position of the pixel to set
- * @param putWidth the width of the pixels to set
- * @param pixels the pixels to set
- * @param startIndex the index at which to begin setting
- *
- * @exception IndexOutOfBoundsException if putWidth is too large
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if pixels is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if x or y is out of bounds</li>
- *    <li>ERROR_INVALID_ARGUMENT - if putWidth is negative</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_UNSUPPORTED_DEPTH if the depth is not one of 1, 2, 4, 8, 16, 24 or 32</li>
- * </ul>
- */
-public void setPixels(int x, int y, int putWidth, int[] pixels, int startIndex) {
-	if (pixels == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-	if (putWidth < 0 || x >= width || y >= height || x < 0 || y < 0) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-	if (putWidth == 0) return;
-	int index;
-	int theByte;
-	int mask;
-	int n = putWidth;
-	int i = startIndex;
-	int pixel;
-	int srcX = x, srcY = y;
-	if (depth == 1) {
-		index = (y * bytesPerLine) + (x >> 3);
-		while (n > 0) {
-			mask = 1 << (7 - (srcX & 0x7));
-			if ((pixels[i] & 0x1) == 1) {
-				data[index] = (byte)((data[index] & 0xFF) | mask);
-			} else {
-				data[index] = (byte)((data[index] & 0xFF) & (mask ^ -1));
-			}
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				if (mask == 1) {
-					index++;
-				}
-			}
-		}
-		return;
-	}
-	if (depth == 2) {
-		byte [] masks = { (byte)0xFC, (byte)0xF3, (byte)0xCF, (byte)0x3F };
-		index = (y * bytesPerLine) + (x >> 2);
-		int offset = 3 - (x % 4);
-		while (n > 0) {
-			theByte = pixels[i] & 0x3;
-			data[index] = (byte)((data[index] & masks[offset]) | (theByte << (offset * 2)));
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				offset = 3;
-				srcX = 0;
-			} else {
-				if (offset == 0) {
-					index++;
-					offset = 3;
-				} else {
-					offset--;
-				}
-			}
-		}
-		return;
-	}
-	if (depth == 4) {
-		index = (y * bytesPerLine) + (x >> 1);
-		boolean high = (x & 0x1) == 0;
-		while (n > 0) {
-			theByte = pixels[i] & 0x0F;
-			if (high) {
-				data[index] = (byte)((data[index] & 0x0F) | (theByte << 4));
-			} else {
-				data[index] = (byte)((data[index] & 0xF0) | theByte);
-			}
-			i++;
-			n--;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				high = true;
-				srcX = 0;
-			} else {
-				if (!high) index++;
-				high = !high;
-			}
-		}
-		return;
-	}
-	if (depth == 8) {
-		index = (y * bytesPerLine) + x;
-		for (int j = 0; j < putWidth; j++) {
-			data[index] = (byte)(pixels[i] & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index++;
-			}
-		}
-		return;
-
-	}
-	if (depth == 16) {
-		index = (y * bytesPerLine) + (x * 2);
-		for (int j = 0; j < putWidth; j++) {
-			pixel = pixels[i];
-			data[index] = (byte)(pixel & 0xFF);
-			data[index + 1] = (byte)((pixel >> 8) & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index += 2;
-			}
-		}
-		return;
-	}
-	if (depth == 24) {
-		index = (y * bytesPerLine) + (x * 3);
-		for (int j = 0; j < putWidth; j++) {
-			pixel = pixels[i];
-			data[index] = (byte)((pixel >> 16) & 0xFF);
-			data[index + 1] = (byte)((pixel >> 8) & 0xFF);
-			data[index + 2] = (byte)(pixel & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index += 3;
-			}
-		}
-		return;
-	}
-	if (depth == 32) {
-		index = (y * bytesPerLine) + (x * 4);
-		for (int j = 0; j < putWidth; j++) {
-			pixel = pixels[i];
-			data[index] = (byte)((pixel >> 24) & 0xFF);
-			data[index + 1] = (byte)((pixel >> 16) & 0xFF);
-			data[index + 2] = (byte)((pixel >> 8) & 0xFF);
-			data[index + 3] = (byte)(pixel & 0xFF);
-			i++;
-			srcX++;
-			if (srcX >= width) {
-				srcY++;
-				index = srcY * bytesPerLine;
-				srcX = 0;
-			} else {
-				index += 4;
-			}
-		}
-		return;
-	}
-	SWT.error(SWT.ERROR_UNSUPPORTED_DEPTH);
-}
-
-/**
- * Returns a palette with 2 colors: black & white.
- */
-static PaletteData bwPalette() {
-	return new PaletteData(new RGB[] {new RGB(0, 0, 0), new RGB(255, 255, 255)});
-}
-
-/**
- * Gets the offset of the most significant bit for
- * the given mask.
- */
-static int getMSBOffset(int mask) {
-	for (int i = 31; i >= 0; i--) {
-		if (((mask >> i) & 0x1) != 0) return i + 1;
-	}
-	return 0;
-}
-
-/**
- * Finds the closest match.
- */
-static int closestMatch(int depth, byte red, byte green, byte blue, int redMask, int greenMask, int blueMask, byte[] reds, byte[] greens, byte[] blues) {
-	if (depth > 8) {
-		int rshift = 32 - getMSBOffset(redMask);
-		int gshift = 32 - getMSBOffset(greenMask);
-		int bshift = 32 - getMSBOffset(blueMask);
-		return (((red << 24) >>> rshift) & redMask) |
-			(((green << 24) >>> gshift) & greenMask) |
-			(((blue << 24) >>> bshift) & blueMask);
-	}
-	int r, g, b;
-	int minDistance = 0x7fffffff;
-	int nearestPixel = 0;
-	int n = reds.length;
-	for (int j = 0; j < n; j++) {
-		r = (reds[j] & 0xFF) - (red & 0xFF);
-		g = (greens[j] & 0xFF) - (green & 0xFF);
-		b = (blues[j] & 0xFF) - (blue & 0xFF);
-		int distance = r*r + g*g + b*b;
-		if (distance < minDistance) {
-			nearestPixel = j;
-			if (distance == 0) break;
-			minDistance = distance;
-		}
-	}
-	return nearestPixel;
-}
-
-static final ImageData convertMask(ImageData mask) {
-	if (mask.depth == 1) return mask;
-	PaletteData palette = new PaletteData(new RGB[] {new RGB(0, 0, 0), new RGB(255,255,255)});
-	ImageData newMask = new ImageData(mask.width, mask.height, 1, palette);
-	/* Find index of black in mask palette */
-	int blackIndex = 0;
-	RGB[] rgbs = mask.getRGBs();
-	if (rgbs != null) {
-		while (blackIndex < rgbs.length) {
-			if (rgbs[blackIndex].equals(palette.colors[0])) break;
-			blackIndex++;
-		}
-	}
-	int[] pixels = new int[mask.width];
-	for (int y = 0; y < mask.height; y++) {
-		mask.getPixels(0, y, mask.width, pixels, 0);
-		for (int i = 0; i < pixels.length; i++) {
-			if (pixels[i] == blackIndex) {
-				pixels[i] = 0;
-			} else {
-				pixels[i] = 1;
-			}
-		}
-		newMask.setPixels(0, y, mask.width, pixels, 0);
-	}
-	return newMask;
-}
-
-static final byte[] convertPad(byte[] data, int width, int height, int depth, int pad, int newPad) {
-	if (pad == newPad) return data;
-	int stride = (width * depth + 7) / 8;
-	int bpl = (stride + (pad - 1)) / pad * pad;	
-	int newBpl = (stride + (newPad - 1)) / newPad * newPad;
-	byte[] newData = new byte[height * newBpl];
-	int srcIndex = 0, destIndex = 0;
-	for (int y = 0; y < height; y++) {
-		System.arraycopy(data, srcIndex, newData, destIndex, stride);
-		srcIndex += bpl;
-		destIndex += newBpl;
-	}
-	return newData;
-}
-
-/**
- * Blit operation bits to be OR'ed together to specify the desired operation.
- */
-static final int
-	BLIT_SRC = 1,     // copy source directly, else applies logic operations
-	BLIT_ALPHA = 2,   // enable alpha blending
-	BLIT_DITHER = 4;  // enable dithering in low color modes
-
-/**
- * Alpha mode, values 0 - 255 specify global alpha level
- */
-static final int
-	ALPHA_OPAQUE = 255,           // Fully opaque (ignores any alpha data)
-	ALPHA_TRANSPARENT = 0,        // Fully transparent (ignores any alpha data)
-	ALPHA_CHANNEL_SEPARATE = -1,  // Use alpha channel from separate alphaData
-	ALPHA_CHANNEL_SOURCE = -2,    // Use alpha channel embedded in sourceData
-	ALPHA_MASK_UNPACKED = -3,     // Use transparency mask formed by bytes in alphaData (non-zero is opaque)
-	ALPHA_MASK_PACKED = -4,       // Use transparency mask formed by packed bits in alphaData
-	ALPHA_MASK_INDEX = -5,        // Consider source palette indices transparent if in alphaData array
-	ALPHA_MASK_RGB = -6;          // Consider source RGBs transparent if in RGB888 format alphaData array
-
-/**
- * Byte and bit order constants.
- */
-static final int LSB_FIRST = 0;
-static final int MSB_FIRST = 1;
-
-/**
- * Data types (internal)
- */
-/*
-private static final int
-	// direct / true color formats with arbitrary masks & shifts
-	TYPE_GENERIC_8 = 0,
-	TYPE_GENERIC_16_MSB = 1,
-	TYPE_GENERIC_16_LSB = 2,
-	TYPE_GENERIC_24 = 3,
-	TYPE_GENERIC_32_MSB = 4,
-	TYPE_GENERIC_32_LSB = 5,
-	// palette indexed color formats
-	TYPE_INDEX_8 = 6,
-	TYPE_INDEX_4 = 7,
-	TYPE_INDEX_2 = 8,
-	TYPE_INDEX_1_MSB = 9,
-	TYPE_INDEX_1_LSB = 10;
-*/
-/**
- * Computes the required channel shift from a mask.
- */
-static int getChannelShift(int mask) {
-	if (mask == 0) return 0;
-	int i;
-	for (i = 0; ((mask & 1) == 0) && (i < 32); ++i) {
-		mask >>>= 1;
-	}
-	return i;
-}
-
-/**
- * Computes the required channel width (depth) from a mask.
- */
-static int getChannelWidth(int mask, int shift) {
-	if (mask == 0) return 0;
-	int i;
-	mask >>>= shift;
-	for (i = shift; ((mask & 1) != 0) && (i < 32); ++i) {
-		mask >>>= 1;
-	}
-	return i - shift;
-}
-
-/**
- * Extracts a field from packed RGB data given a mask for that field.
- */
-static byte getChannelField(int data, int mask) {
-	final int shift = getChannelShift(mask);
-	return ANY_TO_EIGHT[getChannelWidth(mask, shift)][(data & mask) >>> shift];
-}
-
-/* 
- * Fill in dithered gradated values for a color channel
- */
-static final void buildDitheredGradientChannel(int from, int to, int steps,
-	int bandWidth, int bandHeight, boolean vertical,
-	byte[] bitmapData, int dp, int bytesPerLine, int bits) {
-	final int mask = 0xff00 >>> bits;
-	int val = from << 16;
-	final int inc = ((to << 16) - val) / steps + 1;
-	if (vertical) {
-		for (int dy = 0; dy < bandHeight; ++dy, dp += bytesPerLine) {
-			for (int dx = 0, dptr = dp; dx < bandWidth; ++dx, dptr += 4) {
-				final int thresh = DITHER_MATRIX[dy & 7][dx] >>> bits;
-				int temp = val + thresh;
-				if (temp > 0xffffff) bitmapData[dptr] = -1;
-				else bitmapData[dptr] = (byte)((temp >>> 16) & mask);
-			}
-			val += inc;
-		}
-	} else {
-		for (int dx = 0; dx < bandWidth; ++dx, dp += 4) {
-			for (int dy = 0, dptr = dp; dy < bandHeight; ++dy, dptr += bytesPerLine) {
-				final int thresh = DITHER_MATRIX[dy][dx & 7] >>> bits;
-				int temp = val + thresh;
-				if (temp > 0xffffff) bitmapData[dptr] = -1;
-				else bitmapData[dptr] = (byte)((temp >>> 16) & mask);
-			}
-			val += inc;
-		}
-	}
-}
-}
-
-static class LEDataInputStream extends InputStream {
-	int position;
-	InputStream in;
-
-	/**
-	 * The byte array containing the bytes to read.
-	 */
-	protected byte[] buf;
-	
-	/**
-	 * The current position within the byte array <code>buf</code>. A value
-	 * equal to buf.length indicates no bytes available.  A value of
-	 * 0 indicates the buffer is full.
-	 */
-	protected int pos;
-	
-
-	public LEDataInputStream(InputStream input) {
-		this(input, 512);
-	}
-	
-	public LEDataInputStream(InputStream input, int bufferSize) {
-		this.in = input;
-		if (bufferSize > 0) {
-			buf = new byte[bufferSize];
-			pos = bufferSize;
-		} 
-		else throw new IllegalArgumentException();
-	}
-	
-	public void close() throws IOException {
-		buf = null;
-		if (in != null) {
-			in.close();
-			in = null;
-		}
-	}
-	
-	/**
-	 * Answer how many bytes were read.
-	 */
-	public int getPosition() {
-		return position;
-	}
-	
-	/**
-	 * Answers how many bytes are available for reading without blocking
-	 */
-	public int available() throws IOException {
-		if (buf == null) throw new IOException();
-		return (buf.length - pos) + in.available();
-	}
-	
-	/**
-	 * Answer the next byte of the input stream.
-	 */
-	public int read() throws IOException {
-		if (buf == null) throw new IOException();
-		position++;
-		if (pos < buf.length) return (buf[pos++] & 0xFF);
-		return in.read();
-	}
-	
-	/**
-	 * Don't imitate the JDK behaviour of reading a random number
-	 * of bytes when you can actually read them all.
-	 */
-	public int read(byte b[], int off, int len) throws IOException {
-		int result;
-		int left = len;
-		result = readData(b, off, len);
-		while (true) {
-			if (result == -1) return -1;
-			position += result;
-			if (result == left) return len;
-			left -= result;
-			off += result;
-			result = readData(b, off, left);
-		}
-	}
-	
-	/**
- 	 * Reads at most <code>length</code> bytes from this LEDataInputStream and 
- 	 * stores them in byte array <code>buffer</code> starting at <code>offset</code>.
- 	 * <p>
- 	 * Answer the number of bytes actually read or -1 if no bytes were read and 
- 	 * end of stream was encountered.  This implementation reads bytes from 
- 	 * the pushback buffer first, then the target stream if more bytes are required
- 	 * to satisfy <code>count</code>.
-	 * </p>
-	 * @param buffer the byte array in which to store the read bytes.
-	 * @param offset the offset in <code>buffer</code> to store the read bytes.
-	 * @param length the maximum number of bytes to store in <code>buffer</code>.
-	 *
-	 * @return int the number of bytes actually read or -1 if end of stream.
-	 *
-	 * @exception java.io.IOException if an IOException occurs.
-	 */
-	private int readData(byte[] buffer, int offset, int length) throws IOException {
-		if (buf == null) throw new IOException();
-		if (offset < 0 || offset > buffer.length ||
-  		 	length < 0 || (length > buffer.length - offset)) {
-	 		throw new ArrayIndexOutOfBoundsException();
-		 	}
-				
-		int cacheCopied = 0;
-		int newOffset = offset;
-	
-		// Are there pushback bytes available?
-		int available = buf.length - pos;
-		if (available > 0) {
-			cacheCopied = (available >= length) ? length : available;
-			System.arraycopy(buf, pos, buffer, newOffset, cacheCopied);
-			newOffset += cacheCopied;
-			pos += cacheCopied;
-		}
-	
-		// Have we copied enough?
-		if (cacheCopied == length) return length;
-
-		int inCopied = in.read(buffer, newOffset, length - cacheCopied);
-
-		if (inCopied > 0) return inCopied + cacheCopied;
-		if (cacheCopied == 0) return inCopied;
-		return cacheCopied;
-	}
-	
-	/**
-	 * Answer an integer comprised of the next
-	 * four bytes of the input stream.
-	 */
-	public int readInt() throws IOException {
-		byte[] buf = new byte[4];
-		read(buf);
-		return ((((((buf[3] & 0xFF) << 8) | 
-			(buf[2] & 0xFF)) << 8) | 
-			(buf[1] & 0xFF)) << 8) | 
-			(buf[0] & 0xFF);
-	}
-	
-	/**
-	 * Answer a short comprised of the next
-	 * two bytes of the input stream.
-	 */
-	public short readShort() throws IOException {
-		byte[] buf = new byte[2];
-		read(buf);
-		return (short)(((buf[1] & 0xFF) << 8) | (buf[0] & 0xFF));
-	}
-	
-	/**
-	 * Push back the entire content of the given buffer <code>b</code>.
-	 * <p>
-	 * The bytes are pushed so that they would be read back b[0], b[1], etc. 
-	 * If the push back buffer cannot handle the bytes copied from <code>b</code>, 
-	 * an IOException will be thrown and no byte will be pushed back.
-	 * </p>
-	 * 
-	 * @param b the byte array containing bytes to push back into the stream
-	 *
-	 * @exception 	java.io.IOException if the pushback buffer is too small
-	 */
-	public void unread(byte[] b) throws IOException {
-		int length = b.length;
-		if (length > pos) throw new IOException();
-		position -= length;
-		pos -= length;
-		System.arraycopy(b, 0, buf, pos, length);
-	}
-}
-public static abstract class FileFormat {	
-	LEDataInputStream inputStream;
-	ImageLoader loader;
-	int compression;
-
-byte[] bitInvertData(byte[] data, int startIndex, int endIndex) {
-	// Destructively bit invert data in the given byte array.
-	for (int i = startIndex; i < endIndex; i++) {
-		data[i] = (byte)(255 - data[i - startIndex]);
-	}
-	return data;
-}
-
-/**
- * Return whether or not the specified input stream
- * represents a supported file format.
- */
-abstract boolean isFileFormat(LEDataInputStream stream);
-
-abstract ImageData[] loadFromByteStream();
-
-public ImageData[] loadFromStream(LEDataInputStream stream) {
-	try {
-		inputStream = stream;
-		return loadFromByteStream();
-	} catch (Exception e) {
-		SWT.error(SWT.ERROR_IO, e);
-		return null;
-	}
-}
-
-public static ImageData[] load(InputStream is, ImageLoader loader) {
-	LEDataInputStream stream = new LEDataInputStream(is);
-	boolean isSupported = false;	
-	FileFormat fileFormat = new WinICOFileFormat();
-	if (fileFormat.isFileFormat(stream)) isSupported = true;
-	else {
-		fileFormat = new WinBMPFileFormat();
-		if (fileFormat.isFileFormat(stream)) isSupported = true;
-	}
-	if (!isSupported) SWT.error(SWT.ERROR_UNSUPPORTED_FORMAT);
-	fileFormat.loader = loader;
-	return fileFormat.loadFromStream(stream);
-}
-}
-static class WinBMPFileFormat extends FileFormat {
-	static final int BMPFileHeaderSize = 14;
-	static final int BMPHeaderFixedSize = 40;
-	int importantColors;
-
-void decompressData(byte[] src, byte[] dest, int stride, int cmp) {
-	if (cmp == 1) { // BMP_RLE8_COMPRESSION
-		if (decompressRLE8Data(src, src.length, stride, dest, dest.length) <= 0)
-			SWT.error(SWT.ERROR_INVALID_IMAGE);
-		return;
-	}
-	if (cmp == 2) { // BMP_RLE4_COMPRESSION
-		if (decompressRLE4Data(src, src.length, stride, dest, dest.length) <= 0)
-			SWT.error(SWT.ERROR_INVALID_IMAGE);
-		return;
-	}
-	SWT.error(SWT.ERROR_INVALID_IMAGE);
-}
-int decompressRLE4Data(byte[] src, int numBytes, int stride, byte[] dest, int destSize) {
-	int sp = 0;
-	int se = numBytes;
-	int dp = 0;
-	int de = destSize;
-	int x = 0, y = 0;
-	while (sp < se) {
-		int len = src[sp] & 0xFF;
-		sp++;
-		if (len == 0) {
-			len = src[sp] & 0xFF;
-			sp++;
-			switch (len) {
-				case 0: /* end of line */
-					y++;
-					x = 0;
-					dp = y * stride;
-					if (dp >= de)
-						return -1;
-					break;
-				case 1: /* end of bitmap */
-					return 1;
-				case 2: /* delta */
-					x += src[sp] & 0xFF;
-					sp++;
-					y += src[sp] & 0xFF;
-					sp++;
-					dp = y * stride + x / 2;
-					if (dp >= de)
-						return -1;
-					break;
-				default: /* absolute mode run */
-					if ((len & 1) != 0) /* odd run lengths not currently supported */
-						return -1;
-					x += len;
-					len = len / 2;
-					if (len > (se - sp))
-						return -1;
-					if (len > (de - dp))
-						return -1;
-					for (int i = 0; i < len; i++) {
-						dest[dp] = src[sp];
-						dp++;
-						sp++;
-					}
-					if ((sp & 1) != 0)
-						sp++; /* word align sp? */
-					break;
-			}
-		} else {
-			if ((len & 1) != 0)
-				return -1;
-			x += len;
-			len = len / 2;
-			byte theByte = src[sp];
-			sp++;
-			if (len > (de - dp))
-				return -1;
-			for (int i = 0; i < len; i++) {
-				dest[dp] = theByte;
-				dp++;
-			}
-		}
-	}
-	return 1;
-}
-int decompressRLE8Data(byte[] src, int numBytes, int stride, byte[] dest, int destSize) {
-	int sp = 0;
-	int se = numBytes;
-	int dp = 0;
-	int de = destSize;
-	int x = 0, y = 0;
-	while (sp < se) {
-		int len = src[sp] & 0xFF;
-		sp++;
-		if (len == 0) {
-			len = src[sp] & 0xFF;
-			sp++;
-			switch (len) {
-				case 0: /* end of line */
-					y++;
-					x = 0;
-					dp = y * stride;
-					if (dp >= de)
-						return -1;
-					break;
-				case 1: /* end of bitmap */
-					return 1;
-				case 2: /* delta */
-					x += src[sp] & 0xFF;
-					sp++;
-					y += src[sp] & 0xFF;
-					sp++;
-					dp = y * stride + x;
-					if (dp >= de)
-						return -1;
-					break;
-				default: /* absolute mode run */
-					if (len > (se - sp))
-						return -1;
-					if (len > (de - dp))
-						return -1;
-					for (int i = 0; i < len; i++) {
-						dest[dp] = src[sp];
-						dp++;
-						sp++;
-					}
-					if ((sp & 1) != 0)
-						sp++; /* word align sp? */
-					x += len;
-					break;
-			}
-		} else {
-			byte theByte = src[sp];
-			sp++;
-			if (len > (de - dp))
-				return -1;
-			for (int i = 0; i < len; i++) {
-				dest[dp] = theByte;
-				dp++;
-			}
-			x += len;
-		}
-	}
-	return 1;
-}
-boolean isFileFormat(LEDataInputStream stream) {
-	try {
-		byte[] header = new byte[18];
-		stream.read(header);
-		stream.unread(header);
-		int infoHeaderSize = (header[14] & 0xFF) | ((header[15] & 0xFF) << 8) | ((header[16] & 0xFF) << 16) | ((header[17] & 0xFF) << 24);
-		return header[0] == 0x42 && header[1] == 0x4D && infoHeaderSize >= BMPHeaderFixedSize;
-	} catch (Exception e) {
-		return false;
-	}
-}
-byte[] loadData(byte[] infoHeader) {
-	int width = (infoHeader[4] & 0xFF) | ((infoHeader[5] & 0xFF) << 8) | ((infoHeader[6] & 0xFF) << 16) | ((infoHeader[7] & 0xFF) << 24);
-	int height = (infoHeader[8] & 0xFF) | ((infoHeader[9] & 0xFF) << 8) | ((infoHeader[10] & 0xFF) << 16) | ((infoHeader[11] & 0xFF) << 24);
-	int bitCount = (infoHeader[14] & 0xFF) | ((infoHeader[15] & 0xFF) << 8);
-	int stride = (width * bitCount + 7) / 8;
-	stride = (stride + 3) / 4 * 4; // Round up to 4 byte multiple
-	byte[] data = loadData(infoHeader, stride);
-	flipScanLines(data, stride, height);
-	return data;
-}
-byte[] loadData(byte[] infoHeader, int stride) {
-	int height = (infoHeader[8] & 0xFF) | ((infoHeader[9] & 0xFF) << 8) | ((infoHeader[10] & 0xFF) << 16) | ((infoHeader[11] & 0xFF) << 24);
-	int dataSize = height * stride;
-	byte[] data = new byte[dataSize];
-	int cmp = (infoHeader[16] & 0xFF) | ((infoHeader[17] & 0xFF) << 8) | ((infoHeader[18] & 0xFF) << 16) | ((infoHeader[19] & 0xFF) << 24);
-	if (cmp == 0) { // BMP_NO_COMPRESSION
-		try {
-			if (inputStream.read(data) != dataSize)
-				SWT.error(SWT.ERROR_INVALID_IMAGE);
-		} catch (IOException e) {
-			SWT.error(SWT.ERROR_IO, e);
-		}
-	} else {
-		int compressedSize = (infoHeader[20] & 0xFF) | ((infoHeader[21] & 0xFF) << 8) | ((infoHeader[22] & 0xFF) << 16) | ((infoHeader[23] & 0xFF) << 24);
-		byte[] compressed = new byte[compressedSize];
-		try {
-			if (inputStream.read(compressed) != compressedSize)
-				SWT.error(SWT.ERROR_INVALID_IMAGE);
-		} catch (IOException e) {
-			SWT.error(SWT.ERROR_IO, e);
-		}
-		decompressData(compressed, data, stride, cmp);
-	}
-	return data;
-}
-int[] loadFileHeader() {
-	int[] header = new int[5];
-	try {
-		header[0] = inputStream.readShort();
-		header[1] = inputStream.readInt();
-		header[2] = inputStream.readShort();
-		header[3] = inputStream.readShort();
-		header[4] = inputStream.readInt();
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-	if (header[0] != 0x4D42)
-		SWT.error(SWT.ERROR_INVALID_IMAGE);
-	return header;
-}
-ImageData[] loadFromByteStream() {
-	int[] fileHeader = loadFileHeader();
-	byte[] infoHeader = new byte[BMPHeaderFixedSize];
-	try {
-		inputStream.read(infoHeader);
-	} catch (Exception e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-	int width = (infoHeader[4] & 0xFF) | ((infoHeader[5] & 0xFF) << 8) | ((infoHeader[6] & 0xFF) << 16) | ((infoHeader[7] & 0xFF) << 24);
-	int height = (infoHeader[8] & 0xFF) | ((infoHeader[9] & 0xFF) << 8) | ((infoHeader[10] & 0xFF) << 16) | ((infoHeader[11] & 0xFF) << 24);
-	int bitCount = (infoHeader[14] & 0xFF) | ((infoHeader[15] & 0xFF) << 8);
-	PaletteData palette = loadPalette(infoHeader);
-	if (inputStream.getPosition() < fileHeader[4]) {
-		// Seek to the specified offset
-		try {
-			inputStream.skip(fileHeader[4] - inputStream.getPosition());
-		} catch (IOException e) {
-			SWT.error(SWT.ERROR_IO, e);
-		}
-	}
-	byte[] data = loadData(infoHeader);
-	this.compression = (infoHeader[16] & 0xFF) | ((infoHeader[17] & 0xFF) << 8) | ((infoHeader[18] & 0xFF) << 16) | ((infoHeader[19] & 0xFF) << 24);
-	this.importantColors = (infoHeader[36] & 0xFF) | ((infoHeader[37] & 0xFF) << 8) | ((infoHeader[38] & 0xFF) << 16) | ((infoHeader[39] & 0xFF) << 24);
-//	int xPelsPerMeter = (infoHeader[24] & 0xFF) | ((infoHeader[25] & 0xFF) << 8) | ((infoHeader[26] & 0xFF) << 16) | ((infoHeader[27] & 0xFF) << 24);
-//	int yPelsPerMeter = (infoHeader[28] & 0xFF) | ((infoHeader[29] & 0xFF) << 8) | ((infoHeader[30] & 0xFF) << 16) | ((infoHeader[31] & 0xFF) << 24);
-	int type = (this.compression == 1 /*BMP_RLE8_COMPRESSION*/) || (this.compression == 2 /*BMP_RLE4_COMPRESSION*/) ? SWT.IMAGE_BMP_RLE : SWT.IMAGE_BMP;
-	return new ImageData[] {
-		ImageData.internal_new(
-			width,
-			height,
-			bitCount,
-			palette,
-			4,
-			data,
-			0,
-			null,
-			null,
-			-1,
-			-1,
-			type,
-			0,
-			0,
-			0,
-			0)
-	};
-}
-PaletteData loadPalette(byte[] infoHeader) {
-	int depth = (infoHeader[14] & 0xFF) | ((infoHeader[15] & 0xFF) << 8);
-	if (depth <= 8) {
-		int numColors = (infoHeader[32] & 0xFF) | ((infoHeader[33] & 0xFF) << 8) | ((infoHeader[34] & 0xFF) << 16) | ((infoHeader[35] & 0xFF) << 24);
-		if (numColors == 0) {
-			numColors = 1 << depth;
-		} else {
-			if (numColors > 256)
-				numColors = 256;
-		}
-		byte[] buf = new byte[numColors * 4];
-		try {
-			if (inputStream.read(buf) != buf.length)
-				SWT.error(SWT.ERROR_INVALID_IMAGE);
-		} catch (IOException e) {
-			SWT.error(SWT.ERROR_IO, e);
-		}
-		return paletteFromBytes(buf, numColors);
-	}
-	if (depth == 16) return new PaletteData(0x7C00, 0x3E0, 0x1F);
-	if (depth == 24) return new PaletteData(0xFF, 0xFF00, 0xFF0000);
-	return new PaletteData(0xFF00, 0xFF0000, 0xFF000000);
-}
-PaletteData paletteFromBytes(byte[] bytes, int numColors) {
-	int bytesOffset = 0;
-	RGB[] colors = new RGB[numColors];
-	for (int i = 0; i < numColors; i++) {
-		colors[i] = new RGB(bytes[bytesOffset + 2] & 0xFF,
-			bytes[bytesOffset + 1] & 0xFF,
-			bytes[bytesOffset] & 0xFF);
-		bytesOffset += 4;
-	}
-	return new PaletteData(colors);
-}
-/**
- * Answer a byte array containing the BMP representation of
- * the given device independent palette.
- */
-static byte[] paletteToBytes(PaletteData pal) {
-	int n = pal.colors == null ? 0 : (pal.colors.length < 256 ? pal.colors.length : 256);
-	byte[] bytes = new byte[n * 4];
-	int offset = 0;
-	for (int i = 0; i < n; i++) {
-		RGB col = pal.colors[i];
-		bytes[offset] = (byte)col.blue;
-		bytes[offset + 1] = (byte)col.green;
-		bytes[offset + 2] = (byte)col.red;
-		offset += 4;
-	}
-	return bytes;
-}
-
-void flipScanLines(byte[] data, int stride, int height) {
-	int i1 = 0;
-	int i2 = (height - 1) * stride;
-	for (int i = 0; i < height / 2; i++) {
-		for (int index = 0; index < stride; index++) {
-			byte b = data[index + i1];
-			data[index + i1] = data[index + i2];
-			data[index + i2] = b;
-		}
-		i1 += stride;
-		i2 -= stride;
-	}
-}
-
-}
-
-static class WinICOFileFormat extends FileFormat {
-	
-static final byte[] convertPad(byte[] data, int width, int height, int depth, int pad, int newPad) {
-	if (pad == newPad) return data;
-	int stride = (width * depth + 7) / 8;
-	int bpl = (stride + (pad - 1)) / pad * pad;
-	int newBpl = (stride + (newPad - 1)) / newPad * newPad;
-	byte[] newData = new byte[height * newBpl];
-	int srcIndex = 0, destIndex = 0;
-	for (int y = 0; y < height; y++) {
-		System.arraycopy(data, srcIndex, newData, destIndex, newBpl);
-		srcIndex += bpl;
-		destIndex += newBpl;
-	}
-	return newData;
-}
-/**
- * Answer the size in bytes of the file representation of the given
- * icon
- */
-int iconSize(ImageData i) {
-	int shapeDataStride = (i.width * i.depth + 31) / 32 * 4;
-	int maskDataStride = (i.width + 31) / 32 * 4;
-	int dataSize = (shapeDataStride + maskDataStride) * i.height;
-	int paletteSize = i.palette.colors != null ? i.palette.colors.length * 4 : 0;
-	return WinBMPFileFormat.BMPHeaderFixedSize + paletteSize + dataSize;
-}
-boolean isFileFormat(LEDataInputStream stream) {
-	try {
-		byte[] header = new byte[4];
-		stream.read(header);
-		stream.unread(header);
-		return header[0] == 0 && header[1] == 0 && header[2] == 1 && header[3] == 0;
-	} catch (Exception e) {
-		return false;
-	}
-}
-boolean isValidIcon(ImageData i) {
-	switch (i.depth) {
-		case 1:
-		case 4:
-		case 8:
-			if (i.palette.isDirect) return false;
-			int size = i.palette.colors.length;
-			return size == 2 || size == 16 || size == 32 || size == 256;
-		case 24:
-		case 32:
-			return i.palette.isDirect;
-	}
-	return false;
-}
-int loadFileHeader(LEDataInputStream byteStream) {
-	int[] fileHeader = new int[3];
-	try {
-		fileHeader[0] = byteStream.readShort();
-		fileHeader[1] = byteStream.readShort();
-		fileHeader[2] = byteStream.readShort();
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-	if ((fileHeader[0] != 0) || (fileHeader[1] != 1))
-		SWT.error(SWT.ERROR_INVALID_IMAGE);
-	int numIcons = fileHeader[2];
-	if (numIcons <= 0)
-		SWT.error(SWT.ERROR_INVALID_IMAGE);
-	return numIcons;
-}
-int loadFileHeader(LEDataInputStream byteStream, boolean hasHeader) {
-	int[] fileHeader = new int[3];
-	try {
-		if (hasHeader) {
-			fileHeader[0] = byteStream.readShort();
-			fileHeader[1] = byteStream.readShort();
-		} else {
-			fileHeader[0] = 0;
-			fileHeader[1] = 1;
-		}
-		fileHeader[2] = byteStream.readShort();
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-	if ((fileHeader[0] != 0) || (fileHeader[1] != 1))
-		SWT.error(SWT.ERROR_INVALID_IMAGE);
-	int numIcons = fileHeader[2];
-	if (numIcons <= 0)
-		SWT.error(SWT.ERROR_INVALID_IMAGE);
-	return numIcons;
-}
-ImageData[] loadFromByteStream() {
-	int numIcons = loadFileHeader(inputStream);
-	int[][] headers = loadIconHeaders(numIcons);
-	ImageData[] icons = new ImageData[headers.length];
-	for (int i = 0; i < icons.length; i++) {
-		icons[i] = loadIcon(headers[i]);
-	}
-	return icons;
-}
-/**
- * Load one icon from the byte stream.
- */
-ImageData loadIcon(int[] iconHeader) {
-	byte[] infoHeader = loadInfoHeader(iconHeader);
-	WinBMPFileFormat bmpFormat = new WinBMPFileFormat();
-	bmpFormat.inputStream = inputStream;
-	PaletteData palette = bmpFormat.loadPalette(infoHeader);
-	byte[] shapeData = bmpFormat.loadData(infoHeader);
-	int width = (infoHeader[4] & 0xFF) | ((infoHeader[5] & 0xFF) << 8) | ((infoHeader[6] & 0xFF) << 16) | ((infoHeader[7] & 0xFF) << 24);
-	int height = (infoHeader[8] & 0xFF) | ((infoHeader[9] & 0xFF) << 8) | ((infoHeader[10] & 0xFF) << 16) | ((infoHeader[11] & 0xFF) << 24);
-	int depth = (infoHeader[14] & 0xFF) | ((infoHeader[15] & 0xFF) << 8);
-	infoHeader[14] = 1;
-	infoHeader[15] = 0;
-	byte[] maskData = bmpFormat.loadData(infoHeader);
-	maskData = convertPad(maskData, width, height, 1, 4, 2);
-	bitInvertData(maskData, 0, maskData.length);
-	return ImageData.internal_new(
-		width,
-		height,
-		depth,
-		palette,
-		4,
-		shapeData,
-		2,
-		maskData,
-		null,
-		-1,
-		-1,
-		SWT.IMAGE_ICO,
-		0,
-		0,
-		0,
-		0);
-}
-int[][] loadIconHeaders(int numIcons) {
-	int[][] headers = new int[numIcons][7];
-	try {
-		for (int i = 0; i < numIcons; i++) {
-			headers[i][0] = inputStream.read();
-			headers[i][1] = inputStream.read();
-			headers[i][2] = inputStream.readShort();
-			headers[i][3] = inputStream.readShort();
-			headers[i][4] = inputStream.readShort();
-			headers[i][5] = inputStream.readInt();
-			headers[i][6] = inputStream.readInt();
-		}
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-	return headers;
-}
-byte[] loadInfoHeader(int[] iconHeader) {
-	int width = iconHeader[0];
-	int height = iconHeader[1];
-	int numColors = iconHeader[2]; // the number of colors is in the low byte, but the high byte must be 0
-	if (numColors == 0) numColors = 256; // this is specified: '00' represents '256' (0x100) colors
-	if ((numColors != 2) && (numColors != 8) && (numColors != 16) &&
-		(numColors != 32) && (numColors != 256))
-		SWT.error(SWT.ERROR_INVALID_IMAGE);
-	if (inputStream.getPosition() < iconHeader[6]) {
-		// Seek to the specified offset
-		try {
-			inputStream.skip(iconHeader[6] - inputStream.getPosition());
-		} catch (IOException e) {
-			SWT.error(SWT.ERROR_IO, e);
-			return null;
-		}
-	}
-	byte[] infoHeader = new byte[WinBMPFileFormat.BMPHeaderFixedSize];
-	try {
-		inputStream.read(infoHeader);
-	} catch (IOException e) {
-		SWT.error(SWT.ERROR_IO, e);
-	}
-	if (((infoHeader[12] & 0xFF) | ((infoHeader[13] & 0xFF) << 8)) != 1)
-		SWT.error(SWT.ERROR_INVALID_IMAGE);
-	int infoWidth = (infoHeader[4] & 0xFF) | ((infoHeader[5] & 0xFF) << 8) | ((infoHeader[6] & 0xFF) << 16) | ((infoHeader[7] & 0xFF) << 24);
-	int infoHeight = (infoHeader[8] & 0xFF) | ((infoHeader[9] & 0xFF) << 8) | ((infoHeader[10] & 0xFF) << 16) | ((infoHeader[11] & 0xFF) << 24);
-	int bitCount = (infoHeader[14] & 0xFF) | ((infoHeader[15] & 0xFF) << 8);
-	if (height == infoHeight && bitCount == 1) height /= 2;
-	if (!((width == infoWidth) && (height * 2 == infoHeight) &&
-		(bitCount == 1 || bitCount == 4 || bitCount == 8 || bitCount == 24 || bitCount == 32)))
-			SWT.error(SWT.ERROR_INVALID_IMAGE);
-	infoHeader[8] = (byte)(height & 0xFF);
-	infoHeader[9] = (byte)((height >> 8) & 0xFF);
-	infoHeader[10] = (byte)((height >> 16) & 0xFF);
-	infoHeader[11] = (byte)((height >> 24) & 0xFF);
-	return infoHeader;
-}
-}
-static class SWT {
-	public static final int IMAGE_ICO = 3;
-	public static final int ERROR_IO = 39;
-	public static final int ERROR_INVALID_IMAGE = 40;
-	public static final int ERROR_NULL_ARGUMENT = 4;
-	public static final int ERROR_INVALID_ARGUMENT = 5;
-	public static final int ERROR_CANNOT_BE_ZERO = 7;
-	public static final int IMAGE_UNDEFINED = -1;
-	public static final int ERROR_UNSUPPORTED_DEPTH = 38;
-	public static final int TRANSPARENCY_MASK = 1 << 1;
-	public static final int ERROR_UNSUPPORTED_FORMAT = 42;
-	public static final int TRANSPARENCY_ALPHA = 1 << 0;
-	public static final int TRANSPARENCY_NONE = 0x0;
-	public static final int TRANSPARENCY_PIXEL = 1 << 2;
-	public static final int IMAGE_BMP = 0;
-	public static final int IMAGE_BMP_RLE = 1;
-	
-	public static void error(int code) {
-		throw new RuntimeException("Error "+code); //$NON-NLS-1$
-	}
-	public static void error(int code, Throwable t) {
-		throw new RuntimeException(t);
-	}
-}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java b/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java
deleted file mode 100644
index 0a93bef..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/GeneratorTask.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.ant;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.publisher.*;
-import org.eclipse.equinox.internal.p2.publisher.actions.EclipseInstallAction;
-import org.eclipse.equinox.internal.p2.publisher.actions.LocalUpdateSiteAction;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * An Ant task to call the p2 Metadata Generator application.
- * 
- * @since 1.0
- */
-public class GeneratorTask extends Task {
-
-	protected PublisherInfo provider = null;
-
-	protected String source;
-	protected String metadataLocation;
-	protected String metadataRepoName;
-	protected String artifactLocation;
-	protected String artifactRepoName;
-	protected boolean compress = false;
-	protected boolean inplace = false;
-	protected boolean append = false;
-	protected boolean reusePackedFiles = false;
-	protected String[] configurations;
-	protected String mode;
-	private File[] bundles;
-	private File[] features;
-	private String productFile;
-	private String flavor;
-	private String operation;
-	private String operationValue;
-	private boolean addDefaultIUs;
-	private String root;
-	private String rootVersion;
-	private String versionAdvice;
-
-	private String rootName;
-	private String[] topLevel;
-	private boolean start;
-	private String[] nonRootFiles;
-
-	/* (non-Javadoc)
-	 * @see org.apache.tools.ant.Task#execute()
-	 */
-	public void execute() throws BuildException {
-		try {
-			initialize(getInfo());
-		} catch (ProvisionException e) {
-			throw new BuildException("Unable to configure repositories", e); //$NON-NLS-1$
-		}
-		createVersionAdvice();
-		IPublishingAction[] actions = createActions();
-		IStatus result = new Publisher(getInfo()).publish(actions);
-
-		// TODO hack assignments to keep the compiler from whining about the unreferenced privates.
-		Object o = bundles;
-		o = features;
-		o = productFile;
-		boolean b = addDefaultIUs;
-
-		//		try {
-		//			if ("incremental".equals(mode)) { //$NON-NLS-1$
-		//				if (result == null)
-		//					result = new PublisherResult();
-		//				generator.setIncrementalResult(result);
-		//				generator.setGeneratorRootIU(false);
-		//			} else if ("final".equals(mode) && result != null) { //$NON-NLS-1$
-		//				generator.setIncrementalResult(result);
-		//				generator.setGeneratorRootIU(true);
-		//			}
-		//
-		//			generator.run(provider);
-		//
-		//			if (!"incremental".equals(mode)) { //$NON-NLS-1$
-		//				provider = null;
-		//				generator = null;
-		//				result = null;
-		//			}
-		//		} catch (Exception e) {
-		//			throw new BuildException(TaskMessages.exception_errorOccurredCallingGenerator, e);
-		//		}
-	}
-
-	private IPublishingAction[] createActions() {
-		if (operation == null)
-			// TODO what to do in this case?
-			return new IPublishingAction[] {};
-		if (operation.equals("-update")) //$NON-NLS-1$
-			return new IPublishingAction[] {new LocalUpdateSiteAction(operationValue)};
-		if (operation.equals("-source")) //$NON-NLS-1$
-			// TODO what to do in this case?
-			return new IPublishingAction[] {new EclipseInstallAction(operationValue, root, rootVersion, rootName, flavor, topLevel, nonRootFiles, start)};
-		if (operation.equals("-update")) //$NON-NLS-1$
-			// TODO what to do in this case?
-			return new IPublishingAction[] {};
-		if (operation.equals("-update")) //$NON-NLS-1$
-			// TODO what to do in this case?
-			return new IPublishingAction[] {};
-		// TODO what to do in this case?
-		return new IPublishingAction[] {};
-	}
-
-	private void createVersionAdvice() {
-		if (versionAdvice == null)
-			return;
-		// TODO read the version advice and add the IVersionAdvice
-	}
-
-	protected void initialize(PublisherInfo info) throws ProvisionException {
-		if (inplace) {
-			File location = new File(source);
-			try {
-				if (metadataLocation == null)
-					metadataLocation = location.toURL().toExternalForm();
-				if (artifactLocation == null)
-					artifactLocation = location.toURL().toExternalForm();
-			} catch (MalformedURLException e) {
-				// ought not happen...
-			}
-			info.setArtifactOptions(info.getArtifactOptions() | IPublisherInfo.A_INDEX | IPublisherInfo.A_PUBLISH);
-		} else
-			info.setArtifactOptions(info.getArtifactOptions() | IPublisherInfo.A_INDEX | IPublisherInfo.A_PUBLISH | IPublisherInfo.A_OVERWRITE);
-		initializeRepositories(info);
-	}
-
-	protected void initializeRepositories(PublisherInfo info) throws ProvisionException {
-		info.setArtifactRepository(Publisher.createArtifactRepository(artifactLocation, artifactRepoName, append, compress, reusePackedFiles));
-		info.setMetadataRepository(Publisher.createMetadataRepository(metadataLocation, metadataRepoName, append, compress));
-	}
-
-	private PublisherInfo getInfo() {
-		if (provider == null)
-			provider = new PublisherInfo();
-		return provider;
-	}
-
-	public void setAppend(String value) {
-		append = Boolean.valueOf(value).booleanValue();
-	}
-
-	public void setArtifactRepository(String location) {
-		artifactLocation = location;
-	}
-
-	public void setArtifactRepositoryName(String value) {
-		artifactRepoName = value;
-	}
-
-	public void setBase(String value) {
-		source = value;
-	}
-
-	public void setBundles(String value) {
-		bundles = new File[] {new File(value)};
-	}
-
-	public void setCompress(String value) {
-		compress = Boolean.valueOf(value).booleanValue();
-	}
-
-	public void setConfig(String value) {
-		operation = "-config"; //$NON-NLS-1$
-		operationValue = value;
-	}
-
-	public void setInplace(String value) {
-		operation = "-inplace"; //$NON-NLS-1$
-		operationValue = value;
-	}
-
-	public void setSource(String location) {
-		operation = "-source"; //$NON-NLS-1$
-		operationValue = location;
-	}
-
-	public void setUpdateSite(String value) {
-		operation = "-update"; //$NON-NLS-1$
-		operationValue = value;
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public void setExe(String value) {
-	}
-
-	public void setFeatures(String value) {
-		features = new File[] {new File(value)};
-	}
-
-	public void setFlavor(String value) {
-		flavor = value;
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public void setLauncherConfig(String value) {
-	}
-
-	public void setMetadataRepository(String location) {
-		metadataLocation = location;
-	}
-
-	public void setMetadataRepositoryName(String value) {
-		metadataRepoName = value;
-	}
-
-	public void setNoDefaultIUs(String value) {
-		addDefaultIUs = !Boolean.valueOf(value).booleanValue();
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public void setP2OS(String value) {
-	}
-
-	public void setProductFile(String file) {
-		productFile = file;
-	}
-
-	public void setPublishArtifactRepository(String value) {
-		getInfo().setArtifactOptions(getInfo().getArtifactOptions() | IPublisherInfo.A_INDEX);
-	}
-
-	public void setPublishArtifacts(String value) {
-		getInfo().setArtifactOptions(getInfo().getArtifactOptions() | IPublisherInfo.A_PUBLISH);
-	}
-
-	public void setRoot(String value) {
-		root = value;
-	}
-
-	public void setRootVersion(String value) {
-		rootVersion = value;
-	}
-
-	public void setMode(String value) {
-		mode = value;
-	}
-
-	public void setVersionAdvice(String value) {
-		versionAdvice = value;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java b/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java
deleted file mode 100644
index 77e7103..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.metadata.generator.ant;
-
-import org.eclipse.osgi.util.NLS;
-
-public class TaskMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.metadata.generator.ant.messages";//$NON-NLS-1$
-
-	public static String exception_errorOccurredCallingGenerator;
-	public static String exception_errorArtifactRepo;
-	public static String exception_errorMetadataRepo;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, TaskMessages.class);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties b/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties
deleted file mode 100644
index 2c2eb1c..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/src_ant/org/eclipse/equinox/internal/p2/metadata/generator/ant/messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-exception_errorOccurredCallingGenerator = An error occurred when calling generator.
-exception_errorArtifactRepo = Error setting artifact repository {0}.
-exception_errorMetadataRepo = Error setting metadata repository {0}.
diff --git a/bundles/org.eclipse.equinox.p2.publisher/temp.folder/ant_tasks/generator-ant.jar.bin/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.class b/bundles/org.eclipse.equinox.p2.publisher/temp.folder/ant_tasks/generator-ant.jar.bin/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.class
deleted file mode 100644
index 2d2fa56..0000000
--- a/bundles/org.eclipse.equinox.p2.publisher/temp.folder/ant_tasks/generator-ant.jar.bin/org/eclipse/equinox/internal/p2/metadata/generator/ant/TaskMessages.class
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.classpath b/bundles/org.eclipse.equinox.p2.reconciler.dropins/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.cvsignore b/bundles/org.eclipse.equinox.p2.reconciler.dropins/.cvsignore
deleted file mode 100644
index e043cc4..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-build.xml
-javaCompiler...args
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.project b/bundles/org.eclipse.equinox.p2.reconciler.dropins/.project
deleted file mode 100644
index 141bd40..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.reconciler.dropins</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ab01093..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,331 +0,0 @@
-#Sat Oct 27 14:19:24 PDT 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 56bcc3e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:07 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF
deleted file mode 100644
index c234f6a..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,36 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.reconciler.dropins;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.reconciler.dropins.Activator
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.update,
- org.eclipse.equinox.internal.provisional.configurator,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.director,
- org.eclipse.equinox.internal.provisional.p2.directorywatcher,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.core.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository,
- org.eclipse.osgi.service.datalocation;version="1.0.0",
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.packageadmin;version="1.2.0",
- org.osgi.util.tracker;version="1.3.3",
- org.xml.sax
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.equinox.p2.touchpoint.eclipse;bundle-version="0.1.0"
-Export-Package: org.eclipse.equinox.internal.p2.extensionlocation;x-internal:=true,
- org.eclipse.equinox.internal.p2.reconciler.dropins;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/about.html b/bundles/org.eclipse.equinox.p2.reconciler.dropins/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/build.properties b/bundles/org.eclipse.equinox.p2.reconciler.dropins/build.properties
deleted file mode 100644
index eb63c6e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.properties b/bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.properties
deleted file mode 100644
index 53dae02..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Dropin Reconciler Plug-in
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.xml b/bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.xml
deleted file mode 100644
index 81c2c8e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-      <extension
-      id="extensionRepository"
-         point="org.eclipse.equinox.p2.metadata.repository.metadataRepositories">
-      <factory
-            class="org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepositoryFactory">
-      </factory>
-      <filter
-            suffix="eclipse">
-      </filter>
-   </extension>
-      <extension
-            point="org.eclipse.equinox.p2.artifact.repository.artifactRepositories">
-         <factory
-               class="org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationArtifactRepositoryFactory">
-         </factory>
-         <filter
-               suffix="eclipse">
-         </filter>
-      </extension>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java
deleted file mode 100644
index 6a73117..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.Set;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.Activator;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.osgi.framework.BundleContext;
-
-public class BundlePoolFilteredListener extends DirectoryChangeListener {
-
-	private DirectoryChangeListener delegate;
-	private Set bundlePoolFiles = new HashSet();
-
-	public BundlePoolFilteredListener(BundleContext context, DirectoryChangeListener listener) {
-		delegate = listener;
-		IFileArtifactRepository bundlePool = Util.getBundlePoolRepository(Activator.getCurrentProfile(context));
-		IArtifactKey[] keys = bundlePool.getArtifactKeys();
-		for (int i = 0; i < keys.length; i++) {
-			File artifactFile = bundlePool.getArtifactFile(keys[i]);
-			if (artifactFile != null)
-				bundlePoolFiles.add(artifactFile);
-		}
-	}
-
-	public boolean added(File file) {
-		return delegate.added(file);
-	}
-
-	public boolean changed(File file) {
-		return delegate.changed(file);
-	}
-
-	public Long getSeenFile(File file) {
-		return delegate.getSeenFile(file);
-	}
-
-	public boolean isInterested(File file) {
-		if (bundlePoolFiles.contains(file))
-			return false;
-
-		return delegate.isInterested(file);
-	}
-
-	public boolean removed(File file) {
-		return delegate.removed(file);
-	}
-
-	public void startPoll() {
-		delegate.startPoll();
-	}
-
-	public void stopPoll() {
-		delegate.stopPoll();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
deleted file mode 100644
index cb74293..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.SimpleArtifactRepositoryFactory;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.osgi.framework.BundleContext;
-
-public class ExtensionLocationArtifactRepository extends AbstractRepository implements IFileArtifactRepository {
-
-	private static final String POOLED = ".pooled"; //$NON-NLS-1$
-	//private static final String PROFILE_EXTENSION = "profile.extension"; //$NON-NLS-1$
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FILE = "file"; //$NON-NLS-1$
-	private final IFileArtifactRepository artifactRepository;
-
-	public ExtensionLocationArtifactRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		super("Extension: " + location.toExternalForm(), null, null, location, null, null); //$NON-NLS-1$
-
-		File base = getBaseDirectory(location);
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		BundleContext context = Activator.getContext();
-		String stateDirName = Integer.toString(location.toExternalForm().hashCode());
-		File bundleData = context.getDataFile(null);
-		File stateDir = new File(bundleData, stateDirName);
-		URL localRepositoryURL;
-		try {
-			localRepositoryURL = stateDir.toURL();
-		} catch (MalformedURLException e) {
-			// unexpected
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, "Failed to create local repository", e)); //$NON-NLS-1$
-		}
-
-		artifactRepository = (IFileArtifactRepository) initializeArtifactRepository(localRepositoryURL, "extension location implementation - " + location.toExternalForm()); //$NON-NLS-1$
-
-		DirectoryWatcher watcher = new DirectoryWatcher(new File[] {plugins, features});
-		DirectoryChangeListener listener = new RepositoryListener(context, null, artifactRepository);
-		if (location.getPath().endsWith(POOLED))
-			listener = new BundlePoolFilteredListener(context, listener);
-
-		watcher.addListener(listener);
-		watcher.poll();
-	}
-
-	private IArtifactRepository initializeArtifactRepository(URL stateDirURL, String repositoryName) {
-		SimpleArtifactRepositoryFactory factory = new SimpleArtifactRepositoryFactory();
-		try {
-			return factory.load(stateDirURL, null);
-
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		IArtifactRepository repository = factory.create(stateDirURL, repositoryName, null);
-		//repository.setProperty(PROFILE_EXTENSION, "true");
-		return repository;
-	}
-
-	public static void validate(URL location, IProgressMonitor monitor) throws ProvisionException {
-		getBaseDirectory(location);
-	}
-
-	public static File getBaseDirectory(URL url) throws ProvisionException {
-		if (!FILE.equals(url.getProtocol()))
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location must use file protocol", null));
-
-		String path = url.getPath();
-		File base = new File(path);
-		if (path.endsWith(POOLED)) {
-			base = base.getParentFile();
-		}
-
-		if (!base.isDirectory())
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location not a directory", null));
-
-		if (isBaseDirectory(base))
-			return base;
-
-		File eclipseBase = new File(base, ECLIPSE);
-		if (isBaseDirectory(eclipseBase))
-			return eclipseBase;
-
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location is not an extension", null));
-	}
-
-	private static boolean isBaseDirectory(File base) {
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		return plugins.isDirectory() || features.isDirectory();
-	}
-
-	public void addDescriptor(IArtifactDescriptor descriptor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addDescriptors(IArtifactDescriptor[] descriptors) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeAll() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeDescriptor(IArtifactDescriptor descriptor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeDescriptor(IArtifactKey key) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean contains(IArtifactDescriptor descriptor) {
-		return artifactRepository.contains(descriptor);
-	}
-
-	public boolean contains(IArtifactKey key) {
-		return artifactRepository.contains(key);
-	}
-
-	public IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		return artifactRepository.getArtifact(descriptor, destination, monitor);
-	}
-
-	public IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key) {
-		return artifactRepository.getArtifactDescriptors(key);
-	}
-
-	public IArtifactKey[] getArtifactKeys() {
-		return artifactRepository.getArtifactKeys();
-	}
-
-	public IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor) {
-		return artifactRepository.getArtifacts(requests, monitor);
-	}
-
-	public OutputStream getOutputStream(IArtifactDescriptor descriptor) throws ProvisionException {
-		return artifactRepository.getOutputStream(descriptor);
-	}
-
-	public File getArtifactFile(IArtifactKey key) {
-		return artifactRepository.getArtifactFile(key);
-	}
-
-	public File getArtifactFile(IArtifactDescriptor descriptor) {
-		return artifactRepository.getArtifactFile(descriptor);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
deleted file mode 100644
index 83cb924..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.IArtifactRepositoryFactory;
-
-public class ExtensionLocationArtifactRepositoryFactory implements IArtifactRepositoryFactory {
-
-	public IArtifactRepository create(URL location, String name, String type) throws ProvisionException {
-		return null;
-	}
-
-	public IArtifactRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		return new ExtensionLocationArtifactRepository(location, monitor);
-	}
-
-	public IStatus validate(URL location, IProgressMonitor monitor) {
-		try {
-			ExtensionLocationArtifactRepository.validate(location, monitor);
-		} catch (ProvisionException e) {
-			return e.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
deleted file mode 100644
index 8e5b53e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.Activator;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.SimpleMetadataRepositoryFactory;
-import org.osgi.framework.BundleContext;
-
-public class ExtensionLocationMetadataRepository extends AbstractRepository implements IMetadataRepository {
-
-	private static final String POOLED = ".pooled"; //$NON-NLS-1$
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FILE = "file"; //$NON-NLS-1$
-	private final IMetadataRepository metadataRepository;
-
-	public ExtensionLocationMetadataRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		super("Extension: " + location.toExternalForm(), null, null, location, null, null); //$NON-NLS-1$
-
-		File base = getBaseDirectory(location);
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		BundleContext context = Activator.getContext();
-		String stateDirName = Integer.toString(location.toExternalForm().hashCode());
-		File bundleData = context.getDataFile(null);
-		File stateDir = new File(bundleData, stateDirName);
-		URL localRepositoryURL;
-		try {
-			localRepositoryURL = stateDir.toURL();
-		} catch (MalformedURLException e) {
-			// unexpected
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, "Failed to create local repository", e)); //$NON-NLS-1$
-		}
-
-		metadataRepository = initializeMetadataRepository(localRepositoryURL, "extension location implementation - " + location.toExternalForm()); //$NON-NLS-1$
-
-		DirectoryWatcher watcher = new DirectoryWatcher(new File[] {plugins, features});
-		DirectoryChangeListener listener = new RepositoryListener(context, metadataRepository, null);
-		if (location.getPath().endsWith(POOLED))
-			listener = new BundlePoolFilteredListener(context, listener);
-
-		watcher.addListener(listener);
-		watcher.poll();
-	}
-
-	private IMetadataRepository initializeMetadataRepository(URL stateDirURL, String repositoryName) {
-		SimpleMetadataRepositoryFactory factory = new SimpleMetadataRepositoryFactory();
-		try {
-			return factory.load(stateDirURL, null);
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		return factory.create(stateDirURL, repositoryName, null);
-	}
-
-	public void addInstallableUnits(IInstallableUnit[] installableUnits) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeAll() {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeInstallableUnits(Query query, IProgressMonitor monitor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		return metadataRepository.query(query, collector, monitor);
-	}
-
-	public static void validate(URL location, IProgressMonitor monitor) throws ProvisionException {
-		getBaseDirectory(location);
-	}
-
-	public static File getBaseDirectory(URL url) throws ProvisionException {
-		if (!FILE.equals(url.getProtocol()))
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location must use file protocol", null));
-
-		String path = url.getPath();
-		File base = new File(path);
-		if (path.endsWith(POOLED)) {
-			base = base.getParentFile();
-		}
-
-		if (!base.isDirectory())
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location not a directory", null));
-
-		if (isBaseDirectory(base))
-			return base;
-
-		File eclipseBase = new File(base, ECLIPSE);
-		if (isBaseDirectory(eclipseBase))
-			return eclipseBase;
-
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location is not an extension", null));
-	}
-
-	private static boolean isBaseDirectory(File base) {
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		return plugins.isDirectory() || features.isDirectory();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository#getProperties()
-	 */
-	public Map getProperties() {
-		if (metadataRepository == null)
-			return super.getProperties();
-		else
-			return metadataRepository.getProperties();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
deleted file mode 100644
index 31da09c..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.IMetadataRepositoryFactory;
-
-public class ExtensionLocationMetadataRepositoryFactory implements IMetadataRepositoryFactory {
-
-	public IMetadataRepository create(URL location, String name, String type) throws ProvisionException {
-		return null;
-	}
-
-	public IMetadataRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		return new ExtensionLocationMetadataRepository(location, monitor);
-	}
-
-	public IStatus validate(URL location, IProgressMonitor monitor) {
-		try {
-			ExtensionLocationMetadataRepository.validate(location, monitor);
-		} catch (ProvisionException e) {
-			return e.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java
deleted file mode 100644
index 6e206f5..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM Corporation - initial implementation and ideas 
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-public class Activator implements BundleActivator {
-
-	public static final String ID = "org.eclipse.equinox.p2.reconciler.dropins"; //$NON-NLS-1$
-	private static final String DROPINS_DIRECTORY = "org.eclipse.equinox.p2.reconciler.dropins.directory"; //$NON-NLS-1$
-	private static final String OSGI_CONFIGURATION_AREA = "osgi.configuration.area"; //$NON-NLS-1$
-	private static final String DROPINS = "dropins"; //$NON-NLS-1$
-	//	private static final String PROFILE_EXTENSION = "profile.extension"; //$NON-NLS-1$
-	private static PackageAdmin packageAdmin;
-	private static BundleContext bundleContext;
-	private ServiceReference packageAdminRef;
-	private List watchers = new ArrayList();
-	private static IMetadataRepository[] dropinRepositories;
-	private static IMetadataRepository[] configurationRepositories;
-	private static IMetadataRepository[] linksRepositories;
-	private static IMetadataRepository eclipseProductRepository;
-
-	/**
-	 * Helper method to load a metadata repository from the specified URL.
-	 * This method never returns <code>null</code>.
-	 * 
-	 * @throws IllegalStateException
-	 * @throws ProvisionException 
-	 */
-	public static IMetadataRepository loadMetadataRepository(URL repoURL) throws ProvisionException {
-		BundleContext context = getContext();
-		ServiceReference reference = context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		IMetadataRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IMetadataRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("MetadataRepositoryManager not registered.");
-		try {
-			return manager.loadRepository(repoURL, null);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	/**
-	 * Helper method to load an artifact repository from the given URL.
-	 * This method never returns <code>null</code>.
-	 * 
-	 * @throws IllegalStateException
-	 * @throws ProvisionException
-	 */
-	public static IArtifactRepository loadArtifactRepository(URL repoURL) throws ProvisionException {
-		BundleContext context = getContext();
-		ServiceReference reference = context.getServiceReference(IArtifactRepositoryManager.class.getName());
-		IArtifactRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IArtifactRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("ArtifactRepositoryManager not registered.");
-		try {
-			return manager.loadRepository(repoURL, null);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		packageAdminRef = context.getServiceReference(PackageAdmin.class.getName());
-		setPackageAdmin((PackageAdmin) context.getService(packageAdminRef));
-		bundleContext = context;
-
-		if (!startEarly("org.eclipse.equinox.p2.exemplarysetup")) //$NON-NLS-1$
-			return;
-		if (!startEarly("org.eclipse.equinox.simpleconfigurator.manipulator")) //$NON-NLS-1$
-			return;
-		if (!startEarly("org.eclipse.equinox.frameworkadmin.equinox")) //$NON-NLS-1$
-			return;
-		IProfile profile = getCurrentProfile(context);
-		if (profile == null)
-			return;
-
-		// create a watcher for the main plugins and features directories
-		watchEclipseProduct();
-		// create the watcher for the "drop-ins" folder
-		watchDropins(profile);
-		// keep an eye on the platform.xml
-		if (false)
-			watchConfiguration();
-
-		synchronize(new ArrayList(0), null);
-
-		// we should probably be  holding on to these repos by URL
-		// see Bug 223422
-		// for now explicitly nulling out these repos to allow GC to occur
-		dropinRepositories = null;
-		configurationRepositories = null;
-		linksRepositories = null;
-		eclipseProductRepository = null;
-	}
-
-	private void watchEclipseProduct() {
-
-		URL baseURL;
-		try {
-			baseURL = new URL(bundleContext.getProperty(OSGI_CONFIGURATION_AREA));
-			URL pooledURL = new URL(baseURL, "../.pooled"); //$NON-NLS-1$
-			loadArtifactRepository(pooledURL);
-			eclipseProductRepository = loadMetadataRepository(pooledURL);
-		} catch (MalformedURLException e) {
-			// TODO proper logging
-			e.printStackTrace();
-		} catch (ProvisionException e) {
-			// TODO proper logging
-			e.printStackTrace();
-		}
-
-	}
-
-	private boolean startEarly(String bundleName) throws BundleException {
-		Bundle bundle = getBundle(bundleName);
-		if (bundle == null)
-			return false;
-		bundle.start(Bundle.START_TRANSIENT);
-		return true;
-	}
-
-	/*
-	 * Synchronize the profile.
-	 */
-	public static synchronized void synchronize(List extraRepositories, IProgressMonitor monitor) {
-		IProfile profile = getCurrentProfile(bundleContext);
-		if (profile == null)
-			return;
-		// create the profile synchronizer on all available repositories
-		Set repositories = new HashSet(extraRepositories);
-		if (dropinRepositories != null)
-			repositories.addAll(Arrays.asList(dropinRepositories));
-
-		if (configurationRepositories != null)
-			repositories.addAll(Arrays.asList(configurationRepositories));
-
-		if (linksRepositories != null)
-			repositories.addAll(Arrays.asList(linksRepositories));
-
-		if (eclipseProductRepository != null)
-			repositories.add(eclipseProductRepository);
-
-		ProfileSynchronizer synchronizer = new ProfileSynchronizer(profile, repositories);
-		IStatus result = synchronizer.synchronize(monitor);
-		if (!result.isOK())
-			LogHelper.log(result);
-
-	}
-
-	/*
-	 * Watch the platform.xml file.
-	 */
-	private void watchConfiguration() {
-		File configFile = new File("configuration/org.eclipse.update/platform.xml"); //$NON-NLS-1$
-		DirectoryWatcher watcher = new DirectoryWatcher(configFile.getParentFile());
-		try {
-			PlatformXmlListener listener = new PlatformXmlListener(configFile);
-			watcher.addListener(listener);
-			watcher.poll();
-			List repositories = listener.getMetadataRepositories();
-			if (repositories != null)
-				configurationRepositories = (IMetadataRepository[]) repositories.toArray(new IMetadataRepository[0]);
-		} catch (ProvisionException e) {
-			// TODO proper logging
-			e.printStackTrace();
-		}
-	}
-
-	/*
-	 * Create a new directory watcher with a repository listener on the drop-ins folder. 
-	 */
-	private void watchDropins(IProfile profile) {
-		List directories = new ArrayList();
-		File dropinsDirectory = getDropinsDirectory();
-		if (dropinsDirectory != null)
-			directories.add(dropinsDirectory);
-		File linksDirectory = getLinksDirectory();
-		if (linksDirectory != null)
-			directories.add(linksDirectory);
-		if (directories.isEmpty())
-			return;
-
-		DropinsRepositoryListener listener = new DropinsRepositoryListener(Activator.getContext(), "dropins:" + dropinsDirectory.getAbsolutePath());
-		//		listener.getArtifactRepository().setProperty(PROFILE_EXTENSION, profile.getProfileId());
-		DirectoryWatcher watcher = new DirectoryWatcher((File[]) directories.toArray(new File[directories.size()]));
-		watcher.addListener(listener);
-		watcher.poll();
-
-		dropinRepositories = listener.getMetadataRepositories();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		for (Iterator iter = watchers.iterator(); iter.hasNext();) {
-			DirectoryWatcher watcher = (DirectoryWatcher) iter.next();
-			watcher.stop();
-		}
-		bundleContext = null;
-		setPackageAdmin(null);
-		context.ungetService(packageAdminRef);
-	}
-
-	/*
-	 * Return the bundle context for this bundle.
-	 */
-	public static BundleContext getContext() {
-		return bundleContext;
-	}
-
-	private static File getLinksDirectory() {
-		try {
-			//TODO: a proper install area would be better. osgi.install.area is relative to the framework jar
-			URL baseURL = new URL(bundleContext.getProperty(OSGI_CONFIGURATION_AREA));
-			URL folderURL = new URL(baseURL, "../links"); //$NON-NLS-1$
-			return new File(folderURL.getPath());
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	public static File getDropinsDirectory() {
-		String watchedDirectoryProperty = bundleContext.getProperty(DROPINS_DIRECTORY);
-		if (watchedDirectoryProperty != null) {
-			File folder = new File(watchedDirectoryProperty);
-			return folder;
-		}
-		try {
-			//TODO: a proper install area would be better. osgi.install.area is relative to the framework jar
-			URL baseURL = new URL(bundleContext.getProperty(OSGI_CONFIGURATION_AREA));
-			URL folderURL = new URL(baseURL, "../" + DROPINS); //$NON-NLS-1$
-			File folder = new File(folderURL.getPath());
-			return folder;
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	// Disabled for now
-
-	//	private void removeUnwatchedRepositories(BundleContext context, Profile profile, File watchedFolder) {
-	//		removeUnwatchedMetadataRepositories(context, profile, watchedFolder);
-	//		removeUnwatchedArtifactRepositories(context, profile, watchedFolder);
-	//	}
-	//
-	//	private void removeUnwatchedArtifactRepositories(BundleContext context, Profile profile, File watchedFolder) {
-	//		ServiceReference reference = context.getServiceReference(IArtifactRepositoryManager.class.getName());
-	//		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) context.getService(reference);
-	//		try {
-	//			IArtifactRepository[] repositories = manager.getKnownRepositories();
-	//			for (int i = 0; i < repositories.length; i++) {
-	//				Map properties = repositories[i].getProperties();
-	//				String profileId = (String) properties.get("profileId");
-	//				String folderName = (String) properties.get("folder");
-	//
-	//				if (profile.getProfileId().equals(profileId) && !watchedFolder.getAbsolutePath().equals(folderName)) {
-	//					manager.removeRepository(repositories[i]);
-	//				}
-	//			}
-	//		} finally {
-	//			context.ungetService(reference);
-	//		}
-	//	}
-	//
-	//	private void removeUnwatchedMetadataRepositories(BundleContext context, Profile profile, File watchedFolder) {
-	//		ServiceReference reference = context.getServiceReference(IMetadataRepositoryManager.class.getName());
-	//		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) context.getService(reference);
-	//		try {
-	//			IMetadataRepository[] repositories = manager.getKnownRepositories();
-	//			for (int i = 0; i < repositories.length; i++) {
-	//				Map properties = repositories[i].getProperties();
-	//				String profileId = (String) properties.get("profileId");
-	//				if (profile.getProfileId().equals(profileId)) {
-	//					String folderName = (String) properties.get("folder");
-	//					if ((folderName != null) && !watchedFolder.getAbsolutePath().equals(folderName)) {
-	//						manager.removeRepository(repositories[i].getLocation());
-	//					}
-	//				}
-	//			}
-	//		} finally {
-	//			context.ungetService(reference);
-	//		}
-	//	}
-
-	public static IProfile getCurrentProfile(BundleContext context) {
-		ServiceReference reference = context.getServiceReference(IProfileRegistry.class.getName());
-		if (reference == null)
-			return null;
-		IProfileRegistry profileRegistry = (IProfileRegistry) context.getService(reference);
-		try {
-			return profileRegistry.getProfile(IProfileRegistry.SELF);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private static synchronized void setPackageAdmin(PackageAdmin service) {
-		packageAdmin = service;
-	}
-
-	static synchronized Bundle getBundle(String symbolicName) {
-		if (packageAdmin == null)
-			return null;
-
-		Bundle[] bundles = packageAdmin.getBundles(symbolicName, null);
-		if (bundles == null)
-			return null;
-		//Return the first bundle that is not installed or uninstalled
-		for (int i = 0; i < bundles.length; i++) {
-			if ((bundles[i].getState() & (Bundle.INSTALLED | Bundle.UNINSTALLED)) == 0) {
-				return bundles[i];
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java
deleted file mode 100644
index c2f9c6e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java
+++ /dev/null
@@ -1,248 +0,0 @@
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-public class DropinsRepositoryListener extends RepositoryListener {
-
-	private static final String JAR = ".jar"; //$NON-NLS-1$
-	private static final String LINK = ".link"; //$NON-NLS-1$
-	private static final String ZIP = ".zip"; //$NON-NLS-1$
-	private static final String LINKS_PATH = "path"; //$NON-NLS-1$
-	private static final String DROPIN_ARTIFACT_REPOSITORIES = "dropin.artifactRepositories"; //$NON-NLS-1$
-	private static final String DROPIN_METADATA_REPOSITORIES = "dropin.metadataRepositories"; //$NON-NLS-1$
-	private static final String PIPE = "|"; //$NON-NLS-1$
-	private BundleContext context;
-	private List metadataRepositories = new ArrayList();
-	private List artifactRepositories = new ArrayList();
-
-	public DropinsRepositoryListener(BundleContext context, String repositoryName) {
-		super(context, repositoryName);
-		this.context = context;
-	}
-
-	public boolean isInterested(File file) {
-		if (file.isDirectory())
-			return true;
-
-		String name = file.getName();
-		return name.endsWith(JAR) || name.endsWith(ZIP) || name.endsWith(LINK);
-	}
-
-	public boolean added(File file) {
-		if (super.added(file))
-			return true;
-
-		URL repositoryURL = createRepositoryURL(file);
-		if (repositoryURL != null) {
-			loadMetadataRepository(repositoryURL);
-			loadArtifactRepository(repositoryURL);
-		}
-		return true;
-	}
-
-	public boolean changed(File file) {
-		if (super.changed(file))
-			return true;
-
-		URL repositoryURL = createRepositoryURL(file);
-		if (repositoryURL != null) {
-			loadMetadataRepository(repositoryURL);
-			loadArtifactRepository(repositoryURL);
-		}
-		return true;
-	}
-
-	private String getLinkPath(File file) {
-		Properties links = new Properties();
-		try {
-			InputStream input = new BufferedInputStream(new FileInputStream(file));
-			try {
-				links.load(input);
-			} finally {
-				input.close();
-			}
-		} catch (IOException e) {
-			// ignore
-		}
-		String path = links.getProperty(LINKS_PATH);
-		if (path == null) {
-			// log
-			return null;
-		}
-
-		// parse out link information
-		if (path.startsWith("r ")) { //$NON-NLS-1$
-			path = path.substring(2).trim();
-		} else if (path.startsWith("rw ")) { //$NON-NLS-1$
-			path = path.substring(3).trim();
-		} else {
-			path = path.trim();
-		}
-		return path;
-	}
-
-	private URL createRepositoryURL(File file) {
-		try {
-			if (file.getName().endsWith(LINK)) {
-				File linkFile = file;
-				String path = getLinkPath(linkFile);
-				// todo log
-				if (path == null)
-					return null;
-				file = new File(path);
-				if (!file.isAbsolute()) {
-					// link support is relative to the install root
-					// For now we will use the parent of dropins folder
-					file = new File(Activator.getDropinsDirectory().getParentFile(), path);
-				}
-			}
-
-			File canonicalFile = file.getCanonicalFile();
-			URL repositoryURL = canonicalFile.toURL();
-			if (canonicalFile.getName().endsWith(ZIP) || canonicalFile.getName().endsWith(JAR)) {
-				repositoryURL = new URL("jar:" + repositoryURL.toString() + "!/"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return repositoryURL;
-		} catch (IOException e) {
-			// todo log			
-		}
-		return null;
-	}
-
-	public void loadMetadataRepository(URL repoURL) {
-		try {
-			metadataRepositories.add(Activator.loadMetadataRepository(repoURL));
-		} catch (ProvisionException e) {
-			//TODO: log
-			// ignore
-		}
-	}
-
-	public void loadArtifactRepository(URL repoURL) {
-		try {
-			artifactRepositories.add(Activator.loadArtifactRepository(repoURL));
-		} catch (ProvisionException e) {
-			//TODO: log
-			// ignore
-		}
-	}
-
-	public void stopPoll() {
-
-		synchronizeDropinMetadataRepositories();
-		synchronizeDropinArtifactRepositories();
-
-		super.stopPoll();
-	}
-
-	private void synchronizeDropinMetadataRepositories() {
-		List currentRepositories = new ArrayList();
-		for (Iterator it = metadataRepositories.iterator(); it.hasNext();) {
-			IMetadataRepository repository = (IMetadataRepository) it.next();
-			String urlString = repository.getLocation().toExternalForm();
-			currentRepositories.add(urlString);
-		}
-		List previousRepositories = getListRepositoryProperty(getMetadataRepository(), DROPIN_METADATA_REPOSITORIES);
-		for (Iterator iterator = previousRepositories.iterator(); iterator.hasNext();) {
-			String repository = (String) iterator.next();
-			if (!currentRepositories.contains(repository))
-				removeMetadataRepository(repository);
-		}
-		setListRepositoryProperty(getMetadataRepository(), DROPIN_METADATA_REPOSITORIES, currentRepositories);
-	}
-
-	private void removeMetadataRepository(String urlString) {
-		ServiceReference reference = context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		IMetadataRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IMetadataRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("MetadataRepositoryManager not registered.");
-
-		try {
-			manager.removeRepository(new URL(urlString));
-		} catch (MalformedURLException e) {
-			// TODO: log
-			// ignore
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private void synchronizeDropinArtifactRepositories() {
-		List currentRepositories = new ArrayList();
-		for (Iterator it = artifactRepositories.iterator(); it.hasNext();) {
-			IArtifactRepository repository = (IArtifactRepository) it.next();
-			String urlString = repository.getLocation().toExternalForm();
-			currentRepositories.add(urlString);
-		}
-		List previousRepositories = getListRepositoryProperty(getArtifactRepository(), DROPIN_ARTIFACT_REPOSITORIES);
-		for (Iterator iterator = previousRepositories.iterator(); iterator.hasNext();) {
-			String repository = (String) iterator.next();
-			if (!currentRepositories.contains(repository))
-				removeArtifactRepository(repository);
-		}
-		setListRepositoryProperty(getArtifactRepository(), DROPIN_ARTIFACT_REPOSITORIES, currentRepositories);
-	}
-
-	public void removeArtifactRepository(String urlString) {
-		ServiceReference reference = context.getServiceReference(IArtifactRepositoryManager.class.getName());
-		IArtifactRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IArtifactRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("ArtifactRepositoryManager not registered.");
-
-		try {
-			manager.removeRepository(new URL(urlString));
-		} catch (MalformedURLException e) {
-			//TODO: log
-			// ignore
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private List getListRepositoryProperty(IRepository repository, String key) {
-		List listProperty = new ArrayList();
-		String dropinRepositories = (String) repository.getProperties().get(key);
-		if (dropinRepositories != null) {
-			StringTokenizer tokenizer = new StringTokenizer(dropinRepositories, PIPE); //$NON-NLS-1$			
-			while (tokenizer.hasMoreTokens()) {
-				listProperty.add(tokenizer.nextToken());
-			}
-		}
-		return listProperty;
-	}
-
-	private void setListRepositoryProperty(IRepository repository, String key, List listProperty) {
-		StringBuffer buffer = new StringBuffer();
-		for (Iterator it = listProperty.iterator(); it.hasNext();) {
-			String repositoryString = (String) it.next();
-			buffer.append(repositoryString);
-			if (it.hasNext())
-				buffer.append(PIPE);
-		}
-		String value = (buffer.length() == 0) ? null : buffer.toString();
-		repository.setProperty(key, value);
-	}
-
-	public IMetadataRepository[] getMetadataRepositories() {
-		List result = new ArrayList(metadataRepositories);
-		result.add(getMetadataRepository());
-		return (IMetadataRepository[]) result.toArray(new IMetadataRepository[0]);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java
deleted file mode 100644
index ab0a16b..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @since 1.0
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.reconciler.dropins.messages"; //$NON-NLS-1$
-	public static String errorProcessingConfg;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// prevent instantiation
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java
deleted file mode 100644
index 6359520..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.SiteDelta.Change;
-import org.eclipse.equinox.internal.p2.update.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-
-/**
- * @since 1.0
- */
-public class PlatformXmlListener extends DirectoryChangeListener {
-
-	private static final String PLATFORM_XML = "platform.xml"; //$NON-NLS-1$
-	private boolean changed = false;
-	private Map sites = new HashMap();
-	private File root;
-	private long lastModified = -1l;
-
-	public PlatformXmlListener(File file) throws ProvisionException {
-		super();
-		if (!PLATFORM_XML.equals(file.getName()))
-			throw new IllegalArgumentException();
-		this.root = file;
-		// don't need to set the "sites" variable since we will treat
-		// everything as "added" in the delta if it is null
-		process();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#added(java.io.File)
-	 */
-	public boolean added(File file) {
-		changed = changed || PLATFORM_XML.equals(file.getName());
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#changed(java.io.File)
-	 */
-	public boolean changed(File file) {
-		changed = changed || PLATFORM_XML.equals(file.getName());
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#getSeenFile(java.io.File)
-	 */
-	public Long getSeenFile(File file) {
-		return new Long(0);
-	}
-
-	/*
-	 * Parse the platform.xml file and return the list of sites.
-	 */
-	private List parseConfiguration() throws ProvisionException {
-		Configuration cfg = ConfigurationParser.parse(root, (URL) null);
-		return cfg == null ? new ArrayList(0) : cfg.getSites();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener#isInterested(java.io.File)
-	 */
-	public boolean isInterested(File file) {
-		return file.getName().equals(PLATFORM_XML) && lastModified != file.lastModified();
-	}
-
-	private List getSites() {
-		List result = new ArrayList();
-		for (Iterator iter = sites.values().iterator(); iter.hasNext();) {
-			SiteInfo info = (SiteInfo) iter.next();
-			result.add(info.getSite());
-		}
-		return result;
-	}
-
-	/*
-	 * This is where we reconcile the platform.xml and bundles.info.
-	 */
-	private void process() throws ProvisionException {
-		lastModified = root.lastModified();
-		SiteDelta delta = SiteDelta.create(getSites(), parseConfiguration());
-		if (delta.isEmpty())
-			return;
-		added(delta.added());
-		removed(delta.removed());
-		changed(delta.changed());
-		//Activator.synchronize(getMetadataRepositories(), null); // TODO proper progress monitoring?
-	}
-
-	// iterate over the site listeners and collect the metadata repositories
-	public List getMetadataRepositories() {
-		List result = new ArrayList();
-		for (Iterator iter = sites.values().iterator(); iter.hasNext();) {
-			SiteInfo info = (SiteInfo) iter.next();
-			result.add(info.getRepository());
-		}
-		return result;
-	}
-
-	/*
-	 * The given list of sites has been added so add directory
-	 * watchers for each of them.
-	 */
-	private void added(Site[] added) throws ProvisionException {
-		if (added == null || added.length == 0)
-			return;
-		for (int i = 0; i < added.length; i++) {
-			Site site = added[i];
-			// TODO skip for now
-			if ("platform:/base/".equals(site.getUrl())) //$NON-NLS-1$
-				continue;
-			try {
-				URL url = new URL(site.getUrl());
-				try {
-					url = FileLocator.resolve(url);
-				} catch (IOException e) {
-					throw new ProvisionException(Messages.errorProcessingConfg, e);
-				}
-				IMetadataRepository repo = Activator.loadMetadataRepository(url);
-				if (repo == null) {
-					// todo
-				} else
-					sites.put(site.getUrl(), new SiteInfo(site, repo));
-			} catch (MalformedURLException e) {
-				throw new ProvisionException(Messages.errorProcessingConfg, e);
-			}
-		}
-	}
-
-	/*
-	 * The given list of sites has been removed so act accordingly.
-	 * Remove all the registered directory watchers.
-	 */
-	private void removed(Site[] removed) {
-		if (removed == null || removed.length == 0)
-			return;
-		for (int i = 0; i < removed.length; i++) {
-			Site site = removed[i];
-			SiteInfo info = (SiteInfo) sites.get(site.getUrl());
-			// TODO I think this should be an error?
-			if (info == null) {
-				// 
-			}
-
-			sites.remove(site.getUrl());
-		}
-	}
-
-	/*
-	 * The given set of sites has had their contents changed.
-	 */
-	private void changed(Change[] changes) throws ProvisionException {
-		for (int i = 0; i < changes.length; i++) {
-			Change change = changes[i];
-			if (majorChange(change)) {
-				removed(new Site[] {change.oldSite});
-				added(new Site[] {change.newSite});
-			}
-		}
-	}
-
-	/*
-	 * Return true if the differences between the 2 sites should cause
-	 * a new listener to be created.
-	 */
-	private boolean majorChange(Change change) {
-		Site one = change.oldSite;
-		Site two = change.newSite;
-		if (!Utils.equals(one.getPolicy(), two.getPolicy()))
-			return true;
-		return !Utils.equals(one.getList(), two.getList());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#removed(java.io.File)
-	 */
-	public boolean removed(File file) {
-		changed = changed || PLATFORM_XML.equals(file.getName());
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#startPoll()
-	 */
-	public void startPoll() {
-		changed = false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#stopPoll()
-	 */
-	public void stopPoll() {
-		if (changed)
-			try {
-				process();
-			} catch (ProvisionException e) {
-				e.printStackTrace();
-			}
-		changed = false;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
deleted file mode 100644
index 228b517..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM Corporation - initial implementation and ideas 
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.configurator.Configurator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.osgi.framework.*;
-
-/**
- * Synchronizes a profile with a set of repositories.
- */
-public class ProfileSynchronizer {
-	private static final String TIMESTAMPS_FILE_PREFIX = "timestamps"; //$NON-NLS-1$
-	private static final String PROFILE_TIMESTAMP = "PROFILE"; //$NON-NLS-1$
-	private static final String NO_TIMESTAMP = "-1"; //$NON-NLS-1$
-
-	private static final String SUPER_IU = "org.eclipse.equinox.p2.dropins"; //$NON-NLS-1$
-
-	public class ListCollector extends Collector {
-		public List getList() {
-			return super.getList();
-		}
-	}
-
-	private static final String CACHE_EXTENSIONS = "org.eclipse.equinox.p2.cache.extensions"; //$NON-NLS-1$
-	private static final String PIPE = "|"; //$NON-NLS-1$
-	final IProfile profile;
-
-	final Map repositoryMap;
-	private Properties timestamps;
-
-	/*
-	 * Constructor for the class.
-	 */
-	public ProfileSynchronizer(IProfile profile, Collection repositories) {
-		this.profile = profile;
-		this.repositoryMap = new HashMap();
-		for (Iterator it = repositories.iterator(); it.hasNext();) {
-			IMetadataRepository repository = (IMetadataRepository) it.next();
-			repositoryMap.put(repository.getLocation().toExternalForm(), repository);
-		}
-	}
-
-	/*
-	 * Synchronize the profile with the list of metadata repositories.
-	 */
-	public IStatus synchronize(IProgressMonitor monitor) {
-		readTimestamps();
-		if (isUpToDate())
-			return Status.OK_STATUS;
-
-		IStatus status = synchronizeCacheExtensions();
-		if (!status.isOK())
-			return status;
-
-		ProvisioningContext context = getContext();
-		ProfileChangeRequest request = createProfileChangeRequest(context);
-
-		if (request == null)
-			return Status.OK_STATUS;
-
-		SubMonitor sub = SubMonitor.convert(monitor, 100);
-		try {
-			//create the provisioning plan
-			ProvisioningPlan plan = createProvisioningPlan(request, context, sub.newChild(50));
-
-			status = plan.getStatus();
-			if (status.getSeverity() == IStatus.ERROR || plan.getOperands().length == 0)
-				return status;
-
-			//invoke the engine to perform installs/uninstalls
-			IStatus engineResult = executePlan(plan, context, sub.newChild(50));
-
-			if (!engineResult.isOK())
-				return engineResult;
-			writeTimestamps();
-
-			applyConfiguration();
-
-			return status;
-		} finally {
-			sub.done();
-		}
-	}
-
-	private void writeTimestamps() {
-		timestamps.clear();
-		timestamps.put(PROFILE_TIMESTAMP, Long.toString(profile.getTimestamp()));
-		for (Iterator it = repositoryMap.entrySet().iterator(); it.hasNext();) {
-			Entry entry = (Entry) it.next();
-			IMetadataRepository repository = (IMetadataRepository) entry.getValue();
-			Map props = repository.getProperties();
-			String timestamp = null;
-			if (props != null)
-				timestamp = (String) props.get(IRepository.PROP_TIMESTAMP);
-
-			if (timestamp == null)
-				timestamp = NO_TIMESTAMP;
-
-			timestamps.put(entry.getKey(), timestamp);
-		}
-
-		try {
-			File file = Activator.getContext().getDataFile(TIMESTAMPS_FILE_PREFIX + profile.getProfileId().hashCode());
-			OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
-			try {
-				timestamps.save(os, "Timestamps for " + profile.getProfileId()); //$NON-NLS-1$
-			} finally {
-				if (os != null)
-					os.close();
-			}
-		} catch (FileNotFoundException e) {
-			//Ignore
-		} catch (IOException e) {
-			//Ignore
-		}
-	}
-
-	private boolean isUpToDate() {
-		String lastKnownProfileTimeStamp = (String) timestamps.remove(PROFILE_TIMESTAMP);
-		if (lastKnownProfileTimeStamp == null)
-			return false;
-		if (!lastKnownProfileTimeStamp.equals(Long.toString(profile.getTimestamp())))
-			return false;
-
-		//When we get here the timestamps map only contains information related to repos
-		for (Iterator it = repositoryMap.entrySet().iterator(); it.hasNext();) {
-			Entry entry = (Entry) it.next();
-			IMetadataRepository repository = (IMetadataRepository) entry.getValue();
-
-			Map props = repository.getProperties();
-			String currentTimestamp = null;
-			if (props != null)
-				currentTimestamp = (String) props.get(IRepository.PROP_TIMESTAMP);
-
-			if (currentTimestamp == null)
-				currentTimestamp = NO_TIMESTAMP;
-
-			String lastKnownTimestamp = (String) timestamps.remove(entry.getKey());
-			//A repo has been added 
-			if (lastKnownTimestamp == null)
-				return false;
-			if (!lastKnownTimestamp.equals(currentTimestamp)) {
-				return false;
-			}
-		}
-		//A repo has been removed
-		if (timestamps.size() != 0)
-			return false;
-
-		return true;
-	}
-
-	private void readTimestamps() {
-		File file = Activator.getContext().getDataFile(TIMESTAMPS_FILE_PREFIX + profile.getProfileId().hashCode());
-		timestamps = new Properties();
-		try {
-			InputStream is = new BufferedInputStream(new FileInputStream(file));
-			try {
-				timestamps.load(is);
-			} finally {
-				if (is != null)
-					is.close();
-			}
-		} catch (FileNotFoundException e) {
-			//Ignore
-		} catch (IOException e) {
-			//Ignore
-		}
-	}
-
-	private ProvisioningContext getContext() {
-		ArrayList repoURLs = new ArrayList();
-		for (Iterator iterator = repositoryMap.keySet().iterator(); iterator.hasNext();) {
-			try {
-				repoURLs.add(new URL((String) iterator.next()));
-			} catch (MalformedURLException e) {
-				//ignore
-			}
-		}
-		return new ProvisioningContext((URL[]) repoURLs.toArray(new URL[repoURLs.size()]));
-	}
-
-	private IStatus synchronizeCacheExtensions() {
-		List currentExtensions = new ArrayList();
-		StringBuffer buffer = new StringBuffer();
-		for (Iterator it = repositoryMap.keySet().iterator(); it.hasNext();) {
-			String repositoryId = (String) it.next();
-			try {
-				IArtifactRepository repository = Activator.loadArtifactRepository(new URL(repositoryId));
-
-				if (repository instanceof IFileArtifactRepository) {
-					currentExtensions.add(repositoryId);
-					buffer.append(repositoryId);
-					if (it.hasNext())
-						buffer.append(PIPE);
-				}
-			} catch (ProvisionException e) {
-				// ignore
-			} catch (MalformedURLException e) {
-				// unexpected
-				e.printStackTrace();
-			}
-		}
-		String currentExtensionsProperty = (buffer.length() == 0) ? null : buffer.toString();
-
-		List previousExtensions = new ArrayList();
-		String previousExtensionsProperty = profile.getProperty(CACHE_EXTENSIONS);
-		if (previousExtensionsProperty != null) {
-			StringTokenizer tokenizer = new StringTokenizer(previousExtensionsProperty, PIPE);
-			while (tokenizer.hasMoreTokens()) {
-				previousExtensions.add(tokenizer.nextToken());
-			}
-		}
-
-		if (previousExtensions.size() == currentExtensions.size() && previousExtensions.containsAll(currentExtensions))
-			return Status.OK_STATUS;
-
-		Operand operand = new PropertyOperand(CACHE_EXTENSIONS, previousExtensionsProperty, currentExtensionsProperty);
-
-		return executeOperands(new ProvisioningContext(new URL[0]), new Operand[] {operand}, null);
-	}
-
-	private IInstallableUnit createRootIU(List children) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setId(SUPER_IU);
-		iu.setVersion(new Version("1.0.0.v" + System.currentTimeMillis()));
-		List required = new ArrayList();
-		for (Iterator iter = children.iterator(); iter.hasNext();) {
-			IInstallableUnit next = (IInstallableUnit) iter.next();
-			required.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, next.getId(), null, null, false /* optional */, false, true));
-		}
-		if (required.size() > 0)
-			iu.setRequiredCapabilities((RequiredCapability[]) required.toArray(new RequiredCapability[required.size()]));
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	private ProfileChangeRequest createProfileChangeRequest(ProvisioningContext context) {
-		List toAdd = new ArrayList();
-		List defaults = new ArrayList();
-
-		Collector allIUs = getAllIUsFromRepos();
-
-		//Nothing has changed
-		IInstallableUnit previous = getIU(SUPER_IU);
-		//Empty repo
-
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		if (allIUs.size() == 0) {
-			if (previous == null)
-				return null;
-
-			//Request the removal of the super IU
-			request.removeInstallableUnits(new IInstallableUnit[] {previous});
-			return request;
-		}
-
-		for (Iterator iterator = allIUs.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			defaults.add(createDefaultIU(iu));
-			toAdd.add(createIncludedIU(iu));
-			if (Boolean.valueOf(iu.getProperty(IInstallableUnit.PROP_TYPE_GROUP)).booleanValue())
-				request.setInstallableUnitProfileProperty(iu, IInstallableUnit.PROP_PROFILE_ROOT_IU, Boolean.TRUE.toString());
-		}
-
-		List extra = new ArrayList();
-		extra.addAll(defaults);
-		extra.addAll(toAdd);
-		context.setExtraIUs(extra);
-
-		// only add one IU to the request. it will contain all the other IUs we want to install
-		IInstallableUnit rootIU = createRootIU(toAdd);
-		request.addInstallableUnits(new IInstallableUnit[] {rootIU});
-
-		//Request the removal of the previous super IU
-		if (previous != null)
-			request.removeInstallableUnits(new IInstallableUnit[] {previous});
-		return request;
-	}
-
-	private Collector getAllIUsFromRepos() {
-		Collector allRepos = new Collector();
-		for (Iterator it = repositoryMap.entrySet().iterator(); it.hasNext();) {
-			Entry entry = (Entry) it.next();
-			IMetadataRepository repository = (IMetadataRepository) entry.getValue();
-			repository.query(InstallableUnitQuery.ANY, allRepos, null).iterator();
-		}
-		return allRepos;
-	}
-
-	private IInstallableUnit createIncludedIU(IInstallableUnit iu) {
-		InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription();
-		iud.setId(iu.getId());
-		iud.setVersion(new Version(0, 0, 0, Long.toString(System.currentTimeMillis())));
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), null, null, false, false, true)};
-		iud.setRequiredCapabilities(reqs);
-		return MetadataFactory.createInstallableUnit(iud);
-	}
-
-	private IInstallableUnit createDefaultIU(IInstallableUnit iu) {
-		InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription();
-		iud.setId(iu.getId());
-		iud.setVersion(new Version(0, 0, 0));
-		iud.setCapabilities(new ProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), new Version(0, 0, 0))});
-		return MetadataFactory.createInstallableUnit(iud);
-	}
-
-	private IInstallableUnit getIU(String iuId) {
-		ListCollector collector = new ListCollector();
-		profile.query(new InstallableUnitQuery(iuId), collector, null);
-		if (collector.size() > 0)
-			return (IInstallableUnit) collector.iterator().next();
-		return null;
-	}
-
-	private ProvisioningPlan createProvisioningPlan(ProfileChangeRequest request, ProvisioningContext provisioningContext, IProgressMonitor monitor) {
-		BundleContext context = Activator.getContext();
-		ServiceReference reference = context.getServiceReference(IPlanner.class.getName());
-		IPlanner planner = (IPlanner) context.getService(reference);
-
-		try {
-			return planner.getProvisioningPlan(request, provisioningContext, monitor);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private IStatus executePlan(ProvisioningPlan plan, ProvisioningContext provisioningContext, IProgressMonitor monitor) {
-		Operand[] operands = plan.getOperands();
-		return executeOperands(provisioningContext, operands, monitor);
-	}
-
-	private IStatus executeOperands(ProvisioningContext provisioningContext, Operand[] operands, IProgressMonitor monitor) {
-		BundleContext context = Activator.getContext();
-		ServiceReference reference = context.getServiceReference(IEngine.class.getName());
-		IEngine engine = (IEngine) context.getService(reference);
-		try {
-			PhaseSet phaseSet = new DefaultPhaseSet();
-			IStatus engineResult = engine.perform(profile, phaseSet, operands, provisioningContext, monitor);
-			return engineResult;
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	/*
-	 * Write out the configuration file.
-	 */
-	private void applyConfiguration() {
-		BundleContext context = Activator.getContext();
-		ServiceReference reference = context.getServiceReference(Configurator.class.getName());
-		Configurator configurator = (Configurator) context.getService(reference);
-		try {
-			configurator.applyConfiguration();
-		} catch (IOException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Unexpected failure applying configuration", e)); //$NON-NLS-1$
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java
deleted file mode 100644
index 42d2af9..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.equinox.internal.p2.update.Site;
-
-/*
- * Represents the changes between 2 lists of sites.
- */
-public class SiteDelta {
-
-	private static final String PLATFORM_BASE = "platform:/base/"; //$NON-NLS-1$
-
-	static class Change {
-		Site oldSite;
-		Site newSite;
-
-		Change(Site oldSite, Site newSite) {
-			this.oldSite = oldSite;
-			this.newSite = newSite;
-		}
-	}
-
-	private List added = new ArrayList();
-	private List removed = new ArrayList();
-	private List changed = new ArrayList();
-
-	/*
-	 * Create and return a new delta object based on the two given lists of
-	 * site objects.
-	 */
-	public static SiteDelta create(List oneList, List twoList) {
-		Site[] one = (Site[]) oneList.toArray(new Site[oneList.size()]);
-		Site[] two = (Site[]) twoList.toArray(new Site[twoList.size()]);
-		SiteDelta result = new SiteDelta();
-		for (int i = 0; one == null || i < one.length; i++) {
-			boolean found = false;
-			for (int j = 0; !found && j < two.length; j++) {
-				if (two[j] != null && one[i].getUrl().equals(two[j].getUrl())) {
-					found = true;
-					// TODO
-					if (!one[i].getUrl().equals(PLATFORM_BASE) && !one[i].equals(two[j]))
-						result.changed.add(new Change(one[i], two[j]));
-					one[i] = null;
-					two[j] = null;
-				}
-			}
-			// TODO
-			if (!found && !PLATFORM_BASE.equals(one[i].getUrl()))
-				result.removed.add(one[i]);
-		}
-		for (int j = 0; j < two.length; j++) {
-			// TODO
-			if (two[j] != null && !PLATFORM_BASE.equals(two[j].getUrl()))
-				result.added.add(two[j]);
-		}
-		return result;
-	}
-
-	/*
-	 * Return a list of the sites that were added. May return an empty list
-	 * but never returns null.
-	 */
-	public Site[] added() {
-		return (Site[]) added.toArray(new Site[added.size()]);
-	}
-
-	/*
-	 * Return a list of the sites that were removed. May return an empty list
-	 * but never returns null.
-	 */
-	public Site[] removed() {
-		return (Site[]) removed.toArray(new Site[removed.size()]);
-	}
-
-	/*
-	 * Return a list of the site changes that were changed. May return an empty list
-	 * but never returns null.
-	 */
-	public Change[] changed() {
-		return (Change[]) changed.toArray(new Change[changed.size()]);
-	}
-
-	/*
-	 * Return a boolean value indicating whether or not there are any
-	 * changes in this delta.
-	 */
-	public boolean isEmpty() {
-		return added.size() == 0 && removed.size() == 0 && changed.size() == 0;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java
deleted file mode 100644
index d891811..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import org.eclipse.equinox.internal.p2.update.Site;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-
-/*
- * Internal class contains information about watchers and sites. Used for caching.
- */
-public class SiteInfo {
-	private IMetadataRepository repository;
-	private Site site;
-	private String url;
-
-	public SiteInfo(Site site, IMetadataRepository repository) {
-		super();
-		this.site = site;
-		this.url = site.getUrl();
-		this.repository = repository;
-	}
-
-	public Site getSite() {
-		return site;
-	}
-
-	public String getUrl() {
-		return url;
-	}
-
-	public IMetadataRepository getRepository() {
-		return repository;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return url.hashCode();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (!(obj instanceof SiteInfo))
-			return false;
-		SiteInfo other = (SiteInfo) obj;
-		// this is ok because they are strings and not real URLs
-		return url.equals(other.getUrl());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties
deleted file mode 100644
index 6719e56..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-errorProcessingConfg=Exception while processing configuration.
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/.classpath b/bundles/org.eclipse.equinox.p2.reconciler/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/.cvsignore b/bundles/org.eclipse.equinox.p2.reconciler/.cvsignore
deleted file mode 100644
index e043cc4..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-build.xml
-javaCompiler...args
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/.project b/bundles/org.eclipse.equinox.p2.reconciler/.project
deleted file mode 100644
index 141bd40..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.reconciler.dropins</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ab01093..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,331 +0,0 @@
-#Sat Oct 27 14:19:24 PDT 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 56bcc3e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:07 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.reconciler/META-INF/MANIFEST.MF
deleted file mode 100644
index c234f6a..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,36 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.reconciler.dropins;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.reconciler.dropins.Activator
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.update,
- org.eclipse.equinox.internal.provisional.configurator,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.director,
- org.eclipse.equinox.internal.provisional.p2.directorywatcher,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.core.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository,
- org.eclipse.osgi.service.datalocation;version="1.0.0",
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.packageadmin;version="1.2.0",
- org.osgi.util.tracker;version="1.3.3",
- org.xml.sax
-Require-Bundle: org.eclipse.equinox.common,
- org.eclipse.equinox.p2.touchpoint.eclipse;bundle-version="0.1.0"
-Export-Package: org.eclipse.equinox.internal.p2.extensionlocation;x-internal:=true,
- org.eclipse.equinox.internal.p2.reconciler.dropins;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/about.html b/bundles/org.eclipse.equinox.p2.reconciler/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/build.properties b/bundles/org.eclipse.equinox.p2.reconciler/build.properties
deleted file mode 100644
index eb63c6e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html,\
-               plugin.xml
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/plugin.properties b/bundles/org.eclipse.equinox.p2.reconciler/plugin.properties
deleted file mode 100644
index 53dae02..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Dropin Reconciler Plug-in
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/plugin.xml b/bundles/org.eclipse.equinox.p2.reconciler/plugin.xml
deleted file mode 100644
index 81c2c8e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-      <extension
-      id="extensionRepository"
-         point="org.eclipse.equinox.p2.metadata.repository.metadataRepositories">
-      <factory
-            class="org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepositoryFactory">
-      </factory>
-      <filter
-            suffix="eclipse">
-      </filter>
-   </extension>
-      <extension
-            point="org.eclipse.equinox.p2.artifact.repository.artifactRepositories">
-         <factory
-               class="org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationArtifactRepositoryFactory">
-         </factory>
-         <filter
-               suffix="eclipse">
-         </filter>
-      </extension>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java
deleted file mode 100644
index 6a73117..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/BundlePoolFilteredListener.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.Set;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.Activator;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.osgi.framework.BundleContext;
-
-public class BundlePoolFilteredListener extends DirectoryChangeListener {
-
-	private DirectoryChangeListener delegate;
-	private Set bundlePoolFiles = new HashSet();
-
-	public BundlePoolFilteredListener(BundleContext context, DirectoryChangeListener listener) {
-		delegate = listener;
-		IFileArtifactRepository bundlePool = Util.getBundlePoolRepository(Activator.getCurrentProfile(context));
-		IArtifactKey[] keys = bundlePool.getArtifactKeys();
-		for (int i = 0; i < keys.length; i++) {
-			File artifactFile = bundlePool.getArtifactFile(keys[i]);
-			if (artifactFile != null)
-				bundlePoolFiles.add(artifactFile);
-		}
-	}
-
-	public boolean added(File file) {
-		return delegate.added(file);
-	}
-
-	public boolean changed(File file) {
-		return delegate.changed(file);
-	}
-
-	public Long getSeenFile(File file) {
-		return delegate.getSeenFile(file);
-	}
-
-	public boolean isInterested(File file) {
-		if (bundlePoolFiles.contains(file))
-			return false;
-
-		return delegate.isInterested(file);
-	}
-
-	public boolean removed(File file) {
-		return delegate.removed(file);
-	}
-
-	public void startPoll() {
-		delegate.startPoll();
-	}
-
-	public void stopPoll() {
-		delegate.stopPoll();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
deleted file mode 100644
index cb74293..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.SimpleArtifactRepositoryFactory;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.osgi.framework.BundleContext;
-
-public class ExtensionLocationArtifactRepository extends AbstractRepository implements IFileArtifactRepository {
-
-	private static final String POOLED = ".pooled"; //$NON-NLS-1$
-	//private static final String PROFILE_EXTENSION = "profile.extension"; //$NON-NLS-1$
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FILE = "file"; //$NON-NLS-1$
-	private final IFileArtifactRepository artifactRepository;
-
-	public ExtensionLocationArtifactRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		super("Extension: " + location.toExternalForm(), null, null, location, null, null); //$NON-NLS-1$
-
-		File base = getBaseDirectory(location);
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		BundleContext context = Activator.getContext();
-		String stateDirName = Integer.toString(location.toExternalForm().hashCode());
-		File bundleData = context.getDataFile(null);
-		File stateDir = new File(bundleData, stateDirName);
-		URL localRepositoryURL;
-		try {
-			localRepositoryURL = stateDir.toURL();
-		} catch (MalformedURLException e) {
-			// unexpected
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, "Failed to create local repository", e)); //$NON-NLS-1$
-		}
-
-		artifactRepository = (IFileArtifactRepository) initializeArtifactRepository(localRepositoryURL, "extension location implementation - " + location.toExternalForm()); //$NON-NLS-1$
-
-		DirectoryWatcher watcher = new DirectoryWatcher(new File[] {plugins, features});
-		DirectoryChangeListener listener = new RepositoryListener(context, null, artifactRepository);
-		if (location.getPath().endsWith(POOLED))
-			listener = new BundlePoolFilteredListener(context, listener);
-
-		watcher.addListener(listener);
-		watcher.poll();
-	}
-
-	private IArtifactRepository initializeArtifactRepository(URL stateDirURL, String repositoryName) {
-		SimpleArtifactRepositoryFactory factory = new SimpleArtifactRepositoryFactory();
-		try {
-			return factory.load(stateDirURL, null);
-
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		IArtifactRepository repository = factory.create(stateDirURL, repositoryName, null);
-		//repository.setProperty(PROFILE_EXTENSION, "true");
-		return repository;
-	}
-
-	public static void validate(URL location, IProgressMonitor monitor) throws ProvisionException {
-		getBaseDirectory(location);
-	}
-
-	public static File getBaseDirectory(URL url) throws ProvisionException {
-		if (!FILE.equals(url.getProtocol()))
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location must use file protocol", null));
-
-		String path = url.getPath();
-		File base = new File(path);
-		if (path.endsWith(POOLED)) {
-			base = base.getParentFile();
-		}
-
-		if (!base.isDirectory())
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location not a directory", null));
-
-		if (isBaseDirectory(base))
-			return base;
-
-		File eclipseBase = new File(base, ECLIPSE);
-		if (isBaseDirectory(eclipseBase))
-			return eclipseBase;
-
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location is not an extension", null));
-	}
-
-	private static boolean isBaseDirectory(File base) {
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		return plugins.isDirectory() || features.isDirectory();
-	}
-
-	public void addDescriptor(IArtifactDescriptor descriptor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addDescriptors(IArtifactDescriptor[] descriptors) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeAll() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeDescriptor(IArtifactDescriptor descriptor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeDescriptor(IArtifactKey key) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean contains(IArtifactDescriptor descriptor) {
-		return artifactRepository.contains(descriptor);
-	}
-
-	public boolean contains(IArtifactKey key) {
-		return artifactRepository.contains(key);
-	}
-
-	public IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		return artifactRepository.getArtifact(descriptor, destination, monitor);
-	}
-
-	public IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key) {
-		return artifactRepository.getArtifactDescriptors(key);
-	}
-
-	public IArtifactKey[] getArtifactKeys() {
-		return artifactRepository.getArtifactKeys();
-	}
-
-	public IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor) {
-		return artifactRepository.getArtifacts(requests, monitor);
-	}
-
-	public OutputStream getOutputStream(IArtifactDescriptor descriptor) throws ProvisionException {
-		return artifactRepository.getOutputStream(descriptor);
-	}
-
-	public File getArtifactFile(IArtifactKey key) {
-		return artifactRepository.getArtifactFile(key);
-	}
-
-	public File getArtifactFile(IArtifactDescriptor descriptor) {
-		return artifactRepository.getArtifactFile(descriptor);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
deleted file mode 100644
index 83cb924..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepositoryFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.IArtifactRepositoryFactory;
-
-public class ExtensionLocationArtifactRepositoryFactory implements IArtifactRepositoryFactory {
-
-	public IArtifactRepository create(URL location, String name, String type) throws ProvisionException {
-		return null;
-	}
-
-	public IArtifactRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		return new ExtensionLocationArtifactRepository(location, monitor);
-	}
-
-	public IStatus validate(URL location, IProgressMonitor monitor) {
-		try {
-			ExtensionLocationArtifactRepository.validate(location, monitor);
-		} catch (ProvisionException e) {
-			return e.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
deleted file mode 100644
index 8e5b53e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.Activator;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.SimpleMetadataRepositoryFactory;
-import org.osgi.framework.BundleContext;
-
-public class ExtensionLocationMetadataRepository extends AbstractRepository implements IMetadataRepository {
-
-	private static final String POOLED = ".pooled"; //$NON-NLS-1$
-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$
-	private static final String FEATURES = "features"; //$NON-NLS-1$
-	private static final String PLUGINS = "plugins"; //$NON-NLS-1$
-	private static final String FILE = "file"; //$NON-NLS-1$
-	private final IMetadataRepository metadataRepository;
-
-	public ExtensionLocationMetadataRepository(URL location, IProgressMonitor monitor) throws ProvisionException {
-		super("Extension: " + location.toExternalForm(), null, null, location, null, null); //$NON-NLS-1$
-
-		File base = getBaseDirectory(location);
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		BundleContext context = Activator.getContext();
-		String stateDirName = Integer.toString(location.toExternalForm().hashCode());
-		File bundleData = context.getDataFile(null);
-		File stateDir = new File(bundleData, stateDirName);
-		URL localRepositoryURL;
-		try {
-			localRepositoryURL = stateDir.toURL();
-		} catch (MalformedURLException e) {
-			// unexpected
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, "Failed to create local repository", e)); //$NON-NLS-1$
-		}
-
-		metadataRepository = initializeMetadataRepository(localRepositoryURL, "extension location implementation - " + location.toExternalForm()); //$NON-NLS-1$
-
-		DirectoryWatcher watcher = new DirectoryWatcher(new File[] {plugins, features});
-		DirectoryChangeListener listener = new RepositoryListener(context, metadataRepository, null);
-		if (location.getPath().endsWith(POOLED))
-			listener = new BundlePoolFilteredListener(context, listener);
-
-		watcher.addListener(listener);
-		watcher.poll();
-	}
-
-	private IMetadataRepository initializeMetadataRepository(URL stateDirURL, String repositoryName) {
-		SimpleMetadataRepositoryFactory factory = new SimpleMetadataRepositoryFactory();
-		try {
-			return factory.load(stateDirURL, null);
-		} catch (ProvisionException e) {
-			//fall through and create a new repository
-		}
-		return factory.create(stateDirURL, repositoryName, null);
-	}
-
-	public void addInstallableUnits(IInstallableUnit[] installableUnits) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeAll() {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeInstallableUnits(Query query, IProgressMonitor monitor) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		return metadataRepository.query(query, collector, monitor);
-	}
-
-	public static void validate(URL location, IProgressMonitor monitor) throws ProvisionException {
-		getBaseDirectory(location);
-	}
-
-	public static File getBaseDirectory(URL url) throws ProvisionException {
-		if (!FILE.equals(url.getProtocol()))
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location must use file protocol", null));
-
-		String path = url.getPath();
-		File base = new File(path);
-		if (path.endsWith(POOLED)) {
-			base = base.getParentFile();
-		}
-
-		if (!base.isDirectory())
-			throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location not a directory", null));
-
-		if (isBaseDirectory(base))
-			return base;
-
-		File eclipseBase = new File(base, ECLIPSE);
-		if (isBaseDirectory(eclipseBase))
-			return eclipseBase;
-
-		throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, "location is not an extension", null));
-	}
-
-	private static boolean isBaseDirectory(File base) {
-		File plugins = new File(base, PLUGINS);
-		File features = new File(base, FEATURES);
-
-		return plugins.isDirectory() || features.isDirectory();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.spi.p2.core.repository.AbstractRepository#getProperties()
-	 */
-	public Map getProperties() {
-		if (metadataRepository == null)
-			return super.getProperties();
-		else
-			return metadataRepository.getProperties();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
deleted file mode 100644
index 31da09c..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepositoryFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.eclipse.equinox.internal.p2.extensionlocation;
-
-import java.net.URL;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.IMetadataRepositoryFactory;
-
-public class ExtensionLocationMetadataRepositoryFactory implements IMetadataRepositoryFactory {
-
-	public IMetadataRepository create(URL location, String name, String type) throws ProvisionException {
-		return null;
-	}
-
-	public IMetadataRepository load(URL location, IProgressMonitor monitor) throws ProvisionException {
-		return new ExtensionLocationMetadataRepository(location, monitor);
-	}
-
-	public IStatus validate(URL location, IProgressMonitor monitor) {
-		try {
-			ExtensionLocationMetadataRepository.validate(location, monitor);
-		} catch (ProvisionException e) {
-			return e.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java
deleted file mode 100644
index 6e206f5..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM Corporation - initial implementation and ideas 
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-public class Activator implements BundleActivator {
-
-	public static final String ID = "org.eclipse.equinox.p2.reconciler.dropins"; //$NON-NLS-1$
-	private static final String DROPINS_DIRECTORY = "org.eclipse.equinox.p2.reconciler.dropins.directory"; //$NON-NLS-1$
-	private static final String OSGI_CONFIGURATION_AREA = "osgi.configuration.area"; //$NON-NLS-1$
-	private static final String DROPINS = "dropins"; //$NON-NLS-1$
-	//	private static final String PROFILE_EXTENSION = "profile.extension"; //$NON-NLS-1$
-	private static PackageAdmin packageAdmin;
-	private static BundleContext bundleContext;
-	private ServiceReference packageAdminRef;
-	private List watchers = new ArrayList();
-	private static IMetadataRepository[] dropinRepositories;
-	private static IMetadataRepository[] configurationRepositories;
-	private static IMetadataRepository[] linksRepositories;
-	private static IMetadataRepository eclipseProductRepository;
-
-	/**
-	 * Helper method to load a metadata repository from the specified URL.
-	 * This method never returns <code>null</code>.
-	 * 
-	 * @throws IllegalStateException
-	 * @throws ProvisionException 
-	 */
-	public static IMetadataRepository loadMetadataRepository(URL repoURL) throws ProvisionException {
-		BundleContext context = getContext();
-		ServiceReference reference = context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		IMetadataRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IMetadataRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("MetadataRepositoryManager not registered.");
-		try {
-			return manager.loadRepository(repoURL, null);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	/**
-	 * Helper method to load an artifact repository from the given URL.
-	 * This method never returns <code>null</code>.
-	 * 
-	 * @throws IllegalStateException
-	 * @throws ProvisionException
-	 */
-	public static IArtifactRepository loadArtifactRepository(URL repoURL) throws ProvisionException {
-		BundleContext context = getContext();
-		ServiceReference reference = context.getServiceReference(IArtifactRepositoryManager.class.getName());
-		IArtifactRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IArtifactRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("ArtifactRepositoryManager not registered.");
-		try {
-			return manager.loadRepository(repoURL, null);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		packageAdminRef = context.getServiceReference(PackageAdmin.class.getName());
-		setPackageAdmin((PackageAdmin) context.getService(packageAdminRef));
-		bundleContext = context;
-
-		if (!startEarly("org.eclipse.equinox.p2.exemplarysetup")) //$NON-NLS-1$
-			return;
-		if (!startEarly("org.eclipse.equinox.simpleconfigurator.manipulator")) //$NON-NLS-1$
-			return;
-		if (!startEarly("org.eclipse.equinox.frameworkadmin.equinox")) //$NON-NLS-1$
-			return;
-		IProfile profile = getCurrentProfile(context);
-		if (profile == null)
-			return;
-
-		// create a watcher for the main plugins and features directories
-		watchEclipseProduct();
-		// create the watcher for the "drop-ins" folder
-		watchDropins(profile);
-		// keep an eye on the platform.xml
-		if (false)
-			watchConfiguration();
-
-		synchronize(new ArrayList(0), null);
-
-		// we should probably be  holding on to these repos by URL
-		// see Bug 223422
-		// for now explicitly nulling out these repos to allow GC to occur
-		dropinRepositories = null;
-		configurationRepositories = null;
-		linksRepositories = null;
-		eclipseProductRepository = null;
-	}
-
-	private void watchEclipseProduct() {
-
-		URL baseURL;
-		try {
-			baseURL = new URL(bundleContext.getProperty(OSGI_CONFIGURATION_AREA));
-			URL pooledURL = new URL(baseURL, "../.pooled"); //$NON-NLS-1$
-			loadArtifactRepository(pooledURL);
-			eclipseProductRepository = loadMetadataRepository(pooledURL);
-		} catch (MalformedURLException e) {
-			// TODO proper logging
-			e.printStackTrace();
-		} catch (ProvisionException e) {
-			// TODO proper logging
-			e.printStackTrace();
-		}
-
-	}
-
-	private boolean startEarly(String bundleName) throws BundleException {
-		Bundle bundle = getBundle(bundleName);
-		if (bundle == null)
-			return false;
-		bundle.start(Bundle.START_TRANSIENT);
-		return true;
-	}
-
-	/*
-	 * Synchronize the profile.
-	 */
-	public static synchronized void synchronize(List extraRepositories, IProgressMonitor monitor) {
-		IProfile profile = getCurrentProfile(bundleContext);
-		if (profile == null)
-			return;
-		// create the profile synchronizer on all available repositories
-		Set repositories = new HashSet(extraRepositories);
-		if (dropinRepositories != null)
-			repositories.addAll(Arrays.asList(dropinRepositories));
-
-		if (configurationRepositories != null)
-			repositories.addAll(Arrays.asList(configurationRepositories));
-
-		if (linksRepositories != null)
-			repositories.addAll(Arrays.asList(linksRepositories));
-
-		if (eclipseProductRepository != null)
-			repositories.add(eclipseProductRepository);
-
-		ProfileSynchronizer synchronizer = new ProfileSynchronizer(profile, repositories);
-		IStatus result = synchronizer.synchronize(monitor);
-		if (!result.isOK())
-			LogHelper.log(result);
-
-	}
-
-	/*
-	 * Watch the platform.xml file.
-	 */
-	private void watchConfiguration() {
-		File configFile = new File("configuration/org.eclipse.update/platform.xml"); //$NON-NLS-1$
-		DirectoryWatcher watcher = new DirectoryWatcher(configFile.getParentFile());
-		try {
-			PlatformXmlListener listener = new PlatformXmlListener(configFile);
-			watcher.addListener(listener);
-			watcher.poll();
-			List repositories = listener.getMetadataRepositories();
-			if (repositories != null)
-				configurationRepositories = (IMetadataRepository[]) repositories.toArray(new IMetadataRepository[0]);
-		} catch (ProvisionException e) {
-			// TODO proper logging
-			e.printStackTrace();
-		}
-	}
-
-	/*
-	 * Create a new directory watcher with a repository listener on the drop-ins folder. 
-	 */
-	private void watchDropins(IProfile profile) {
-		List directories = new ArrayList();
-		File dropinsDirectory = getDropinsDirectory();
-		if (dropinsDirectory != null)
-			directories.add(dropinsDirectory);
-		File linksDirectory = getLinksDirectory();
-		if (linksDirectory != null)
-			directories.add(linksDirectory);
-		if (directories.isEmpty())
-			return;
-
-		DropinsRepositoryListener listener = new DropinsRepositoryListener(Activator.getContext(), "dropins:" + dropinsDirectory.getAbsolutePath());
-		//		listener.getArtifactRepository().setProperty(PROFILE_EXTENSION, profile.getProfileId());
-		DirectoryWatcher watcher = new DirectoryWatcher((File[]) directories.toArray(new File[directories.size()]));
-		watcher.addListener(listener);
-		watcher.poll();
-
-		dropinRepositories = listener.getMetadataRepositories();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		for (Iterator iter = watchers.iterator(); iter.hasNext();) {
-			DirectoryWatcher watcher = (DirectoryWatcher) iter.next();
-			watcher.stop();
-		}
-		bundleContext = null;
-		setPackageAdmin(null);
-		context.ungetService(packageAdminRef);
-	}
-
-	/*
-	 * Return the bundle context for this bundle.
-	 */
-	public static BundleContext getContext() {
-		return bundleContext;
-	}
-
-	private static File getLinksDirectory() {
-		try {
-			//TODO: a proper install area would be better. osgi.install.area is relative to the framework jar
-			URL baseURL = new URL(bundleContext.getProperty(OSGI_CONFIGURATION_AREA));
-			URL folderURL = new URL(baseURL, "../links"); //$NON-NLS-1$
-			return new File(folderURL.getPath());
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	public static File getDropinsDirectory() {
-		String watchedDirectoryProperty = bundleContext.getProperty(DROPINS_DIRECTORY);
-		if (watchedDirectoryProperty != null) {
-			File folder = new File(watchedDirectoryProperty);
-			return folder;
-		}
-		try {
-			//TODO: a proper install area would be better. osgi.install.area is relative to the framework jar
-			URL baseURL = new URL(bundleContext.getProperty(OSGI_CONFIGURATION_AREA));
-			URL folderURL = new URL(baseURL, "../" + DROPINS); //$NON-NLS-1$
-			File folder = new File(folderURL.getPath());
-			return folder;
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	// Disabled for now
-
-	//	private void removeUnwatchedRepositories(BundleContext context, Profile profile, File watchedFolder) {
-	//		removeUnwatchedMetadataRepositories(context, profile, watchedFolder);
-	//		removeUnwatchedArtifactRepositories(context, profile, watchedFolder);
-	//	}
-	//
-	//	private void removeUnwatchedArtifactRepositories(BundleContext context, Profile profile, File watchedFolder) {
-	//		ServiceReference reference = context.getServiceReference(IArtifactRepositoryManager.class.getName());
-	//		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) context.getService(reference);
-	//		try {
-	//			IArtifactRepository[] repositories = manager.getKnownRepositories();
-	//			for (int i = 0; i < repositories.length; i++) {
-	//				Map properties = repositories[i].getProperties();
-	//				String profileId = (String) properties.get("profileId");
-	//				String folderName = (String) properties.get("folder");
-	//
-	//				if (profile.getProfileId().equals(profileId) && !watchedFolder.getAbsolutePath().equals(folderName)) {
-	//					manager.removeRepository(repositories[i]);
-	//				}
-	//			}
-	//		} finally {
-	//			context.ungetService(reference);
-	//		}
-	//	}
-	//
-	//	private void removeUnwatchedMetadataRepositories(BundleContext context, Profile profile, File watchedFolder) {
-	//		ServiceReference reference = context.getServiceReference(IMetadataRepositoryManager.class.getName());
-	//		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) context.getService(reference);
-	//		try {
-	//			IMetadataRepository[] repositories = manager.getKnownRepositories();
-	//			for (int i = 0; i < repositories.length; i++) {
-	//				Map properties = repositories[i].getProperties();
-	//				String profileId = (String) properties.get("profileId");
-	//				if (profile.getProfileId().equals(profileId)) {
-	//					String folderName = (String) properties.get("folder");
-	//					if ((folderName != null) && !watchedFolder.getAbsolutePath().equals(folderName)) {
-	//						manager.removeRepository(repositories[i].getLocation());
-	//					}
-	//				}
-	//			}
-	//		} finally {
-	//			context.ungetService(reference);
-	//		}
-	//	}
-
-	public static IProfile getCurrentProfile(BundleContext context) {
-		ServiceReference reference = context.getServiceReference(IProfileRegistry.class.getName());
-		if (reference == null)
-			return null;
-		IProfileRegistry profileRegistry = (IProfileRegistry) context.getService(reference);
-		try {
-			return profileRegistry.getProfile(IProfileRegistry.SELF);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private static synchronized void setPackageAdmin(PackageAdmin service) {
-		packageAdmin = service;
-	}
-
-	static synchronized Bundle getBundle(String symbolicName) {
-		if (packageAdmin == null)
-			return null;
-
-		Bundle[] bundles = packageAdmin.getBundles(symbolicName, null);
-		if (bundles == null)
-			return null;
-		//Return the first bundle that is not installed or uninstalled
-		for (int i = 0; i < bundles.length; i++) {
-			if ((bundles[i].getState() & (Bundle.INSTALLED | Bundle.UNINSTALLED)) == 0) {
-				return bundles[i];
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java
deleted file mode 100644
index c2f9c6e..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java
+++ /dev/null
@@ -1,248 +0,0 @@
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-public class DropinsRepositoryListener extends RepositoryListener {
-
-	private static final String JAR = ".jar"; //$NON-NLS-1$
-	private static final String LINK = ".link"; //$NON-NLS-1$
-	private static final String ZIP = ".zip"; //$NON-NLS-1$
-	private static final String LINKS_PATH = "path"; //$NON-NLS-1$
-	private static final String DROPIN_ARTIFACT_REPOSITORIES = "dropin.artifactRepositories"; //$NON-NLS-1$
-	private static final String DROPIN_METADATA_REPOSITORIES = "dropin.metadataRepositories"; //$NON-NLS-1$
-	private static final String PIPE = "|"; //$NON-NLS-1$
-	private BundleContext context;
-	private List metadataRepositories = new ArrayList();
-	private List artifactRepositories = new ArrayList();
-
-	public DropinsRepositoryListener(BundleContext context, String repositoryName) {
-		super(context, repositoryName);
-		this.context = context;
-	}
-
-	public boolean isInterested(File file) {
-		if (file.isDirectory())
-			return true;
-
-		String name = file.getName();
-		return name.endsWith(JAR) || name.endsWith(ZIP) || name.endsWith(LINK);
-	}
-
-	public boolean added(File file) {
-		if (super.added(file))
-			return true;
-
-		URL repositoryURL = createRepositoryURL(file);
-		if (repositoryURL != null) {
-			loadMetadataRepository(repositoryURL);
-			loadArtifactRepository(repositoryURL);
-		}
-		return true;
-	}
-
-	public boolean changed(File file) {
-		if (super.changed(file))
-			return true;
-
-		URL repositoryURL = createRepositoryURL(file);
-		if (repositoryURL != null) {
-			loadMetadataRepository(repositoryURL);
-			loadArtifactRepository(repositoryURL);
-		}
-		return true;
-	}
-
-	private String getLinkPath(File file) {
-		Properties links = new Properties();
-		try {
-			InputStream input = new BufferedInputStream(new FileInputStream(file));
-			try {
-				links.load(input);
-			} finally {
-				input.close();
-			}
-		} catch (IOException e) {
-			// ignore
-		}
-		String path = links.getProperty(LINKS_PATH);
-		if (path == null) {
-			// log
-			return null;
-		}
-
-		// parse out link information
-		if (path.startsWith("r ")) { //$NON-NLS-1$
-			path = path.substring(2).trim();
-		} else if (path.startsWith("rw ")) { //$NON-NLS-1$
-			path = path.substring(3).trim();
-		} else {
-			path = path.trim();
-		}
-		return path;
-	}
-
-	private URL createRepositoryURL(File file) {
-		try {
-			if (file.getName().endsWith(LINK)) {
-				File linkFile = file;
-				String path = getLinkPath(linkFile);
-				// todo log
-				if (path == null)
-					return null;
-				file = new File(path);
-				if (!file.isAbsolute()) {
-					// link support is relative to the install root
-					// For now we will use the parent of dropins folder
-					file = new File(Activator.getDropinsDirectory().getParentFile(), path);
-				}
-			}
-
-			File canonicalFile = file.getCanonicalFile();
-			URL repositoryURL = canonicalFile.toURL();
-			if (canonicalFile.getName().endsWith(ZIP) || canonicalFile.getName().endsWith(JAR)) {
-				repositoryURL = new URL("jar:" + repositoryURL.toString() + "!/"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return repositoryURL;
-		} catch (IOException e) {
-			// todo log			
-		}
-		return null;
-	}
-
-	public void loadMetadataRepository(URL repoURL) {
-		try {
-			metadataRepositories.add(Activator.loadMetadataRepository(repoURL));
-		} catch (ProvisionException e) {
-			//TODO: log
-			// ignore
-		}
-	}
-
-	public void loadArtifactRepository(URL repoURL) {
-		try {
-			artifactRepositories.add(Activator.loadArtifactRepository(repoURL));
-		} catch (ProvisionException e) {
-			//TODO: log
-			// ignore
-		}
-	}
-
-	public void stopPoll() {
-
-		synchronizeDropinMetadataRepositories();
-		synchronizeDropinArtifactRepositories();
-
-		super.stopPoll();
-	}
-
-	private void synchronizeDropinMetadataRepositories() {
-		List currentRepositories = new ArrayList();
-		for (Iterator it = metadataRepositories.iterator(); it.hasNext();) {
-			IMetadataRepository repository = (IMetadataRepository) it.next();
-			String urlString = repository.getLocation().toExternalForm();
-			currentRepositories.add(urlString);
-		}
-		List previousRepositories = getListRepositoryProperty(getMetadataRepository(), DROPIN_METADATA_REPOSITORIES);
-		for (Iterator iterator = previousRepositories.iterator(); iterator.hasNext();) {
-			String repository = (String) iterator.next();
-			if (!currentRepositories.contains(repository))
-				removeMetadataRepository(repository);
-		}
-		setListRepositoryProperty(getMetadataRepository(), DROPIN_METADATA_REPOSITORIES, currentRepositories);
-	}
-
-	private void removeMetadataRepository(String urlString) {
-		ServiceReference reference = context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		IMetadataRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IMetadataRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("MetadataRepositoryManager not registered.");
-
-		try {
-			manager.removeRepository(new URL(urlString));
-		} catch (MalformedURLException e) {
-			// TODO: log
-			// ignore
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private void synchronizeDropinArtifactRepositories() {
-		List currentRepositories = new ArrayList();
-		for (Iterator it = artifactRepositories.iterator(); it.hasNext();) {
-			IArtifactRepository repository = (IArtifactRepository) it.next();
-			String urlString = repository.getLocation().toExternalForm();
-			currentRepositories.add(urlString);
-		}
-		List previousRepositories = getListRepositoryProperty(getArtifactRepository(), DROPIN_ARTIFACT_REPOSITORIES);
-		for (Iterator iterator = previousRepositories.iterator(); iterator.hasNext();) {
-			String repository = (String) iterator.next();
-			if (!currentRepositories.contains(repository))
-				removeArtifactRepository(repository);
-		}
-		setListRepositoryProperty(getArtifactRepository(), DROPIN_ARTIFACT_REPOSITORIES, currentRepositories);
-	}
-
-	public void removeArtifactRepository(String urlString) {
-		ServiceReference reference = context.getServiceReference(IArtifactRepositoryManager.class.getName());
-		IArtifactRepositoryManager manager = null;
-		if (reference != null)
-			manager = (IArtifactRepositoryManager) context.getService(reference);
-		if (manager == null)
-			throw new IllegalStateException("ArtifactRepositoryManager not registered.");
-
-		try {
-			manager.removeRepository(new URL(urlString));
-		} catch (MalformedURLException e) {
-			//TODO: log
-			// ignore
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private List getListRepositoryProperty(IRepository repository, String key) {
-		List listProperty = new ArrayList();
-		String dropinRepositories = (String) repository.getProperties().get(key);
-		if (dropinRepositories != null) {
-			StringTokenizer tokenizer = new StringTokenizer(dropinRepositories, PIPE); //$NON-NLS-1$			
-			while (tokenizer.hasMoreTokens()) {
-				listProperty.add(tokenizer.nextToken());
-			}
-		}
-		return listProperty;
-	}
-
-	private void setListRepositoryProperty(IRepository repository, String key, List listProperty) {
-		StringBuffer buffer = new StringBuffer();
-		for (Iterator it = listProperty.iterator(); it.hasNext();) {
-			String repositoryString = (String) it.next();
-			buffer.append(repositoryString);
-			if (it.hasNext())
-				buffer.append(PIPE);
-		}
-		String value = (buffer.length() == 0) ? null : buffer.toString();
-		repository.setProperty(key, value);
-	}
-
-	public IMetadataRepository[] getMetadataRepositories() {
-		List result = new ArrayList(metadataRepositories);
-		result.add(getMetadataRepository());
-		return (IMetadataRepository[]) result.toArray(new IMetadataRepository[0]);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java
deleted file mode 100644
index ab0a16b..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/Messages.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @since 1.0
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.reconciler.dropins.messages"; //$NON-NLS-1$
-	public static String errorProcessingConfg;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-		// prevent instantiation
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java
deleted file mode 100644
index 6359520..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.p2.reconciler.dropins.SiteDelta.Change;
-import org.eclipse.equinox.internal.p2.update.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-
-/**
- * @since 1.0
- */
-public class PlatformXmlListener extends DirectoryChangeListener {
-
-	private static final String PLATFORM_XML = "platform.xml"; //$NON-NLS-1$
-	private boolean changed = false;
-	private Map sites = new HashMap();
-	private File root;
-	private long lastModified = -1l;
-
-	public PlatformXmlListener(File file) throws ProvisionException {
-		super();
-		if (!PLATFORM_XML.equals(file.getName()))
-			throw new IllegalArgumentException();
-		this.root = file;
-		// don't need to set the "sites" variable since we will treat
-		// everything as "added" in the delta if it is null
-		process();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#added(java.io.File)
-	 */
-	public boolean added(File file) {
-		changed = changed || PLATFORM_XML.equals(file.getName());
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#changed(java.io.File)
-	 */
-	public boolean changed(File file) {
-		changed = changed || PLATFORM_XML.equals(file.getName());
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#getSeenFile(java.io.File)
-	 */
-	public Long getSeenFile(File file) {
-		return new Long(0);
-	}
-
-	/*
-	 * Parse the platform.xml file and return the list of sites.
-	 */
-	private List parseConfiguration() throws ProvisionException {
-		Configuration cfg = ConfigurationParser.parse(root, (URL) null);
-		return cfg == null ? new ArrayList(0) : cfg.getSites();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener#isInterested(java.io.File)
-	 */
-	public boolean isInterested(File file) {
-		return file.getName().equals(PLATFORM_XML) && lastModified != file.lastModified();
-	}
-
-	private List getSites() {
-		List result = new ArrayList();
-		for (Iterator iter = sites.values().iterator(); iter.hasNext();) {
-			SiteInfo info = (SiteInfo) iter.next();
-			result.add(info.getSite());
-		}
-		return result;
-	}
-
-	/*
-	 * This is where we reconcile the platform.xml and bundles.info.
-	 */
-	private void process() throws ProvisionException {
-		lastModified = root.lastModified();
-		SiteDelta delta = SiteDelta.create(getSites(), parseConfiguration());
-		if (delta.isEmpty())
-			return;
-		added(delta.added());
-		removed(delta.removed());
-		changed(delta.changed());
-		//Activator.synchronize(getMetadataRepositories(), null); // TODO proper progress monitoring?
-	}
-
-	// iterate over the site listeners and collect the metadata repositories
-	public List getMetadataRepositories() {
-		List result = new ArrayList();
-		for (Iterator iter = sites.values().iterator(); iter.hasNext();) {
-			SiteInfo info = (SiteInfo) iter.next();
-			result.add(info.getRepository());
-		}
-		return result;
-	}
-
-	/*
-	 * The given list of sites has been added so add directory
-	 * watchers for each of them.
-	 */
-	private void added(Site[] added) throws ProvisionException {
-		if (added == null || added.length == 0)
-			return;
-		for (int i = 0; i < added.length; i++) {
-			Site site = added[i];
-			// TODO skip for now
-			if ("platform:/base/".equals(site.getUrl())) //$NON-NLS-1$
-				continue;
-			try {
-				URL url = new URL(site.getUrl());
-				try {
-					url = FileLocator.resolve(url);
-				} catch (IOException e) {
-					throw new ProvisionException(Messages.errorProcessingConfg, e);
-				}
-				IMetadataRepository repo = Activator.loadMetadataRepository(url);
-				if (repo == null) {
-					// todo
-				} else
-					sites.put(site.getUrl(), new SiteInfo(site, repo));
-			} catch (MalformedURLException e) {
-				throw new ProvisionException(Messages.errorProcessingConfg, e);
-			}
-		}
-	}
-
-	/*
-	 * The given list of sites has been removed so act accordingly.
-	 * Remove all the registered directory watchers.
-	 */
-	private void removed(Site[] removed) {
-		if (removed == null || removed.length == 0)
-			return;
-		for (int i = 0; i < removed.length; i++) {
-			Site site = removed[i];
-			SiteInfo info = (SiteInfo) sites.get(site.getUrl());
-			// TODO I think this should be an error?
-			if (info == null) {
-				// 
-			}
-
-			sites.remove(site.getUrl());
-		}
-	}
-
-	/*
-	 * The given set of sites has had their contents changed.
-	 */
-	private void changed(Change[] changes) throws ProvisionException {
-		for (int i = 0; i < changes.length; i++) {
-			Change change = changes[i];
-			if (majorChange(change)) {
-				removed(new Site[] {change.oldSite});
-				added(new Site[] {change.newSite});
-			}
-		}
-	}
-
-	/*
-	 * Return true if the differences between the 2 sites should cause
-	 * a new listener to be created.
-	 */
-	private boolean majorChange(Change change) {
-		Site one = change.oldSite;
-		Site two = change.newSite;
-		if (!Utils.equals(one.getPolicy(), two.getPolicy()))
-			return true;
-		return !Utils.equals(one.getList(), two.getList());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#removed(java.io.File)
-	 */
-	public boolean removed(File file) {
-		changed = changed || PLATFORM_XML.equals(file.getName());
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#startPoll()
-	 */
-	public void startPoll() {
-		changed = false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.IDirectoryChangeListener#stopPoll()
-	 */
-	public void stopPoll() {
-		if (changed)
-			try {
-				process();
-			} catch (ProvisionException e) {
-				e.printStackTrace();
-			}
-		changed = false;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
deleted file mode 100644
index 228b517..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM Corporation - initial implementation and ideas 
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.configurator.Configurator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.osgi.framework.*;
-
-/**
- * Synchronizes a profile with a set of repositories.
- */
-public class ProfileSynchronizer {
-	private static final String TIMESTAMPS_FILE_PREFIX = "timestamps"; //$NON-NLS-1$
-	private static final String PROFILE_TIMESTAMP = "PROFILE"; //$NON-NLS-1$
-	private static final String NO_TIMESTAMP = "-1"; //$NON-NLS-1$
-
-	private static final String SUPER_IU = "org.eclipse.equinox.p2.dropins"; //$NON-NLS-1$
-
-	public class ListCollector extends Collector {
-		public List getList() {
-			return super.getList();
-		}
-	}
-
-	private static final String CACHE_EXTENSIONS = "org.eclipse.equinox.p2.cache.extensions"; //$NON-NLS-1$
-	private static final String PIPE = "|"; //$NON-NLS-1$
-	final IProfile profile;
-
-	final Map repositoryMap;
-	private Properties timestamps;
-
-	/*
-	 * Constructor for the class.
-	 */
-	public ProfileSynchronizer(IProfile profile, Collection repositories) {
-		this.profile = profile;
-		this.repositoryMap = new HashMap();
-		for (Iterator it = repositories.iterator(); it.hasNext();) {
-			IMetadataRepository repository = (IMetadataRepository) it.next();
-			repositoryMap.put(repository.getLocation().toExternalForm(), repository);
-		}
-	}
-
-	/*
-	 * Synchronize the profile with the list of metadata repositories.
-	 */
-	public IStatus synchronize(IProgressMonitor monitor) {
-		readTimestamps();
-		if (isUpToDate())
-			return Status.OK_STATUS;
-
-		IStatus status = synchronizeCacheExtensions();
-		if (!status.isOK())
-			return status;
-
-		ProvisioningContext context = getContext();
-		ProfileChangeRequest request = createProfileChangeRequest(context);
-
-		if (request == null)
-			return Status.OK_STATUS;
-
-		SubMonitor sub = SubMonitor.convert(monitor, 100);
-		try {
-			//create the provisioning plan
-			ProvisioningPlan plan = createProvisioningPlan(request, context, sub.newChild(50));
-
-			status = plan.getStatus();
-			if (status.getSeverity() == IStatus.ERROR || plan.getOperands().length == 0)
-				return status;
-
-			//invoke the engine to perform installs/uninstalls
-			IStatus engineResult = executePlan(plan, context, sub.newChild(50));
-
-			if (!engineResult.isOK())
-				return engineResult;
-			writeTimestamps();
-
-			applyConfiguration();
-
-			return status;
-		} finally {
-			sub.done();
-		}
-	}
-
-	private void writeTimestamps() {
-		timestamps.clear();
-		timestamps.put(PROFILE_TIMESTAMP, Long.toString(profile.getTimestamp()));
-		for (Iterator it = repositoryMap.entrySet().iterator(); it.hasNext();) {
-			Entry entry = (Entry) it.next();
-			IMetadataRepository repository = (IMetadataRepository) entry.getValue();
-			Map props = repository.getProperties();
-			String timestamp = null;
-			if (props != null)
-				timestamp = (String) props.get(IRepository.PROP_TIMESTAMP);
-
-			if (timestamp == null)
-				timestamp = NO_TIMESTAMP;
-
-			timestamps.put(entry.getKey(), timestamp);
-		}
-
-		try {
-			File file = Activator.getContext().getDataFile(TIMESTAMPS_FILE_PREFIX + profile.getProfileId().hashCode());
-			OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
-			try {
-				timestamps.save(os, "Timestamps for " + profile.getProfileId()); //$NON-NLS-1$
-			} finally {
-				if (os != null)
-					os.close();
-			}
-		} catch (FileNotFoundException e) {
-			//Ignore
-		} catch (IOException e) {
-			//Ignore
-		}
-	}
-
-	private boolean isUpToDate() {
-		String lastKnownProfileTimeStamp = (String) timestamps.remove(PROFILE_TIMESTAMP);
-		if (lastKnownProfileTimeStamp == null)
-			return false;
-		if (!lastKnownProfileTimeStamp.equals(Long.toString(profile.getTimestamp())))
-			return false;
-
-		//When we get here the timestamps map only contains information related to repos
-		for (Iterator it = repositoryMap.entrySet().iterator(); it.hasNext();) {
-			Entry entry = (Entry) it.next();
-			IMetadataRepository repository = (IMetadataRepository) entry.getValue();
-
-			Map props = repository.getProperties();
-			String currentTimestamp = null;
-			if (props != null)
-				currentTimestamp = (String) props.get(IRepository.PROP_TIMESTAMP);
-
-			if (currentTimestamp == null)
-				currentTimestamp = NO_TIMESTAMP;
-
-			String lastKnownTimestamp = (String) timestamps.remove(entry.getKey());
-			//A repo has been added 
-			if (lastKnownTimestamp == null)
-				return false;
-			if (!lastKnownTimestamp.equals(currentTimestamp)) {
-				return false;
-			}
-		}
-		//A repo has been removed
-		if (timestamps.size() != 0)
-			return false;
-
-		return true;
-	}
-
-	private void readTimestamps() {
-		File file = Activator.getContext().getDataFile(TIMESTAMPS_FILE_PREFIX + profile.getProfileId().hashCode());
-		timestamps = new Properties();
-		try {
-			InputStream is = new BufferedInputStream(new FileInputStream(file));
-			try {
-				timestamps.load(is);
-			} finally {
-				if (is != null)
-					is.close();
-			}
-		} catch (FileNotFoundException e) {
-			//Ignore
-		} catch (IOException e) {
-			//Ignore
-		}
-	}
-
-	private ProvisioningContext getContext() {
-		ArrayList repoURLs = new ArrayList();
-		for (Iterator iterator = repositoryMap.keySet().iterator(); iterator.hasNext();) {
-			try {
-				repoURLs.add(new URL((String) iterator.next()));
-			} catch (MalformedURLException e) {
-				//ignore
-			}
-		}
-		return new ProvisioningContext((URL[]) repoURLs.toArray(new URL[repoURLs.size()]));
-	}
-
-	private IStatus synchronizeCacheExtensions() {
-		List currentExtensions = new ArrayList();
-		StringBuffer buffer = new StringBuffer();
-		for (Iterator it = repositoryMap.keySet().iterator(); it.hasNext();) {
-			String repositoryId = (String) it.next();
-			try {
-				IArtifactRepository repository = Activator.loadArtifactRepository(new URL(repositoryId));
-
-				if (repository instanceof IFileArtifactRepository) {
-					currentExtensions.add(repositoryId);
-					buffer.append(repositoryId);
-					if (it.hasNext())
-						buffer.append(PIPE);
-				}
-			} catch (ProvisionException e) {
-				// ignore
-			} catch (MalformedURLException e) {
-				// unexpected
-				e.printStackTrace();
-			}
-		}
-		String currentExtensionsProperty = (buffer.length() == 0) ? null : buffer.toString();
-
-		List previousExtensions = new ArrayList();
-		String previousExtensionsProperty = profile.getProperty(CACHE_EXTENSIONS);
-		if (previousExtensionsProperty != null) {
-			StringTokenizer tokenizer = new StringTokenizer(previousExtensionsProperty, PIPE);
-			while (tokenizer.hasMoreTokens()) {
-				previousExtensions.add(tokenizer.nextToken());
-			}
-		}
-
-		if (previousExtensions.size() == currentExtensions.size() && previousExtensions.containsAll(currentExtensions))
-			return Status.OK_STATUS;
-
-		Operand operand = new PropertyOperand(CACHE_EXTENSIONS, previousExtensionsProperty, currentExtensionsProperty);
-
-		return executeOperands(new ProvisioningContext(new URL[0]), new Operand[] {operand}, null);
-	}
-
-	private IInstallableUnit createRootIU(List children) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setId(SUPER_IU);
-		iu.setVersion(new Version("1.0.0.v" + System.currentTimeMillis()));
-		List required = new ArrayList();
-		for (Iterator iter = children.iterator(); iter.hasNext();) {
-			IInstallableUnit next = (IInstallableUnit) iter.next();
-			required.add(MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, next.getId(), null, null, false /* optional */, false, true));
-		}
-		if (required.size() > 0)
-			iu.setRequiredCapabilities((RequiredCapability[]) required.toArray(new RequiredCapability[required.size()]));
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	private ProfileChangeRequest createProfileChangeRequest(ProvisioningContext context) {
-		List toAdd = new ArrayList();
-		List defaults = new ArrayList();
-
-		Collector allIUs = getAllIUsFromRepos();
-
-		//Nothing has changed
-		IInstallableUnit previous = getIU(SUPER_IU);
-		//Empty repo
-
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		if (allIUs.size() == 0) {
-			if (previous == null)
-				return null;
-
-			//Request the removal of the super IU
-			request.removeInstallableUnits(new IInstallableUnit[] {previous});
-			return request;
-		}
-
-		for (Iterator iterator = allIUs.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			defaults.add(createDefaultIU(iu));
-			toAdd.add(createIncludedIU(iu));
-			if (Boolean.valueOf(iu.getProperty(IInstallableUnit.PROP_TYPE_GROUP)).booleanValue())
-				request.setInstallableUnitProfileProperty(iu, IInstallableUnit.PROP_PROFILE_ROOT_IU, Boolean.TRUE.toString());
-		}
-
-		List extra = new ArrayList();
-		extra.addAll(defaults);
-		extra.addAll(toAdd);
-		context.setExtraIUs(extra);
-
-		// only add one IU to the request. it will contain all the other IUs we want to install
-		IInstallableUnit rootIU = createRootIU(toAdd);
-		request.addInstallableUnits(new IInstallableUnit[] {rootIU});
-
-		//Request the removal of the previous super IU
-		if (previous != null)
-			request.removeInstallableUnits(new IInstallableUnit[] {previous});
-		return request;
-	}
-
-	private Collector getAllIUsFromRepos() {
-		Collector allRepos = new Collector();
-		for (Iterator it = repositoryMap.entrySet().iterator(); it.hasNext();) {
-			Entry entry = (Entry) it.next();
-			IMetadataRepository repository = (IMetadataRepository) entry.getValue();
-			repository.query(InstallableUnitQuery.ANY, allRepos, null).iterator();
-		}
-		return allRepos;
-	}
-
-	private IInstallableUnit createIncludedIU(IInstallableUnit iu) {
-		InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription();
-		iud.setId(iu.getId());
-		iud.setVersion(new Version(0, 0, 0, Long.toString(System.currentTimeMillis())));
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), null, null, false, false, true)};
-		iud.setRequiredCapabilities(reqs);
-		return MetadataFactory.createInstallableUnit(iud);
-	}
-
-	private IInstallableUnit createDefaultIU(IInstallableUnit iu) {
-		InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription();
-		iud.setId(iu.getId());
-		iud.setVersion(new Version(0, 0, 0));
-		iud.setCapabilities(new ProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), new Version(0, 0, 0))});
-		return MetadataFactory.createInstallableUnit(iud);
-	}
-
-	private IInstallableUnit getIU(String iuId) {
-		ListCollector collector = new ListCollector();
-		profile.query(new InstallableUnitQuery(iuId), collector, null);
-		if (collector.size() > 0)
-			return (IInstallableUnit) collector.iterator().next();
-		return null;
-	}
-
-	private ProvisioningPlan createProvisioningPlan(ProfileChangeRequest request, ProvisioningContext provisioningContext, IProgressMonitor monitor) {
-		BundleContext context = Activator.getContext();
-		ServiceReference reference = context.getServiceReference(IPlanner.class.getName());
-		IPlanner planner = (IPlanner) context.getService(reference);
-
-		try {
-			return planner.getProvisioningPlan(request, provisioningContext, monitor);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	private IStatus executePlan(ProvisioningPlan plan, ProvisioningContext provisioningContext, IProgressMonitor monitor) {
-		Operand[] operands = plan.getOperands();
-		return executeOperands(provisioningContext, operands, monitor);
-	}
-
-	private IStatus executeOperands(ProvisioningContext provisioningContext, Operand[] operands, IProgressMonitor monitor) {
-		BundleContext context = Activator.getContext();
-		ServiceReference reference = context.getServiceReference(IEngine.class.getName());
-		IEngine engine = (IEngine) context.getService(reference);
-		try {
-			PhaseSet phaseSet = new DefaultPhaseSet();
-			IStatus engineResult = engine.perform(profile, phaseSet, operands, provisioningContext, monitor);
-			return engineResult;
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-	/*
-	 * Write out the configuration file.
-	 */
-	private void applyConfiguration() {
-		BundleContext context = Activator.getContext();
-		ServiceReference reference = context.getServiceReference(Configurator.class.getName());
-		Configurator configurator = (Configurator) context.getService(reference);
-		try {
-			configurator.applyConfiguration();
-		} catch (IOException e) {
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Unexpected failure applying configuration", e)); //$NON-NLS-1$
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java
deleted file mode 100644
index 42d2af9..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteDelta.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.equinox.internal.p2.update.Site;
-
-/*
- * Represents the changes between 2 lists of sites.
- */
-public class SiteDelta {
-
-	private static final String PLATFORM_BASE = "platform:/base/"; //$NON-NLS-1$
-
-	static class Change {
-		Site oldSite;
-		Site newSite;
-
-		Change(Site oldSite, Site newSite) {
-			this.oldSite = oldSite;
-			this.newSite = newSite;
-		}
-	}
-
-	private List added = new ArrayList();
-	private List removed = new ArrayList();
-	private List changed = new ArrayList();
-
-	/*
-	 * Create and return a new delta object based on the two given lists of
-	 * site objects.
-	 */
-	public static SiteDelta create(List oneList, List twoList) {
-		Site[] one = (Site[]) oneList.toArray(new Site[oneList.size()]);
-		Site[] two = (Site[]) twoList.toArray(new Site[twoList.size()]);
-		SiteDelta result = new SiteDelta();
-		for (int i = 0; one == null || i < one.length; i++) {
-			boolean found = false;
-			for (int j = 0; !found && j < two.length; j++) {
-				if (two[j] != null && one[i].getUrl().equals(two[j].getUrl())) {
-					found = true;
-					// TODO
-					if (!one[i].getUrl().equals(PLATFORM_BASE) && !one[i].equals(two[j]))
-						result.changed.add(new Change(one[i], two[j]));
-					one[i] = null;
-					two[j] = null;
-				}
-			}
-			// TODO
-			if (!found && !PLATFORM_BASE.equals(one[i].getUrl()))
-				result.removed.add(one[i]);
-		}
-		for (int j = 0; j < two.length; j++) {
-			// TODO
-			if (two[j] != null && !PLATFORM_BASE.equals(two[j].getUrl()))
-				result.added.add(two[j]);
-		}
-		return result;
-	}
-
-	/*
-	 * Return a list of the sites that were added. May return an empty list
-	 * but never returns null.
-	 */
-	public Site[] added() {
-		return (Site[]) added.toArray(new Site[added.size()]);
-	}
-
-	/*
-	 * Return a list of the sites that were removed. May return an empty list
-	 * but never returns null.
-	 */
-	public Site[] removed() {
-		return (Site[]) removed.toArray(new Site[removed.size()]);
-	}
-
-	/*
-	 * Return a list of the site changes that were changed. May return an empty list
-	 * but never returns null.
-	 */
-	public Change[] changed() {
-		return (Change[]) changed.toArray(new Change[changed.size()]);
-	}
-
-	/*
-	 * Return a boolean value indicating whether or not there are any
-	 * changes in this delta.
-	 */
-	public boolean isEmpty() {
-		return added.size() == 0 && removed.size() == 0 && changed.size() == 0;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java
deleted file mode 100644
index d891811..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/SiteInfo.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.reconciler.dropins;
-
-import org.eclipse.equinox.internal.p2.update.Site;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-
-/*
- * Internal class contains information about watchers and sites. Used for caching.
- */
-public class SiteInfo {
-	private IMetadataRepository repository;
-	private Site site;
-	private String url;
-
-	public SiteInfo(Site site, IMetadataRepository repository) {
-		super();
-		this.site = site;
-		this.url = site.getUrl();
-		this.repository = repository;
-	}
-
-	public Site getSite() {
-		return site;
-	}
-
-	public String getUrl() {
-		return url;
-	}
-
-	public IMetadataRepository getRepository() {
-		return repository;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return url.hashCode();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (!(obj instanceof SiteInfo))
-			return false;
-		SiteInfo other = (SiteInfo) obj;
-		// this is ok because they are strings and not real URLs
-		return url.equals(other.getUrl());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties b/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties
deleted file mode 100644
index 6719e56..0000000
--- a/bundles/org.eclipse.equinox.p2.reconciler/src/org/eclipse/equinox/internal/p2/reconciler/dropins/messages.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-errorProcessingConfg=Exception while processing configuration.
diff --git a/bundles/org.eclipse.equinox.p2.sar/.classpath b/bundles/org.eclipse.equinox.p2.sar/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.sar/.project b/bundles/org.eclipse.equinox.p2.sar/.project
deleted file mode 100644
index b586772..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.sar</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 24d9b4c..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,330 +0,0 @@
-#Fri Feb 22 11:10:10 EST 2008
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 56bcc3e..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:07 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF
deleted file mode 100644
index 0c96af2..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Sar Plug-in
-Bundle-SymbolicName: org.eclipse.equinox.p2.sar;singleton:=true
-Bundle-Version: 0.1.0
-Import-Package: org.osgi.framework;version="1.3.0"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Export-Package: org.eclipse.equinox.internal.p2.sar;x-friends:="org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.artifact.processors"
diff --git a/bundles/org.eclipse.equinox.p2.sar/about.html b/bundles/org.eclipse.equinox.p2.sar/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.sar/build.properties b/bundles/org.eclipse.equinox.p2.sar/build.properties
deleted file mode 100644
index ad40ab4..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java
deleted file mode 100644
index d7a633c..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/DirectByteArrayOutputStream.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-
-/**
- * The DirectByteArrayOutputStream discloses its guts (internal byte buffer and
- * byte buffer length) to avoid unnecessary allocation of byte arrays usually
- * involved with toByteArray().
- */
-public class DirectByteArrayOutputStream extends ByteArrayOutputStream {
-
-	/**
-	 * Creates a new direct byte array output stream. The buffer capacity is
-	 * initially as defined by super class.
-	 */
-	public DirectByteArrayOutputStream() {
-		super();
-	}
-
-	/**
-	 * Creates a new byte array output stream, with a buffer capacity of the
-	 * specified size, in bytes.
-	 * 
-	 * @param size
-	 *            the initial size.
-	 * @throws IllegalArgumentException
-	 *             if size is negative.
-	 */
-	public DirectByteArrayOutputStream(int size) {
-		super(size);
-	}
-
-	/**
-	 * Return the actual internal byte buffer.
-	 * 
-	 * @return internal byte buffer
-	 */
-	public final byte[] getBuffer() {
-		return super.buf;
-	}
-
-	/**
-	 * Return the actual length of the internal byte buffer.
-	 * 
-	 * @return actual length of the buffer
-	 */
-	public final int getBufferLength() {
-		return super.count;
-	}
-
-	/**
-	 * Return an input stream containing all the (shared) bytes this output
-	 * stream has already consumed.
-	 * 
-	 * @return ByteArrayInputStream
-	 */
-	public ByteArrayInputStream getInputStream() {
-		return new ByteArrayInputStream(super.buf, 0, super.count);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java
deleted file mode 100644
index 1dcbb4d..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarConstants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-/**
- * Sar constants
- */
-public interface SarConstants {
-
-	/** <code>SARFILE_MARKER</code> */
-	String SARFILE_MARKER = "SarFile"; //$NON-NLS-1$
-
-	/** <code>SARFILE_VERSION</code> */
-	int SARFILE_VERSION = 2;
-
-	/**
-	 * Comment for <code>DEFAULT_ENCODING</code>
-	 */
-	String DEFAULT_ENCODING = "UTF-8"; //$NON-NLS-1$
-
-	/**
-	 * Debug
-	 */
-	boolean DEBUG = false;
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java
deleted file mode 100644
index 8a2f273..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarEntry.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.IOException;
-import java.util.Date;
-import java.util.zip.ZipEntry;
-
-/**
- * A SarEntry is the header information for an entry within a
- * org.eclipse.equinox.p2.sar stream.<br>
- * <b>Note: </b>The setTime() and getTime() methods of ZipEntry (our super
- * class) perform time zone dependent (!) conversions. For our serialization and
- * deserialization the stored time has to be time zone neutral. Therefore it is
- * necessary to invert those calculations. This is also the reason for
- * duplicating the javaToDosTime() and dosToJavaTime() methods.
- */
-public class SarEntry extends ZipEntry {
-
-	private boolean isEof;
-	private boolean isZip;
-
-	/**
-	 * The name of the eof org.eclipse.equinox.p2.sar entry.
-	 */
-	private static final String EOF_ENTRY_NAME = "<eof-org.eclipse.equinox.p2.sar>"; //$NON-NLS-1$
-
-	private static final boolean DEBUG = SarConstants.DEBUG;
-
-	/**
-	 * Creates an eof org.eclipse.equinox.p2.sar entry
-	 */
-	public SarEntry() {
-		super(EOF_ENTRY_NAME);
-		setMethod(ZipEntry.DEFLATED);
-		this.isEof = true;
-		this.isZip = false;
-	}
-
-	/**
-	 * @param zipEntry
-	 */
-	public SarEntry(ZipEntry zipEntry) {
-		super(zipEntry);
-		this.isZip = false;
-		this.isEof = false;
-	}
-
-	/**
-	 * @param zipEntry
-	 * @param isZip
-	 */
-	public SarEntry(ZipEntry zipEntry, boolean isZip) {
-		super(zipEntry);
-		this.isZip = isZip;
-		this.isEof = false;
-	}
-
-	/**
-	 * @param sarInputStream
-	 * @throws IOException
-	 */
-	public SarEntry(SarInputStream sarInputStream) throws IOException {
-		// read name!
-		super(sarInputStream.readString());
-
-		String comment = sarInputStream.readString();
-		long compressedSize = sarInputStream.readLong();
-		long crc = sarInputStream.readLong();
-		byte[] extra = sarInputStream.readBytes();
-		int method = sarInputStream.readInt();
-		long size = sarInputStream.readLong();
-		long dosTime = sarInputStream.readLong();
-		boolean isEof = sarInputStream.readBoolean();
-		boolean isZip = sarInputStream.readBoolean();
-
-		if (DEBUG) {
-			System.out.println(getName() + "," + comment + "," + compressedSize + "," + crc + "," + extra + "," + method + "," + size + "," + dosTime + "," + isEof + "," + isZip);
-		}
-
-		if (method == ZipEntry.STORED) {
-			setCompressedSize(compressedSize);
-			setCrc(crc);
-			setSize(size);
-		}
-
-		setComment(comment);
-		setExtra(extra);
-		setMethod(method);
-		setTime(dosToJavaTime(dosTime));
-		setEof(isEof);
-		setZip(isZip);
-	}
-
-	/**
-	 * @param sarOutputStream
-	 * @throws IOException
-	 */
-	public void writeTo(SarOutputStream sarOutputStream) throws IOException {
-		String comment = this.getComment();
-		long compressedSize = this.getCompressedSize();
-		long crc = this.getCrc();
-		byte[] extra = this.getExtra();
-		int method = this.getMethod();
-		String name = this.getName();
-		long size = this.getSize();
-		long dosTime = javaToDosTime(this.getTime());
-		boolean isZip = this.isZip();
-		boolean isEof = this.isEof();
-
-		if (DEBUG) {
-			System.out.println(name + "," + comment + "," + compressedSize + "," + crc + "," + extra + "," + method + "," + size + "," + dosTime + "," + isEof + "," + isZip);
-		}
-
-		sarOutputStream.writeString(name);
-		sarOutputStream.writeString(comment);
-		sarOutputStream.writeLong(compressedSize);
-		sarOutputStream.writeLong(crc);
-		sarOutputStream.writeBytes(extra);
-		sarOutputStream.writeInt(method);
-		sarOutputStream.writeLong(size);
-		sarOutputStream.writeLong(dosTime);
-		sarOutputStream.writeBool(isEof);
-		sarOutputStream.writeBool(isZip);
-	}
-
-	/**
-	 * Is this the eof org.eclipse.equinox.p2.sar entry?
-	 * 
-	 * @return the answer
-	 */
-	public boolean isEof() {
-		return isEof;
-	}
-
-	private void setEof(boolean isEof) {
-		this.isEof = isEof;
-	}
-
-	/**
-	 * @return boolean
-	 */
-	public boolean isZip() {
-		return isZip;
-	}
-
-	/**
-	 * @param isZip
-	 */
-	private void setZip(boolean isZip) {
-		this.isZip = isZip;
-	}
-
-	/*
-	 * Converts DOS time to Java time (number of milliseconds since epoch).
-	 */
-	public final static long dosToJavaTime(long dtime) {
-		Date d = new Date((int) (((dtime >> 25) & 0x7f) + 80), (int) (((dtime >> 21) & 0x0f) - 1), (int) ((dtime >> 16) & 0x1f), (int) ((dtime >> 11) & 0x1f), (int) ((dtime >> 5) & 0x3f), (int) ((dtime << 1) & 0x3e));
-		return d.getTime();
-	}
-
-	/*
-	 * Converts Java time to DOS time.
-	 */
-	public final static long javaToDosTime(long time) {
-		Date d = new Date(time);
-		int year = d.getYear() + 1900;
-		if (year < 1980) {
-			return (1 << 21) | (1 << 16);
-		}
-		return (year - 1980) << 25 | (d.getMonth() + 1) << 21 | d.getDate() << 16 | d.getHours() << 11 | d.getMinutes() << 5 | d.getSeconds() >> 1;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java
deleted file mode 100644
index ea2abef..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarInputStream.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.*;
-
-/**
- * The SarInputStream reads a streaming archive as an InputStream. Methods are
- * provided to position at each successive entry in the archive, and the read
- * each entry as a normal input stream using read().
- */
-public class SarInputStream extends InputStream {
-
-	private final DataInputStream dataInputStream;
-	private final int version;
-	private InputStream contentStream;
-
-	/**
-	 * Constructor for SarInputStream.
-	 * 
-	 * @param inputStream
-	 *            the input stream to use
-	 * @throws IOException
-	 */
-	public SarInputStream(InputStream inputStream) throws IOException {
-
-		this.dataInputStream = new DataInputStream(inputStream);
-
-		// SarFile marker
-		String marker = readString();
-		if (!marker.equals(SarConstants.SARFILE_MARKER)) {
-			throw new IOException("Does not contain org.eclipse.equinox.p2.sar marker.");
-		}
-
-		// SarFile version
-		version = dataInputStream.readInt();
-		if (version != SarConstants.SARFILE_VERSION) {
-			throw new IOException("Unsupported version.");
-		}
-	}
-
-	/**
-	 * Closes this stream.
-	 * 
-	 * @throws IOException
-	 *             on error
-	 */
-	public void close() throws IOException {
-		dataInputStream.close();
-	}
-
-	/**
-	 * Since we do not support marking just yet, we return false.
-	 * 
-	 * @return False.
-	 */
-	public boolean markSupported() {
-		return false;
-	}
-
-	/**
-	 * Since we do not support marking just yet, we do nothing.
-	 * 
-	 * @param markLimit
-	 *            The limit to mark.
-	 */
-	public void mark(int markLimit) {
-		// nothing
-	}
-
-	/**
-	 * Since we do not support marking just yet, we do nothing.
-	 */
-	public void reset() {
-		// nothing
-	}
-
-	/**
-	 * Get the next entry in this org.eclipse.equinox.p2.sar archive. This will skip
-	 * over any remaining data in the current entry, if there is one, and place
-	 * the input stream at the header of the next entry, and read the header and
-	 * instantiate a new SarEntry from the header bytes and return that entry.
-	 * If there are no more entries in the archive, null will be returned to
-	 * indicate that the end of the archive has been reached.
-	 * 
-	 * @return the next SarEntry in the archive, or null.
-	 * @throws IOException
-	 *             on error
-	 */
-	public SarEntry getNextEntry() throws IOException {
-		SarEntry sarEntry = new SarEntry(this);
-		if (sarEntry.isEof())
-			return null;
-
-		byte[] content = readBytes();
-		contentStream = new ByteArrayInputStream(content);
-		return sarEntry;
-
-	}
-
-	/**
-	 * Close the entry.
-	 * 
-	 * @throws IOException
-	 */
-	public void closeEntry() throws IOException {
-		contentStream.close();
-	}
-
-	/**
-	 * @return String
-	 * @throws IOException
-	 */
-	String readString() throws IOException {
-		byte[] bytes = readBytes();
-		if (bytes == null)
-			return null;
-
-		return new String(bytes, SarConstants.DEFAULT_ENCODING);
-	}
-
-	/**
-	 * @return byte[]
-	 * @throws IOException
-	 */
-	byte[] readBytes() throws IOException {
-		int length = dataInputStream.readInt();
-		if (length == -1)
-			return null;
-
-		byte[] bytes = new byte[length];
-		dataInputStream.readFully(bytes, 0, length);
-		return bytes;
-	}
-
-	/**
-	 * @return int
-	 * @throws IOException
-	 */
-	int readInt() throws IOException {
-		return dataInputStream.readInt();
-	}
-
-	/**
-	 * @return boolean
-	 * @throws IOException
-	 */
-	boolean readBoolean() throws IOException {
-		return dataInputStream.readBoolean();
-	}
-
-	/**
-	 * @return long
-	 * @throws IOException
-	 */
-	long readLong() throws IOException {
-		return dataInputStream.readLong();
-	}
-
-	/**
-	 * Reads a byte from the current tar archive entry.
-	 * 
-	 * This method simply calls read( byte[], int, int ).
-	 * 
-	 * @return The byte read, or -1 at EOF.
-	 * @throws IOException
-	 *             on error
-	 */
-	public int read() throws IOException {
-		return contentStream.read();
-	}
-
-	/**
-	 * Reads bytes from the current tar archive entry.
-	 * 
-	 * This method is aware of the boundaries of the current entry in the
-	 * archive and will deal with them as if they were this stream's start and
-	 * EOF.
-	 * 
-	 * @param buffer
-	 *            The buffer into which to place bytes read.
-	 * @param offset
-	 *            The offset at which to place bytes read.
-	 * @param numToRead
-	 *            The number of bytes to read.
-	 * @return The number of bytes read, or -1 at EOF.
-	 * @throws IOException
-	 *             on error
-	 */
-	public int read(byte[] buffer, int offset, int numToRead) throws IOException {
-		return contentStream.read(buffer, offset, numToRead);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java
deleted file mode 100644
index 85a1682..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarOutputStream.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.*;
-
-/**
- * The SarOutputStream writes a stream archive as an OutputStream. Methods are
- * provided to put entries, and then write their contents by writing to this
- * stream using write().
- */
-public class SarOutputStream extends OutputStream {
-
-	private boolean finished;
-	private final DataOutputStream dataOutputStream;
-	private final DirectByteArrayOutputStream entryContent;
-
-	/**
-	 * @param outputStream
-	 * @throws IOException
-	 */
-	public SarOutputStream(OutputStream outputStream) throws IOException {
-		dataOutputStream = new DataOutputStream(outputStream);
-		entryContent = new DirectByteArrayOutputStream(16 * 1024);
-		writeString(SarConstants.SARFILE_MARKER);
-		dataOutputStream.writeInt(SarConstants.SARFILE_VERSION);
-		finished = false;
-	}
-
-	/**
-	 * Ends the SAR archive and closes the underlying OutputStream.
-	 * 
-	 * @see java.io.OutputStream#close()
-	 */
-	// @Override
-	public void close() throws IOException {
-		finish();
-		super.close();
-	}
-
-	/**
-	 * Finish this SAR archive but does not close the underlying output stream.
-	 * 
-	 * @throws IOException
-	 */
-	public void finish() throws IOException {
-		if (finished)
-			return;
-
-		writeEOFRecord();
-		finished = true;
-	}
-
-	/**
-	 * Put an entry on the output stream. This writes the entry's header record
-	 * and positions the output stream for writing the contents of the entry.
-	 * Once this method is called, the stream is ready for calls to write() to
-	 * write the entry's contents. Once the contents are written, closeEntry()
-	 * <B>MUST </B> be called to ensure that all buffered data is completely
-	 * written to the output stream.
-	 * 
-	 * @param entry
-	 *            the SarEntry to be written to the archive.
-	 * @throws IOException
-	 */
-	public void putNextEntry(SarEntry entry) throws IOException {
-		entry.writeTo(this);
-	}
-
-	/**
-	 * Close an entry. This method MUST be called for all file entries that
-	 * contain data. The reason is that we must buffer data written to the
-	 * stream in order to satisfy the buffer's record based writes. Thus, there
-	 * may be data fragments still being assembled that must be written to the
-	 * output stream before this entry is closed and the next entry written.
-	 * 
-	 * @throws IOException
-	 */
-	public void closeEntry() throws IOException {
-		writeBytes(entryContent.getBuffer(), entryContent.getBufferLength());
-		entryContent.reset();
-	}
-
-	/**
-	 * @param s
-	 * @throws IOException
-	 */
-	void writeString(String s) throws IOException {
-		byte[] bytes = null;
-		if (s != null)
-			bytes = s.getBytes(SarConstants.DEFAULT_ENCODING);
-
-		writeBytes(bytes);
-	}
-
-	/**
-	 * @param bytes
-	 * @throws IOException
-	 */
-	void writeBytes(byte[] bytes) throws IOException {
-		writeBytes(bytes, bytes != null ? bytes.length : -1);
-	}
-
-	/**
-	 * @param bytes
-	 * @throws IOException
-	 */
-	void writeBytes(byte[] bytes, int length) throws IOException {
-		if (bytes != null) {
-			dataOutputStream.writeInt(length);
-			dataOutputStream.write(bytes, 0, length);
-		} else {
-			dataOutputStream.writeInt(-1);
-		}
-	}
-
-	/**
-	 * @param v
-	 * @throws IOException
-	 */
-	void writeInt(int v) throws IOException {
-		dataOutputStream.writeInt(v);
-	}
-
-	/**
-	 * @param bool
-	 * @throws IOException
-	 */
-	public void writeBool(boolean bool) throws IOException {
-		dataOutputStream.writeBoolean(bool);
-	}
-
-	/**
-	 * @param v
-	 * @throws IOException
-	 */
-	void writeLong(long v) throws IOException {
-		dataOutputStream.writeLong(v);
-	}
-
-	/**
-	 * Writes a byte to the current org.eclipse.equinox.p2.sar archive entry.
-	 * 
-	 * @param b
-	 *            the byte written.
-	 * @throws IOException
-	 * 
-	 * @see java.io.OutputStream#write(int)
-	 */
-	public void write(int b) throws IOException {
-		byte[] bytes = new byte[1];
-		bytes[0] = (byte) b;
-		entryContent.write(bytes);
-	}
-
-	/**
-	 * Writes bytes to the current org.eclipse.equinox.p2.sar archive entry.
-	 * 
-	 * @param bytes
-	 *            The buffer to write to the archive.
-	 * @throws IOException
-	 * 
-	 * @see java.io.OutputStream#write(byte[])
-	 */
-	public void write(byte[] bytes) throws IOException {
-		entryContent.write(bytes, 0, bytes.length);
-	}
-
-	/**
-	 * Writes bytes to the current org.eclipse.equinox.p2.sar archive entry.
-	 * 
-	 * @param bytes
-	 *            The buffer to write to the archive.
-	 * @param offset
-	 *            The offset in the buffer from which to get bytes.
-	 * @param numToWrite
-	 *            The number of bytes to write.
-	 * 
-	 * @throws IOException
-	 * 
-	 * @see java.io.OutputStream#write(byte[], int, int)
-	 */
-	public void write(byte[] bytes, int offset, int numToWrite) throws IOException {
-		entryContent.write(bytes, offset, numToWrite);
-	}
-
-	/**
-	 * Write an EOF (end of archive) entry to the org.eclipse.equinox.p2.sar archive.
-	 * 
-	 * @throws IOException
-	 */
-	private void writeEOFRecord() throws IOException {
-		SarEntry eofEntry = new SarEntry();
-		eofEntry.writeTo(this);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java b/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java
deleted file mode 100644
index 29b54e7..0000000
--- a/bundles/org.eclipse.equinox.p2.sar/src/org/eclipse/equinox/internal/p2/sar/SarUtil.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  IBM Corporation - bug fixes and enhancements
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.sar;
-
-import java.io.*;
-import java.util.zip.*;
-
-/**
- * Helper class for converting Zips/Jars to Sars and vice versa.
- */
-public class SarUtil {
-
-	private static final int BUFFER_SIZE = 8 * 1024;
-	private static final boolean DEBUG = SarConstants.DEBUG;
-
-	/**
-	 * 
-	 */
-	private SarUtil() {
-		// utility class
-	}
-
-	/**
-	 * Normalize the given zip/jar.
-	 * 
-	 * @param zipSource
-	 * @param zipTarget
-	 * @throws IOException
-	 */
-	public static void normalize(File zipSource, File zipTarget) throws IOException {
-		File tempSar = File.createTempFile("temp", ".sar");
-		try {
-			zipToSar(zipSource, tempSar);
-			sarToZip(tempSar, zipTarget);
-		} finally {
-			tempSar.delete();
-		}
-	}
-
-	/**
-	 * Normalize the given zip/jar.
-	 * 
-	 * @param zipSource
-	 * @param zipTarget
-	 * @throws IOException
-	 */
-	public static void normalize(InputStream zipSource, OutputStream zipTarget) throws IOException {
-		DirectByteArrayOutputStream tempSar = new DirectByteArrayOutputStream();
-		zipToSar(zipSource, tempSar);
-		sarToZip(tempSar.getInputStream(), zipTarget);
-	}
-
-	/**
-	 * @param zipFile
-	 * @throws IOException
-	 */
-	public static void zipToSar(File zipFile, File sarFile) throws IOException {
-		InputStream zipInputStream = new BufferedInputStream(new FileInputStream(zipFile));
-		OutputStream sarOutputStream = new BufferedOutputStream(new FileOutputStream(sarFile));
-		SarUtil.zipToSar(zipInputStream, sarOutputStream);
-	}
-
-	/**
-	 * @param zippedInputStream
-	 * @param saredOutputStream
-	 * @throws IOException
-	 */
-	public static void zipToSar(InputStream zippedInputStream, OutputStream saredOutputStream) throws IOException {
-		zipToSar(zippedInputStream, true, saredOutputStream, true);
-	}
-
-	/**
-	 * @param zippedInputStream
-	 * @param closeIn
-	 * @param saredOutputStream
-	 * @param closeOut
-	 * @throws IOException
-	 */
-	public static void zipToSar(InputStream zippedInputStream, boolean closeIn, OutputStream saredOutputStream, boolean closeOut) throws IOException {
-		zipToSarNoClose(zippedInputStream, saredOutputStream);
-
-		if (closeIn)
-			zippedInputStream.close();
-		if (closeOut)
-			saredOutputStream.close();
-	}
-
-	/**
-	 * @param sarFile
-	 * @param zipFile
-	 * @throws IOException
-	 */
-	public static void sarToZip(File sarFile, File zipFile) throws IOException {
-		InputStream saredInputStream = new BufferedInputStream(new FileInputStream(sarFile));
-		OutputStream zippedOutputStream = new BufferedOutputStream(new FileOutputStream(zipFile));
-
-		sarToZip(saredInputStream, zippedOutputStream);
-	}
-
-	/**
-	 * @param saredInputStream
-	 * @param zippedOutputStream
-	 * @throws IOException
-	 */
-	public static void sarToZip(InputStream saredInputStream, OutputStream zippedOutputStream) throws IOException {
-		sarToZip(saredInputStream, true, zippedOutputStream, true);
-	}
-
-	/**
-	 * @param saredInputStream
-	 * @param closeIn
-	 * @param zippedOutputStream
-	 * @param closeOut
-	 * @throws IOException
-	 */
-	public static void sarToZip(InputStream saredInputStream, boolean closeIn, OutputStream zippedOutputStream, boolean closeOut) throws IOException {
-		sarToZipNoClose(saredInputStream, zippedOutputStream);
-
-		if (closeIn)
-			saredInputStream.close();
-		if (closeOut)
-			zippedOutputStream.close();
-	}
-
-	/**
-	 * @param zippedInputStream
-	 * @param saredOutputStream
-	 * @throws IOException
-	 */
-	private static void zipToSarNoClose(InputStream zippedInputStream, OutputStream saredOutputStream) throws IOException {
-
-		ZipInputStream zipInputStream = new ZipInputStream(zippedInputStream);
-		SarOutputStream sarOutputStream = new SarOutputStream(saredOutputStream);
-
-		ZipEntry zipEntry;
-		byte[] buf = new byte[BUFFER_SIZE];
-		while ((zipEntry = zipInputStream.getNextEntry()) != null) {
-			boolean isZip = isZip(zipEntry);
-			SarEntry sarEntry = new SarEntry(zipEntry, isZip);
-			sarOutputStream.putNextEntry(sarEntry);
-			if (isZip) {
-				zipToSarNoClose(zipInputStream, sarOutputStream);
-			} else {
-				int read;
-				while ((read = zipInputStream.read(buf)) != -1) {
-					if (DEBUG) {
-						System.out.println("Content: " + new String(buf, 0, read));
-					}
-					sarOutputStream.write(buf, 0, read);
-				}
-			}
-			zipInputStream.closeEntry();
-			sarOutputStream.closeEntry();
-		}
-		sarOutputStream.finish();
-	}
-
-	/**
-	 * @param saredInputStream
-	 * @param zippedOutputStream
-	 * @throws IOException
-	 */
-	private static void sarToZipNoClose(InputStream saredInputStream, OutputStream zippedOutputStream) throws IOException {
-
-		SarInputStream sarInputStream = new SarInputStream(saredInputStream);
-		ZipOutputStream zipOutputStream = new ZipOutputStream(zippedOutputStream);
-
-		SarEntry sarEntry;
-		byte[] buf = new byte[BUFFER_SIZE];
-		while ((sarEntry = sarInputStream.getNextEntry()) != null) {
-			ZipEntry zipEntry = new ZipEntry(sarEntry);
-			zipOutputStream.putNextEntry(zipEntry);
-			if (sarEntry.isZip()) {
-				sarToZipNoClose(sarInputStream, zipOutputStream);
-			} else {
-				int read;
-				while ((read = sarInputStream.read(buf)) != -1) {
-					if (DEBUG) {
-						System.out.println("Content: " + new String(buf, 0, read));
-					}
-					zipOutputStream.write(buf, 0, read);
-				}
-			}
-			sarInputStream.closeEntry();
-			zipOutputStream.closeEntry();
-		}
-
-		zipOutputStream.finish();
-	}
-
-	private static boolean isZip(ZipEntry zipEntry) {
-		String name = zipEntry.getName().toLowerCase();
-		return name.endsWith(".zip") || name.endsWith(".jar");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/.classpath b/bundles/org.eclipse.equinox.p2.tests/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.tests/.project b/bundles/org.eclipse.equinox.p2.tests/.project
deleted file mode 100644
index a77ce5d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a3769c6..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue Nov 13 12:02:11 EST 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index c72c988..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Tue Nov 13 12:02:11 EST 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 6333193..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Aug 23 14:59:00 CEST 2007
-eclipse.preferences.version=1
-pluginProject.extensions=true
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 05d7e22..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,77 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.tests;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: ie.wombat.jbdiff,
- junit.framework;version="3.8.2",
- org.eclipse.equinox.internal.p2.artifact.optimizers,
- org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta,
- org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff,
- org.eclipse.equinox.internal.p2.artifact.optimizers.pack200,
- org.eclipse.equinox.internal.p2.artifact.processors.jardelta,
- org.eclipse.equinox.internal.p2.artifact.processors.jbdiff,
- org.eclipse.equinox.internal.p2.artifact.processors.pack200,
- org.eclipse.equinox.internal.p2.artifact.processors.verifier,
- org.eclipse.equinox.internal.p2.artifact.repository,
- org.eclipse.equinox.internal.p2.artifact.repository.simple,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.director,
- org.eclipse.equinox.internal.p2.engine,
- org.eclipse.equinox.internal.p2.metadata,
- org.eclipse.equinox.internal.p2.metadata.repository,
- org.eclipse.equinox.internal.p2.metadata.repository.io,
- org.eclipse.equinox.internal.p2.persistence,
- org.eclipse.equinox.internal.p2.resolution,
- org.eclipse.equinox.internal.p2.sar,
- org.eclipse.equinox.internal.p2.touchpoint.eclipse,
- org.eclipse.equinox.internal.p2.updatesite,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.director,
- org.eclipse.equinox.internal.provisional.p2.directorywatcher,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.core.repository,
- org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository,
- org.eclipse.osgi.service.environment;version="1.0.0",
- org.eclipse.osgi.service.resolver;version="1.1.0",
- org.eclipse.osgi.service.urlconversion;version="1.0.0",
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.service.packageadmin;version="1.2.0",
- org.osgi.util.tracker;version="1.3.3",
- org.xml.sax
-Bundle-Activator: org.eclipse.equinox.p2.tests.TestActivator
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.equinox.p2.metadata.generator,
- org.eclipse.equinox.frameworkadmin,
- org.eclipse.equinox.common
-Eclipse-LazyStart: true
-Eclipse-RegisterBuddy: org.eclipse.equinox.p2.artifact.repository
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Export-Package: org.eclipse.equinox.p2.tests,
- org.eclipse.equinox.p2.tests.artifact.optimizers,
- org.eclipse.equinox.p2.tests.artifact.processors,
- org.eclipse.equinox.p2.tests.artifact.repository,
- org.eclipse.equinox.p2.tests.artifact.repository.processing,
- org.eclipse.equinox.p2.tests.director,
- org.eclipse.equinox.p2.tests.directorywatcher,
- org.eclipse.equinox.p2.tests.download,
- org.eclipse.equinox.p2.tests.embeddedequinox,
- org.eclipse.equinox.p2.tests.engine,
- org.eclipse.equinox.p2.tests.full,
- org.eclipse.equinox.p2.tests.generator,
- org.eclipse.equinox.p2.tests.metadata,
- org.eclipse.equinox.p2.tests.metadata.repository,
- org.eclipse.equinox.p2.tests.sar,
- org.eclipse.equinox.p2.tests.simpleconfigurator
diff --git a/bundles/org.eclipse.equinox.p2.tests/Test Director CDT.launch b/bundles/org.eclipse.equinox.p2.tests/Test Director CDT.launch
deleted file mode 100644
index 57b49f1..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/Test Director CDT.launch
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.test/src/org/eclipse/equinox/prov/test/DirectorTest.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.equinox.p2.tests.director.DirectorTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.test"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.data.area=c:/temp/equinox.p2/agent/&#13;&#10;-Declipse.p2.metadataRepository=file:c:/temp/equinox.p2/servers/CDTmetadataRepository/ &#13;&#10;-Declipse.p2.artifactRepository=file:c:/temp/equinox.p2/servers/artifactRepository/&#13;&#10;-Declipse.p2.installFolder=c:/temp/equinox.p2/eclipseInstall/ &#13;&#10;-Declipse.p2.configurationFlavor=tooling&#13;&#10;-Declipse.p2.autoInstall=cdt"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-<stringAttribute key="vminstall" value="jdk"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.tests/Test Director SDK.launch b/bundles/org.eclipse.equinox.p2.tests/Test Director SDK.launch
deleted file mode 100644
index c0e65d6..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/Test Director SDK.launch
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.update.configurator"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.test/src/org/eclipse/equinox/prov/tests/director/DirectorTest.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.equinox.p2.tests.director.DirectorTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console -noExit -consoleLog"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.test"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.data.area=d:/tmp/equinox.p2/agent/ &#13;&#10;-Declipse.p2.metadataRepository=file:d:/tmp/equinox.p2/servers/metadataRepository/ &#13;&#10;-Declipse.p2.artifactRepository=file:d:/tmp/equinox.p2/servers/artifactRepository/&#13;&#10;-Declipse.p2.installFolder=d:/tmp/equinox.p2/eclipseInstall/ &#13;&#10;-Declipse.p2.configurationFlavor=tooling&#13;&#10;-Declipse.p2.autoInstall=sdk"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu,com.ibm.icu.source,com.jcraft.jsch,javax.servlet,javax.servlet.jsp,javax.servlet.jsp.source,javax.servlet.source,org.apache.ant,org.apache.ant.source,org.apache.commons.el,org.apache.commons.el.source,org.apache.commons.logging,org.apache.commons.logging.source,org.apache.jasper,org.apache.jasper.source,org.apache.lucene,org.apache.lucene.analysis,org.apache.lucene.analysis.source,org.apache.lucene.source,org.eclipse.ant.core,org.eclipse.ant.ui,org.eclipse.compare,org.eclipse.core.boot,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.cvs,org.eclipse.cvs.source,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.http.jetty,org.eclipse.equinox.http.registry,org.eclipse.equinox.http.servlet,org.eclipse.equinox.jsp.jasper,org.eclipse.equinox.jsp.jasper.registry,org.eclipse.equinox.launcher,org.eclipse.equinox.launcher.win32.win32.x86,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.help.appserver,org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.help.webapp,org.eclipse.jdt,org.eclipse.jdt.apt.core,org.eclipse.jdt.apt.pluggable.core,org.eclipse.jdt.apt.ui,org.eclipse.jdt.compiler.apt,org.eclipse.jdt.compiler.tool,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.doc.isv,org.eclipse.jdt.doc.user,org.eclipse.jdt.junit,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.junit4.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.source,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.jsch.core,org.eclipse.jsch.ui,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde,org.eclipse.pde.build,org.eclipse.pde.core,org.eclipse.pde.doc.user,org.eclipse.pde.junit.runtime,org.eclipse.pde.runtime,org.eclipse.pde.source,org.eclipse.pde.ui,org.eclipse.pde.ui.templates,org.eclipse.platform,org.eclipse.platform.doc.isv,org.eclipse.platform.doc.user,org.eclipse.platform.source,org.eclipse.platform.source.win32.win32.x86,org.eclipse.rcp,org.eclipse.rcp.source,org.eclipse.rcp.source.win32.win32.x86,org.eclipse.sdk,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.team.core,org.eclipse.team.cvs.core,org.eclipse.team.cvs.ssh,org.eclipse.team.cvs.ssh2,org.eclipse.team.cvs.ui,org.eclipse.team.ui,org.eclipse.text,org.eclipse.tomcat,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.externaltools,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.intro.universal,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.net,org.eclipse.ui.presentations.r21,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.ui.workbench.compatibility,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.update.core,org.eclipse.update.core.win32,org.eclipse.update.scheduler,org.eclipse.update.ui,org.junit,org.junit.source,org.junit4,org.mortbay.jetty,org.mortbay.jetty.source"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.test,org.apache.xml.resolver,org.apache.xerces,org.eclipse.ecf.identity,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.jarprocessor,org.mozilla.rhino,org.eclipse.equinox.p2.metadata.repository,com.thoughtworks.xstream,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.console,org.eclipse.ecf.filetransfer,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.exemplarysetup,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.p2.download,org.eclipse.ecf.provider.filetransfer,org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.simpleconfigurator"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-<stringAttribute key="vminstall" value="ibm1.5sr1"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall CDT.launch b/bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall CDT.launch
deleted file mode 100644
index b39f45d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall CDT.launch
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.p2.test/src/org/eclipse/equinox/prov/tests/director/DirectorTest.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.equinox.p2.tests.director.DirectorTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.test"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.data.area=c:/temp/equinox.p2/agent/&#13;&#10;-Declipse.p2.metadataRepository=file:c:/temp/equinox.p2/servers/CDTmetadataRepository/ &#13;&#10;-Declipse.p2.artifactRepository=file:c:/temp/equinox.p2/servers/artifactRepository/&#13;&#10;-Declipse.p2.installFolder=c:/temp/equinox.p2/eclipseInstall/ &#13;&#10;-Declipse.p2.configurationFlavor=tooling&#13;&#10;-Declipse.p2.autoInstall=cdt&#13;&#10;-Declipse.p2.doUninstall=true"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-<stringAttribute key="vminstall" value="jdk"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall SDK.launch b/bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall SDK.launch
deleted file mode 100644
index a0a698d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/Test Director Uninstall SDK.launch
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Test Director Uninstall SDK"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m&#13;&#10;-Xmx768m&#13;&#10;-Declipse.p2.data.area=c:/temp/equinox.p2/agent/&#13;&#10;-Declipse.p2.metadataRepository=file:c:/temp/equinox.p2/servers/metadataRepository/ &#13;&#10;-Declipse.p2.artifactRepository=file:c:/temp/equinox.p2/servers/artifactRepository/&#13;&#10;-Declipse.p2.installFolder=c:/temp/equinox.p2/eclipseInstall/ &#13;&#10;-Declipse.p2.configurationFlavor=tooling&#13;&#10;-Declipse.p2.autoInstall=sdk&#13;&#10;-Declipse.p2.doUninstall=true"/>
-<stringAttribute key="target_bundles" value="org.eclipse.core.jobs@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default,org.junit@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="vminstall" value="JRE1.4.2"/>
-<stringAttribute key="workspace_bundles" value="com.thoughtworks.xstream@default:default,org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:true,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@1:true"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.tests/about.html b/bundles/org.eclipse.equinox.p2.tests/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/build.properties b/bundles/org.eclipse.equinox.p2.tests/build.properties
deleted file mode 100644
index 3161cea..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.xml,\
-               testData/,\
-               plugin.properties,\
-               test.xml
-customCallBack=foo.xml
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.tests/plugin.properties b/bundles/org.eclipse.equinox.p2.tests/plugin.properties
deleted file mode 100644
index 41d7120..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Tests (Incubation)
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.tests/plugin.xml b/bundles/org.eclipse.equinox.p2.tests/plugin.xml
deleted file mode 100644
index bed49ce..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/plugin.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.ByteShifter">
-		<step class="org.eclipse.equinox.p2.tests.artifact.repository.processing.ByteShifter"/>
-	</extension>
-
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.Adder">
-		<step class="org.eclipse.equinox.p2.tests.artifact.repository.processing.Adder"/>
-	</extension>
-
-	<extension
-			point="org.eclipse.equinox.p2.artifact.repository.processingSteps"
-			id="org.eclipse.equinox.p2.processing.Multiplier">
-		<step class="org.eclipse.equinox.p2.tests.artifact.repository.processing.Multiplier"/>
-	</extension>
- <extension
-       id="phaseTest"
-       point="org.eclipse.equinox.p2.engine.touchpoints">
-    <touchpoint
-          class="org.eclipse.equinox.p2.tests.engine.TouchpointTest$PhaseTestTouchpoint"
-          type="phaseTest"
-          version="1.0.0">
-    </touchpoint>
- </extension>
- <extension
-       id="operandTest"
-       point="org.eclipse.equinox.p2.engine.touchpoints">
-    <touchpoint
-          class="org.eclipse.equinox.p2.tests.engine.TouchpointTest$OperandTestTouchpoint"
-          type="operandTest"
-          version="1.0.0">
-    </touchpoint>
- </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.tests/rawData/Test Data Generator.launch b/bundles/org.eclipse.equinox.p2.tests/rawData/Test Data Generator.launch
deleted file mode 100644
index ad9a6a4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/rawData/Test Data Generator.launch
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Test Data Generator"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<stringAttribute key="execEnvironment" value="J2SE-1.5"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator&#13;&#10;-metadataRepository file:${workspace_loc:org.eclipse.equinox.p2.tests/testData/enginerepo}&#13;&#10;-artifactRepository file:${workspace_loc:org.eclipse.equinox.p2.tests/testData/enginerepo} &#13;&#10;-base ${workspace_loc:org.eclipse.equinox.p2.tests/rawData}&#13;&#10;-bundles ${workspace_loc:org.eclipse.equinox.p2.tests/rawData}&#13;&#10;-features ${workspace_loc:org.eclipse.equinox.p2.tests/rawData}&#13;&#10;-publishArtifacts &#13;&#10;-par&#13;&#10;-noDefaultIUs"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:default,org.eclipse.core.runtime.compatibility.registry@default:default,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default,org.eclipse.update.configurator@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="false"/>
-<stringAttribute key="vminstall" value="ibm1.5sr1"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:true,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.equinox.p2.metadata.repository@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.tests/rawData/enginerepo.jardesc b/bundles/org.eclipse.equinox.p2.tests/rawData/enginerepo.jardesc
deleted file mode 100644
index 080a937..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/rawData/enginerepo.jardesc
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="WINDOWS-1252"?>
-<jardesc>
-    <jar path="D:/workspaces/prov.selfhost/org.eclipse.equinox.p2.tests/testData/enginerepo.jar"/>
-    <options buildIfNeeded="true" compress="true" descriptionLocation="/org.eclipse.equinox.p2.tests/rawData/enginerepo.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
-    <storedRefactorings deprecationInfo="true" structuralOnly="false"/>
-    <selectedProjects/>
-    <manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
-        <sealing sealJar="false">
-            <packagesToSeal/>
-            <packagesToUnSeal/>
-        </sealing>
-    </manifest>
-    <selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
-        <folder path="/org.eclipse.equinox.p2.tests/testData/enginerepo"/>
-    </selectedElements>
-</jardesc>
diff --git a/bundles/org.eclipse.equinox.p2.tests/rawData/org.eclipse.equinox.prov.engine_0.1.0.200709241631.jar b/bundles/org.eclipse.equinox.p2.tests/rawData/org.eclipse.equinox.prov.engine_0.1.0.200709241631.jar
deleted file mode 100644
index d53ff00..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/rawData/org.eclipse.equinox.prov.engine_0.1.0.200709241631.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java
deleted file mode 100644
index f44fc17..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractProvisioningTest.java
+++ /dev/null
@@ -1,700 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * Base class for provisioning tests with convenience methods used by multiple tests.
- */
-public abstract class AbstractProvisioningTest extends TestCase {
-
-	protected static final VersionRange ANY_VERSION = new VersionRange(Version.emptyVersion, true, new Version(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE), true);
-	private static final ProvidedCapability[] BUNDLE_CAPABILITY = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("eclipse.touchpoint", "bundle", new Version(1, 0, 0))};
-
-	private static final RequiredCapability[] BUNDLE_REQUIREMENT = new RequiredCapability[] {MetadataFactory.createRequiredCapability("eclipse.touchpoint", "bundle", VersionRange.emptyRange, null, false, true)};
-
-	protected static final Version DEFAULT_VERSION = new Version(1, 0, 0);
-	public static final TouchpointType TOUCHPOINT_OSGI = MetadataFactory.createTouchpointType("org.eclipse.equinox.p2.osgi", new Version(1, 0, 0));
-
-	protected static final Map NO_PROPERTIES = Collections.EMPTY_MAP;
-	protected static final ProvidedCapability[] NO_PROVIDES = new ProvidedCapability[0];
-	protected static final RequiredCapability[] NO_REQUIRES = new RequiredCapability[0];
-
-	protected static final TouchpointData NO_TP_DATA = MetadataFactory.createTouchpointData(new HashMap());
-
-	/**
-	 * Tracks the metadata repositories created by this test instance. The repositories
-	 * will be removed automatically at the end of the test.
-	 */
-	private List metadataRepos = new ArrayList();
-	/**
-	 * Tracks the profiles created by this test instance. The profiles
-	 * will be removed automatically at the end of the test.
-	 */
-	private List profilesToRemove = new ArrayList();
-
-	public static void assertEmptyProfile(IProfile profile) {
-		assertNotNull("The profile should not be null", profile);
-		if (getInstallableUnits(profile).hasNext())
-			fail("The profile should be empty,profileId=" + profile);
-	}
-
-	protected static void assertNotIUs(IInstallableUnit[] ius, Iterator installableUnits) {
-		Set notexpected = new HashSet();
-		notexpected.addAll(Arrays.asList(ius));
-
-		while (installableUnits.hasNext()) {
-			IInstallableUnit next = (IInstallableUnit) installableUnits.next();
-			if (notexpected.contains(next)) {
-				fail("not expected [" + next + "]");
-			}
-		}
-	}
-
-	protected static void assertNotOK(IStatus result) {
-		assertTrue("The status should not have been OK", !result.isOK());
-	}
-
-	protected static void assertOK(IStatus result) {
-		if (result.isOK())
-			return;
-
-		if (result instanceof MultiStatus) {
-			MultiStatus ms = (MultiStatus) result;
-			IStatus children[] = ms.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				System.err.println(children[i]);
-			}
-		}
-
-		Throwable t = result.getException();
-		if (t != null)
-			t.printStackTrace();
-
-		fail(result.toString());
-	}
-
-	/**
-	 * Asserts that the given profile contains *only* the given IUs.
-	 */
-	protected static void assertProfileContains(String message, IProfile profile, IInstallableUnit[] expectedUnits) {
-		HashSet expected = new HashSet(Arrays.asList(expectedUnits));
-		for (Iterator it = getInstallableUnits(profile); it.hasNext();) {
-			IInstallableUnit actual = (IInstallableUnit) it.next();
-			if (!expected.remove(actual))
-				fail(message + " profile " + profile.getProfileId() + " contained an unexpected unit: " + actual);
-		}
-		if (!expected.isEmpty())
-			fail(message + " profile " + profile.getProfileId() + " did not contain expected units: " + expected);
-	}
-
-	/**
-	 * Asserts that the given profile contains all the given IUs.
-	 */
-	protected static void assertProfileContainsAll(String message, IProfile profile2, IInstallableUnit[] expectedUnits) {
-		HashSet expected = new HashSet(Arrays.asList(expectedUnits));
-		for (Iterator it = getInstallableUnits(profile2); it.hasNext();) {
-			IInstallableUnit actual = (IInstallableUnit) it.next();
-			expected.remove(actual);
-		}
-		if (!expected.isEmpty())
-			fail(message + " profile " + profile2.getProfileId() + " did not contain expected units: " + expected);
-	}
-
-	/*
-	 * Copy
-	 * - if we have a file, then copy the file
-	 * - if we have a directory then merge
-	 */
-	public static void copy(String message, File source, File target) {
-		if (!source.exists())
-			return;
-		if (source.isDirectory()) {
-			if (target.exists() && target.isFile())
-				target.delete();
-			if (!target.exists())
-				target.mkdirs();
-			File[] children = source.listFiles();
-			for (int i = 0; i < children.length; i++)
-				copy(message, children[i], new File(target, children[i].getName()));
-			return;
-		}
-		InputStream input = null;
-		OutputStream output = null;
-		try {
-			input = new BufferedInputStream(new FileInputStream(source));
-			output = new BufferedOutputStream(new FileOutputStream(target));
-
-			byte[] buffer = new byte[8192];
-			int bytesRead = 0;
-			while ((bytesRead = input.read(buffer)) != -1)
-				output.write(buffer, 0, bytesRead);
-		} catch (IOException e) {
-			fail(message, e);
-		} finally {
-			if (input != null) {
-				try {
-					input.close();
-				} catch (IOException e) {
-					System.err.println("Exception while trying to close input stream on: " + source.getAbsolutePath());
-					e.printStackTrace();
-				}
-			}
-			if (output != null) {
-				try {
-					output.close();
-				} catch (IOException e) {
-					System.err.println("Exception while trying to close output stream on: " + target.getAbsolutePath());
-					e.printStackTrace();
-				}
-			}
-		}
-	}
-
-	/**
-	 * 	Create an eclipse InstallableUnitFragment with the given name that is hosted
-	 *  by any bundle. The fragment has the default version, and the default self and
-	 *  fragment provided capabilities are added to the IU.
-	 */
-	public static IInstallableUnitFragment createBundleFragment(String name) {
-		InstallableUnitFragmentDescription fragment = new InstallableUnitFragmentDescription();
-		fragment.setId(name);
-		fragment.setVersion(DEFAULT_VERSION);
-		fragment.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		fragment.setTouchpointType(TOUCHPOINT_OSGI);
-		fragment.addTouchpointData(NO_TP_DATA);
-		fragment.setHost(BUNDLE_REQUIREMENT);
-		return MetadataFactory.createInstallableUnitFragment(fragment);
-
-		//		return createIUFragment(null, name, DEFAULT_VERSION, BUNDLE_REQUIREMENT, TOUCHPOINT_OSGI, NO_TP_DATA);
-	}
-
-	/**
-	 * 	Create an eclipse InstallableUnitFragment with the given name and version
-	 *  that is hosted by any bundle. The default self and fragment provided capabilities
-	 *  are added to the IU.
-	 */
-	public static IInstallableUnitFragment createBundleFragment(String name, Version version, TouchpointData tpData) {
-		return createIUFragment(null, name, version, BUNDLE_REQUIREMENT, TOUCHPOINT_OSGI, tpData);
-	}
-
-	public static IDirector createDirector() {
-		return (IDirector) ServiceHelper.getService(TestActivator.getContext(), IDirector.class.getName());
-	}
-
-	/**
-	 * 	Create an Eclipse InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createEclipseIU(String name) {
-		return createEclipseIU(name, DEFAULT_VERSION);
-	}
-
-	/**
-	 * 	Create an Eclipse InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createEclipseIU(String name, Version version) {
-		return createIU(name, version, null, NO_REQUIRES, BUNDLE_CAPABILITY, NO_PROPERTIES, TOUCHPOINT_OSGI, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create an Eclipse InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createEclipseIU(String name, Version version, RequiredCapability[] requires, TouchpointData touchpointData) {
-		return createIU(name, version, null, requires, BUNDLE_CAPABILITY, NO_PROPERTIES, TOUCHPOINT_OSGI, touchpointData, false);
-	}
-
-	public static IEngine createEngine() {
-		return (IEngine) ServiceHelper.getService(TestActivator.getContext(), IEngine.SERVICE_NAME);
-	}
-
-	/**
-	 * Creates and returns a correctly formatted LDAP filter with the given key and value.
-	 */
-	protected static String createFilter(String filterKey, String filterValue) {
-		return "(" + filterKey + '=' + filterValue + ')';
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name) {
-		return createIU(name, DEFAULT_VERSION);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, ProvidedCapability[] additionalProvides) {
-		return createIU(name, DEFAULT_VERSION, null, NO_REQUIRES, additionalProvides, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, RequiredCapability[] requires) {
-		return createIU(name, DEFAULT_VERSION, null, requires, NO_PROVIDES, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, RequiredCapability[] requires, boolean singleton) {
-		return createIU(name, DEFAULT_VERSION, null, requires, NO_PROVIDES, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, singleton);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, String filter, ProvidedCapability[] additionalProvides) {
-		return createIU(name, DEFAULT_VERSION, filter, NO_REQUIRES, additionalProvides, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, Version version) {
-		return createIU(name, version, null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, Version version, boolean singleton) {
-		return createIU(name, version, null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, singleton);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, Version version, ProvidedCapability[] additionalProvides) {
-		return createIU(name, version, null, NO_REQUIRES, additionalProvides, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, Version version, RequiredCapability[] required) {
-		return createIU(name, version, null, required, NO_PROVIDES, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, Version version, RequiredCapability[] required, Map properties, boolean singleton) {
-		return createIU(name, version, null, required, NO_PROVIDES, properties, TouchpointType.NONE, NO_TP_DATA, singleton);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, Version version, String filter, ProvidedCapability[] additionalProvides) {
-		return createIU(name, version, filter, NO_REQUIRES, additionalProvides, NO_PROPERTIES, TouchpointType.NONE, NO_TP_DATA, false);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnit with the given attributes. All other attributes
-	 * assume default values, and the default self capability is also added to the IU.
-	 */
-	public static IInstallableUnit createIU(String name, Version version, String filter, RequiredCapability[] required, ProvidedCapability[] additionalProvides, Map properties, TouchpointType tpType, TouchpointData tpData, boolean singleton) {
-		return createIU(name, version, filter, required, additionalProvides, properties, tpType, tpData, singleton, null);
-	}
-
-	public static IInstallableUnit createIU(String name, Version version, String filter, RequiredCapability[] required, ProvidedCapability[] additionalProvides, Map properties, TouchpointType tpType, TouchpointData tpData, boolean singleton, IUpdateDescriptor update) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setId(name);
-		iu.setVersion(version);
-		iu.setFilter(filter);
-		ProvidedCapability[] provides = new ProvidedCapability[additionalProvides.length + 1];
-		provides[0] = getSelfCapability(name, version);
-		for (int i = 0; i < additionalProvides.length; i++) {
-			provides[i + 1] = additionalProvides[i];
-		}
-		for (Iterator iter = properties.keySet().iterator(); iter.hasNext();) {
-			String nextKey = (String) iter.next();
-			String nextValue = (String) properties.get(nextKey);
-			iu.setProperty(nextKey, nextValue);
-		}
-		iu.setCapabilities(provides);
-		iu.setRequiredCapabilities(required);
-		iu.setTouchpointType(tpType);
-		if (tpData != null)
-			iu.addTouchpointData(tpData);
-		iu.setSingleton(singleton);
-		iu.setUpdateDescriptor(update);
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnitFragment with the given attributes. 
-	 * The self and fragment provided capabilities are added to the IU.
-	 */
-	public static IInstallableUnitFragment createIUFragment(IInstallableUnit host, String name, Version version) {
-		return createIUFragment(host, name, version, NO_REQUIRES, TouchpointType.NONE, NO_TP_DATA);
-	}
-
-	/**
-	 * 	Create a basic InstallableUnitFragment with the given attributes. 
-	 * The self and fragment provided capabilities are added to the IU.
-	 */
-	public static IInstallableUnitFragment createIUFragment(IInstallableUnit host, String name, Version version, RequiredCapability[] required, TouchpointType tpType, TouchpointData tpData) {
-		InstallableUnitFragmentDescription fragment = new InstallableUnitFragmentDescription();
-		fragment.setId(name);
-		fragment.setVersion(version);
-		fragment.setProperty(IInstallableUnit.PROP_TYPE_FRAGMENT, Boolean.TRUE.toString());
-		fragment.setRequiredCapabilities(required);
-		fragment.setTouchpointType(tpType);
-		if (tpData != null)
-			fragment.addTouchpointData(tpData);
-		if (host != null) {
-			VersionRange hostRange = new VersionRange(host.getVersion(), true, host.getVersion(), true);
-			fragment.setHost(new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, host.getId(), hostRange, null, false, false)});
-		}
-		return MetadataFactory.createInstallableUnitFragment(fragment);
-	}
-
-	public static IPlanner createPlanner() {
-		return (IPlanner) ServiceHelper.getService(TestActivator.getContext(), IPlanner.class.getName());
-	}
-
-	/**
-	 * Creates and returns a required capability with the provided attributes.
-	 */
-	protected static RequiredCapability[] createRequiredCapabilities(String namespace, String name, String filter) {
-		return createRequiredCapabilities(namespace, name, ANY_VERSION, filter);
-	}
-
-	/**
-	 * Creates and returns a required capability with the provided attributes.
-	 */
-	protected static RequiredCapability[] createRequiredCapabilities(String namespace, String name, VersionRange range, String filter) {
-		return new RequiredCapability[] {MetadataFactory.createRequiredCapability(namespace, name, range, filter, false, false)};
-	}
-
-	public static boolean delete(File file) {
-		if (!file.exists())
-			return true;
-		if (file.isDirectory()) {
-			File[] children = file.listFiles();
-			for (int i = 0; i < children.length; i++)
-				delete(children[i]);
-		}
-		return file.delete();
-	}
-
-	/**
-	 * 	Compare two 2-dimensional arrays of strings for equality
-	 */
-	protected static boolean equal(String[][] tuples0, String[][] tuples1) {
-		if (tuples0.length != tuples1.length)
-			return false;
-		for (int i = 0; i < tuples0.length; i++) {
-			String[] tuple0 = tuples0[i];
-			String[] tuple1 = tuples1[i];
-			if (tuple0.length != tuple1.length)
-				return false;
-			for (int j = 0; j < tuple0.length; j++) {
-				if (!tuple0[j].equals(tuple1[j]))
-					return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Fails the test due to the given throwable.
-	 */
-	public static void fail(String message, Throwable e) {
-		// If the exception is a CoreException with a multistatus
-		// then print out the multistatus so we can see all the info.
-		if (e instanceof CoreException) {
-			IStatus status = ((CoreException) e).getStatus();
-			//if the status does not have an exception, print the stack for this one
-			if (status.getException() == null)
-				e.printStackTrace();
-			write(status, 0);
-		} else
-			e.printStackTrace();
-		fail(message + ": " + e);
-	}
-
-	public static Iterator getInstallableUnits(IProfile profile2) {
-		return profile2.query(InstallableUnitQuery.ANY, new Collector(), null).iterator();
-	}
-
-	/**
-	 * 	Get the 'self' capability for the given installable unit.
-	 */
-	protected static ProvidedCapability getSelfCapability(IInstallableUnit iu) {
-		return getSelfCapability(iu.getId(), iu.getVersion());
-	}
-
-	/**
-	 * 	Get the 'self' capability for an installable unit with the give id and version.
-	 */
-	private static ProvidedCapability getSelfCapability(String installableUnitId, Version installableUnitVersion) {
-		return MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, installableUnitId, installableUnitVersion);
-	}
-
-	private static void indent(OutputStream output, int indent) {
-		for (int i = 0; i < indent; i++)
-			try {
-				output.write("\t".getBytes());
-			} catch (IOException e) {
-				// ignore
-			}
-	}
-
-	public static void printProfile(IProfile profile) {
-		boolean containsIU = false;
-		for (Iterator iterator = getInstallableUnits(profile); iterator.hasNext();) {
-			System.out.println(iterator.next());
-			containsIU = true;
-		}
-		if (!containsIU)
-			System.out.println("No iu");
-	}
-
-	private static void write(IStatus status, int indent) {
-		PrintStream output = System.out;
-		indent(output, indent);
-		output.println("Severity: " + status.getSeverity());
-
-		indent(output, indent);
-		output.println("Plugin ID: " + status.getPlugin());
-
-		indent(output, indent);
-		output.println("Code: " + status.getCode());
-
-		indent(output, indent);
-		output.println("Message: " + status.getMessage());
-
-		if (status.getException() != null) {
-			indent(output, indent);
-			output.print("Exception: ");
-			status.getException().printStackTrace(output);
-		}
-
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; i++)
-				write(children[i], indent + 1);
-		}
-	}
-
-	public AbstractProvisioningTest() {
-		super("");
-	}
-
-	public AbstractProvisioningTest(String name) {
-		super(name);
-	}
-
-	protected void assertEquals(String message, byte[] expected, byte[] actual) {
-		if (expected == null && actual == null)
-			return;
-		if (expected == null)
-			fail(message + " expected null but was: " + actual);
-		if (actual == null)
-			fail(message + " array is unexpectedly null");
-		if (expected.length != actual.length)
-			fail(message + " expected array length:<" + expected.length + "> but was:<" + actual.length + ">");
-		for (int i = 0; i < expected.length; i++)
-			assertEquals(message + " arrays differ at position:<" + i + ">", expected[i], actual[i]);
-	}
-
-	protected void assertEquals(String message, Object[] expected, Object[] actual) {
-		if (expected == null && actual == null)
-			return;
-		if (expected == null)
-			fail(message + " expected null but was: " + actual);
-		if (actual == null)
-			fail(message + " array is unexpectedly null");
-		if (expected.length != actual.length)
-			fail(message + " expected array length:<" + expected.length + "> but was:<" + actual.length + ">");
-		for (int i = 0; i < expected.length; i++)
-			assertEquals(message + " arrays differ at position:<" + i + ">", expected[i], actual[i]);
-	}
-
-	/**
-	 * Creates a profile with the given name. Ensures that no such profile
-	 * already exists.  The returned profile will be removed automatically
-	 * in the tearDown method.
-	 */
-	protected IProfile createProfile(String name) {
-		return createProfile(name, null, null);
-	}
-
-	/**
-	 * Creates a profile with the given name. Ensures that no such profile
-	 * already exists.  The returned profile will be removed automatically
-	 * in the tearDown method.
-	 */
-	protected IProfile createProfile(String name, String parentId) {
-		return createProfile(name, parentId, null);
-	}
-
-	protected IProfile createProfile(String name, String parentId, Map properties) {
-		//remove any existing profile with the same name
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(TestActivator.getContext(), IProfileRegistry.class.getName());
-		profileRegistry.removeProfile(name);
-		//create and return a new profile
-		return profileRegistry.addProfile(name, properties, parentId);
-	}
-
-	protected IProgressMonitor getMonitor() {
-		return new NullProgressMonitor();
-	}
-
-	protected IProfile getProfile(String profileId) {
-		//remove any existing profile with the same name
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(TestActivator.getContext(), IProfileRegistry.class.getName());
-		return profileRegistry.getProfile(profileId);
-	}
-
-	/**
-	 * Returns a resolved IU corresponding to the given IU, with no attached fragments.
-	 */
-	protected IInstallableUnit createResolvedIU(IInstallableUnit unit) {
-		return MetadataFactory.createResolvedInstallableUnit(unit, new IInstallableUnitFragment[0]);
-	}
-
-	/**
-	 * Adds a test metadata repository to the system that provides the given units. 
-	 * The repository will automatically be removed in the tearDown method.
-	 */
-	protected void createTestMetdataRepository(IInstallableUnit[] units) {
-		IMetadataRepository repo = new TestMetadataRepository(units);
-		MetadataRepositoryManager repoMan = (MetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-		assertNotNull(repoMan);
-		repoMan.addRepository(repo);
-		metadataRepos.add(repo);
-	}
-
-	public static String getUniqueString() {
-		return System.currentTimeMillis() + "-" + Math.random();
-	}
-
-	public static File getTempFolder() {
-		String tempDir = System.getProperty("java.io.tmpdir");
-		File folder = new File(tempDir, getUniqueString());
-		delete(folder);
-		folder.mkdirs();
-		return folder;
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		//remove all metadata repositories created by this test
-		IMetadataRepositoryManager repoMan = (IMetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-		if (!metadataRepos.isEmpty()) {
-			for (Iterator it = metadataRepos.iterator(); it.hasNext();) {
-				IMetadataRepository repo = (IMetadataRepository) it.next();
-				repoMan.removeRepository(repo.getLocation());
-			}
-			metadataRepos.clear();
-		}
-		//remove all profiles created by this test
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(TestActivator.getContext(), IProfileRegistry.class.getName());
-		for (Iterator it = profilesToRemove.iterator(); it.hasNext();) {
-			IProfile toRemove = (IProfile) it.next();
-			profileRegistry.removeProfile(toRemove.getProfileId());
-		}
-		profilesToRemove.clear();
-		//See bug 209069 - currently no way to persist install registry changes or clear the metadata cache
-		//		IMetadataRepository cache = MetadataCache.getCacheInstance((MetadataRepositoryManager) repoMan);
-		//		cache.removeAll();
-	}
-
-	/*
-	 * Look up and return a file handle to the given entry in the bundle.
-	 */
-	protected File getTestData(String message, String entry) {
-		if (entry == null)
-			fail(message + " entry is null.");
-		URL base = TestActivator.getContext().getBundle().getEntry(entry);
-		if (base == null)
-			fail(message + " entry not found in bundle: " + entry);
-		try {
-			return new File(FileLocator.toFileURL(base).getPath());
-		} catch (IOException e) {
-			fail(message, e);
-		}
-		// avoid compile error... should never reach this code
-		return null;
-	}
-
-	protected void assertInstallOperand(ProvisioningPlan plan, IInstallableUnit iu) {
-		Operand[] ops = plan.getOperands();
-		for (int i = 0; i < ops.length; i++) {
-			if (ops[i] instanceof InstallableUnitOperand) {
-				InstallableUnitOperand iuOp = (InstallableUnitOperand) ops[i];
-				if (iuOp.second().equals(iu))
-					return;
-			}
-		}
-		fail("Can't find " + iu + " in the plan");
-	}
-
-	protected void assertNoOperand(ProvisioningPlan plan, IInstallableUnit iu) {
-		Operand[] ops = plan.getOperands();
-		for (int i = 0; i < ops.length; i++) {
-			if (ops[i] instanceof InstallableUnitOperand) {
-				InstallableUnitOperand iuOp = (InstallableUnitOperand) ops[i];
-				if (iuOp.second() != null && iuOp.second().equals(iu))
-					fail(iu + " should not be present in this plan.");
-				if (iuOp.first() != null && iuOp.first().equals(iu))
-					fail(iu + " should not be present in this plan.");
-			}
-		}
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		MetadataRepositoryManager repoMan = (MetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-		URL[] repos = repoMan.getKnownRepositories(MetadataRepositoryManager.REPOSITORIES_ALL);
-		for (int i = 0; i < repos.length; i++) {
-			repoMan.removeRepository(repos[i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java
deleted file mode 100644
index a002328..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AutomatedTests.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests;
-
-import junit.framework.*;
-
-/**
- * This is the master test suite for all automated provisioning tests. It runs every test
- * that is suitable for running in an automated fashion as part of a build. Some
- * tests may be excluded if they require special setup (such as generating metadata).
- */
-public class AutomatedTests extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AutomatedTests.class.getName());
-		suite.addTest(org.eclipse.equinox.p2.tests.artifact.optimizers.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.artifact.processors.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.artifact.repository.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.artifact.repository.processing.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.director.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.download.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.engine.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.generator.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.metadata.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.metadata.repository.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.planner.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.sar.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.directorywatcher.AllTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.simpleconfigurator.SimpleConfiguratorTests.suite());
-		suite.addTest(org.eclipse.equinox.p2.tests.updatesite.AllTests.suite());
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ManualTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ManualTests.java
deleted file mode 100644
index f73eb38..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ManualTests.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests;
-
-import junit.framework.*;
-
-/**
- * This is the master test suite for all automated provisioning tests that require some
- * manual set. These tests can't be run automatically as part of a build.
- */
-public class ManualTests extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AutomatedTests.class.getName());
-		suite.addTestSuite(org.eclipse.equinox.p2.tests.full.DirectorTest.class);
-		return suite;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestActivator.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestActivator.java
deleted file mode 100644
index 8b43ee4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestActivator.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests;
-
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-public class TestActivator implements BundleActivator {
-	public static final String PI_PROV_TESTS = "org.eclipse.equinox.p2.test";
-	public static BundleContext context;
-	private static PackageAdmin packageAdmin = null;
-	private static ServiceReference packageAdminRef = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		TestActivator.context = context;
-		packageAdminRef = context.getServiceReference(PackageAdmin.class.getName());
-		packageAdmin = (PackageAdmin) context.getService(packageAdminRef);
-
-		//This is a hack because the junit plugin launch config do not allow to start bundles
-		getBundle("org.eclipse.equinox.p2.exemplarysetup").start();
-		getBundle("org.eclipse.equinox.frameworkadmin.equinox").start();
-		getBundle("org.eclipse.equinox.simpleconfigurator.manipulator").start();
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		TestActivator.context = null;
-	}
-
-	public static Bundle getBundle(String symbolicName) {
-		if (packageAdmin == null)
-			return null;
-		Bundle[] bundles = packageAdmin.getBundles(symbolicName, null);
-		if (bundles == null)
-			return null;
-		//Return the first bundle that is not installed or uninstalled
-		for (int i = 0; i < bundles.length; i++) {
-			if ((bundles[i].getState() & (Bundle.INSTALLED | Bundle.UNINSTALLED)) == 0) {
-				return bundles[i];
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java
deleted file mode 100644
index 71f9416..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import junit.framework.Assert;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRequest;
-import org.eclipse.equinox.internal.p2.artifact.repository.Transport;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.RepositoryCreationException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.AbstractArtifactRepository;
-
-/**
- * A simple artifact repository implementation used for testing purposes.
- * All artifacts are kept in memory.
- */
-public class TestArtifactRepository extends AbstractArtifactRepository {
-	private static final String SCHEME = "testartifactrepo";
-	private static final String NAME = "ATestArtifactRepository"; //$NON-NLS-1$
-	private static final String TYPE = "testartifactrepo"; //$NON-NLS-1$
-	private static final String VERSION = "1"; //$NON-NLS-1$
-	private static final String PROVIDER = "org.eclipse"; //$NON-NLS-1$
-	private static final String DESCRIPTION = "A Test Artifact Repository"; //$NON-NLS-1$
-
-	/**
-	 * Map of IArtifactKey -> String (location)
-	 */
-	Map keysToLocations = new HashMap();
-	/**
-	 * Map of String (location) -> byte[] (contents)
-	 */
-	Map locationsToContents = new HashMap();
-
-	/**
-	 * 	Set of artifact descriptors
-	 */
-	Set artifactDescriptors = new HashSet();
-
-	Transport testhandler = new Transport() {
-		public IStatus download(String toDownload, OutputStream target, IProgressMonitor pm) {
-			byte[] contents = (byte[]) locationsToContents.get(toDownload);
-			if (contents == null)
-				Assert.fail("Attempt to download missing artifact in TestArtifactRepository: " + toDownload);
-			try {
-				target.write(contents);
-			} catch (IOException e) {
-				e.printStackTrace();
-				Assert.fail("Unexpected exception in TestArtifactRepository" + e.getMessage());
-			}
-			return Status.OK_STATUS;
-		}
-	};
-
-	public TestArtifactRepository() {
-		super(NAME, TYPE, VERSION, null, DESCRIPTION, PROVIDER);
-	}
-
-	public void addArtifact(IArtifactKey key, byte[] contents) {
-		String location = key.toString();
-		keysToLocations.put(key, location);
-		locationsToContents.put(location, contents);
-	}
-
-	public URI getArtifact(IArtifactKey key) {
-		String location = (String) keysToLocations.get(key);
-		if (location == null)
-			return null;
-		try {
-			return new URI(SCHEME, location, null);
-		} catch (URISyntaxException e) {
-			Assert.fail("Invalid URI in TestArtifactRepository: " + e.getMessage());
-			return null;
-		}
-	}
-
-	public IArtifactKey[] getArtifactKeys() {
-		return (IArtifactKey[]) keysToLocations.keySet().toArray(new IArtifactKey[keysToLocations.keySet().size()]);
-	}
-
-	private IStatus getArtifact(ArtifactRequest request, IProgressMonitor monitor) {
-		request.setSourceRepository(this);
-		request.perform(monitor);
-		return request.getResult();
-	}
-
-	public IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor) {
-		SubMonitor subMonitor = SubMonitor.convert(monitor, requests.length);
-		try {
-			MultiStatus overallStatus = new MultiStatus(TestActivator.PI_PROV_TESTS, IStatus.OK, null, null);
-			for (int i = 0; i < requests.length; i++) {
-				overallStatus.add(getArtifact((ArtifactRequest) requests[i], subMonitor.newChild(1)));
-			}
-			return (monitor.isCanceled() ? Status.CANCEL_STATUS : overallStatus);
-		} finally {
-			subMonitor.done();
-		}
-	}
-
-	public void initialize(URL repoURL, InputStream descriptorFile) throws RepositoryCreationException {
-		location = repoURL;
-	}
-
-	public boolean contains(IArtifactDescriptor descriptor) {
-		return keysToLocations.get(descriptor.getArtifactKey()) != null;
-	}
-
-	public boolean contains(IArtifactKey key) {
-		return keysToLocations.get(key) != null;
-	}
-
-	public IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		ProcessingStepHandler handler = new ProcessingStepHandler();
-		destination = handler.createAndLink(descriptor.getProcessingSteps(), null, destination, monitor);
-		testhandler.download((String) keysToLocations.get(descriptor.getArtifactKey()), destination, monitor);
-		return Status.OK_STATUS;
-	}
-
-	public IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key) {
-		if (!contains(key))
-			return null;
-		return new IArtifactDescriptor[] {new ArtifactDescriptor(key)};
-	}
-
-	public void addDescriptor(IArtifactDescriptor descriptor) {
-		((ArtifactDescriptor) descriptor).setRepository(this);
-		artifactDescriptors.add(descriptor);
-		keysToLocations.put(descriptor.getArtifactKey(), null);
-	}
-
-	public void removeDescriptor(IArtifactDescriptor descriptor) {
-		removeDescriptor(descriptor.getArtifactKey());
-	}
-
-	public void removeDescriptor(IArtifactKey key) {
-		for (Iterator iter = artifactDescriptors.iterator(); iter.hasNext();) {
-			IArtifactDescriptor nextDescriptor = (IArtifactDescriptor) iter.next();
-			if (key.equals(nextDescriptor.getArtifactKey())) {
-				artifactDescriptors.remove(nextDescriptor);
-			}
-		}
-		if (keysToLocations.containsKey(key)) {
-			String theLocation = (String) keysToLocations.get(key);
-			locationsToContents.remove(theLocation);
-			keysToLocations.remove(key);
-		}
-	}
-
-	public void removeAll() {
-		artifactDescriptors.clear();
-		keysToLocations.clear();
-		locationsToContents.clear();
-	}
-
-	public boolean isModifiable() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestData.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestData.java
deleted file mode 100644
index fbd1d89..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestData.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *  Red Hat, Inc. (Andrew Overholt) - add getFile method
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import junit.framework.Assert;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-
-/**
- * <code>TestData</code> helps with handling of test data.
- */
-public class TestData {
-
-	private static final String TEST_DATA_ROOT_FOLDER = "testData";
-	private static final String PREFIX_SEPERATOR = "~";
-
-	/**
-	 * Get an input stream from the resource testDataName within the folder 
-	 * testDataFolder of the testData folder of this project.
-	 * @param testDataFolder
-	 * @param testDataName
-	 * @return input stream for the test data
-	 * @throws IOException
-	 */
-	public static InputStream get(String testDataFolder, String testDataName) throws IOException {
-		return new BufferedInputStream(TestActivator.getContext().getBundle().getEntry(TEST_DATA_ROOT_FOLDER + "/" + testDataFolder + "/" + testDataName).openStream());
-	}
-
-	/**
-	 * Get a File from the resource testDataName within the folder 
-	 * testDataFolder of the testData folder of this project.
-	 * @param testDataFolder
-	 * @return test data File
-	 * @throws IOException
-	 */
-	public static File getFile(String testDataFolder, String testDataName) throws IOException {
-		return new File(FileLocator.toFileURL(TestActivator.getContext().getBundle().getEntry(TEST_DATA_ROOT_FOLDER + "/" + testDataFolder + "/" + testDataName)).getPath());
-	}
-
-	/**
-	 * Create a temporary file for the test data. The temporary file will be deleted 
-	 * when the jvm exists. If testDataName contains an extension this extension will
-	 * be used as suffix for the temporary file.
-	 * @param testDataFolder
-	 * @param testDataName
-	 * @return temporary file with test data
-	 * @throws IOException
-	 */
-	public static File getTempFile(String testDataFolder, String testDataName) throws IOException {
-		File temp = createTempFile(testDataName);
-		OutputStream out = new FileOutputStream(temp);
-		FileUtils.copyStream(get(testDataFolder, testDataName), true, out, true);
-		return temp;
-	}
-
-	/**
-	 * Create a temporary file. This file will be deleted if the jvm exits. 
-	 * If testDataName contains an extension this extension will be used as 
-	 * suffix for the temporary file.
-	 * @param testDataName
-	 * @return temporary file
-	 * @throws IOException
-	 */
-	public static File createTempFile(String testDataName) throws IOException {
-		int i = testDataName.lastIndexOf('.');
-		File temp = (i == -1) ? File.createTempFile(testDataName + PREFIX_SEPERATOR, ".tmp") : File.createTempFile(testDataName.substring(0, i) + PREFIX_SEPERATOR, testDataName.substring(i));
-		temp.deleteOnExit();
-		return temp;
-	}
-
-	/**
-	 * Assert equality of files.
-	 * @param expected
-	 * @param actual
-	 * @throws IOException
-	 */
-	public static void assertEquals(File expected, File actual) throws IOException {
-		Assert.assertEquals("Files have different lengths.", expected.length(), actual.length());
-		TestData.assertEquals(new BufferedInputStream(new FileInputStream(expected)), new BufferedInputStream(new FileInputStream(actual)));
-	}
-
-	/**
-	 * Assert equality of input streams.
-	 * @param expected
-	 * @param actual
-	 * @throws IOException
-	 */
-	public static void assertEquals(InputStream expected, InputStream actual) throws IOException {
-		try {
-			int readExpected = 0;
-			int readActual = 0;
-			int count = 0;
-			while (readActual != -1 && readExpected != -1) {
-				readActual = actual.read();
-				readExpected = expected.read();
-				Assert.assertEquals("Different bytes at " + count, readExpected, readActual);
-				count++;
-			}
-		} finally {
-			if (expected != null)
-				expected.close();
-			if (actual != null)
-				actual.close();
-		}
-	}
-
-	/**
-	 * Assert equality of zip input streams.
-	 * @param input1
-	 * @param input2
-	 * @throws IOException
-	 */
-	public static void assertEquals(ZipInputStream input1, ZipInputStream input2) throws IOException {
-		Map jar1 = getEntries(input1);
-		Map jar2 = getEntries(input2);
-		for (Iterator i = jar1.keySet().iterator(); i.hasNext();) {
-			String name = (String) i.next();
-			Object[] file1 = (Object[]) jar1.get(name);
-			Object[] file2 = (Object[]) jar2.remove(name);
-			Assert.assertNotNull(file2);
-
-			ZipEntry entry1 = (ZipEntry) file1[0];
-			ZipEntry entry2 = (ZipEntry) file2[0];
-			// compare the entries
-			Assert.assertTrue(entry1.getName().equals(entry2.getName()));
-			Assert.assertTrue(entry1.getSize() == entry2.getSize());
-			//	TODO for now skip over the timestamp as they seem to be different
-			// assertTrue(entry1.getTime() == entry2.getTime());
-			Assert.assertTrue(entry1.isDirectory() == entry2.isDirectory());
-			Assert.assertTrue(entry1.getCrc() == entry2.getCrc());
-			Assert.assertTrue(entry1.getMethod() == entry2.getMethod());
-
-			// check the content of the entries
-			Assert.assertTrue(Arrays.equals((byte[]) file1[1], (byte[]) file2[1]));
-		}
-
-		// ensure that we have consumed all of the entries in the second JAR
-		Assert.assertTrue(jar2.size() == 0);
-	}
-
-	private static Map getEntries(ZipInputStream input) throws IOException {
-		Map result = new HashMap();
-		while (true) {
-			ZipEntry entry = input.getNextEntry();
-			if (entry == null)
-				return result;
-
-			ByteArrayOutputStream content = new ByteArrayOutputStream();
-			FileUtils.copyStream(input, false, content, true);
-			input.closeEntry();
-			result.put(entry.getName(), new Object[] {entry, content.toByteArray()});
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestMetadataRepository.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestMetadataRepository.java
deleted file mode 100644
index 0a90349..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestMetadataRepository.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import junit.framework.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository;
-import org.osgi.framework.Version;
-
-/**
- * A simple metadata repository used for testing purposes.  All metadata
- * is kept in memory.
- */
-public class TestMetadataRepository extends AbstractMetadataRepository {
-
-	private static final String DESCRIPTION = "A Test Metadata Repository"; //$NON-NLS-1$
-	private static final String NAME = "ATestMetadataRepository"; //$NON-NLS-1$
-	private static final String PROVIDER = "org.eclipse"; //$NON-NLS-1$
-	private static final String TYPE = "testmetadatarepo"; //$NON-NLS-1$
-	private static final String VERSION = "1"; //$NON-NLS-1$
-	private final List units = new ArrayList();
-
-	private static URL createLocation() {
-		try {
-			//Just need a unique URL - we don't need to read/write this location
-			return new URL("http://TestMetadataRepository.com/" + Long.toString(System.currentTimeMillis()));
-		} catch (MalformedURLException e) {
-			Assert.fail(e.getMessage());
-		}
-		return null;
-	}
-
-	public TestMetadataRepository(IInstallableUnit[] ius) {
-		super(NAME, TYPE, VERSION, createLocation(), DESCRIPTION, PROVIDER);
-		units.addAll(Arrays.asList(ius));
-	}
-
-	public void addInstallableUnits(IInstallableUnit[] toAdd) {
-		units.addAll(Arrays.asList(toAdd));
-	}
-
-	public IInstallableUnit find(String id, String versionString) {
-		Iterator result = query(new InstallableUnitQuery(id, new Version(versionString)), new Collector(), null).iterator();
-		return (IInstallableUnit) (result.hasNext() ? result.next() : null);
-	}
-
-	public Object getAdapter(Class adapter) {
-		if (adapter == TestMetadataRepository.class || adapter == IMetadataRepository.class || adapter == IRepository.class) {
-			return this;
-		}
-		return null;
-	}
-
-	public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
-		return query.perform(units.iterator(), collector);
-	}
-
-	public void removeAll() {
-		units.clear();
-	}
-
-	public boolean removeInstallableUnits(IInstallableUnit[] toRemove) {
-		boolean modified = false;
-		for (int i = 0; i < toRemove.length; i++) {
-			modified |= units.remove(toRemove[i]);
-		}
-		return modified;
-	}
-
-	public void initialize(RepositoryState state) {
-		this.name = state.Name;
-		this.type = state.Type;
-		this.version = state.Version.toString();
-		this.provider = state.Provider;
-		this.description = state.Description;
-		this.location = state.Location;
-		this.properties = state.Properties;
-		this.units.addAll(Arrays.asList(state.Units));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java
deleted file mode 100644
index 194be73..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/AllTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(JBDiffStepTest.class);
-		suite.addTestSuite(JBDiffZipStepTest.class);
-		suite.addTestSuite(Pack200OptimizerTest.class);
-		suite.addTestSuite(JarDeltaOptimizerTest.class);
-		suite.addTestSuite(Bug209233Test.class);
-		return suite;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java
deleted file mode 100644
index 44fac34..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Bug209233Test.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import ie.wombat.jbdiff.JBDiff;
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.p2.tests.TestData;
-
-/**
- * ... <code>Bug209233Test</code> ...
- */
-public class Bug209233Test extends TestCase {
-
-	//	public void testGenerateTestDataDiff() throws IOException {
-	//		File predecessor = TestData.getTempFile("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-	//		File current = TestData.getTempFile("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-	//		File diff = File.createTempFile("org.eclipse.jdt_3.2.0-3.3.0~", ".jbdiff");
-	//		JBDiff.bsdiff(predecessor, current, diff);
-	//	}
-
-	public void testDiffJdt32SarToJdt33Sar() throws IOException {
-
-		InputStream current = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-		ByteArrayOutputStream currentBS = new ByteArrayOutputStream();
-		FileUtils.copyStream(current, true, currentBS, true);
-		byte[] currentBytes = currentBS.toByteArray();
-
-		InputStream predecessor = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-		ByteArrayOutputStream predecessorBS = new ByteArrayOutputStream();
-		FileUtils.copyStream(predecessor, true, predecessorBS, true);
-		byte[] predecessorBytes = predecessorBS.toByteArray();
-
-		byte[] actualBytes = JBDiff.bsdiff(predecessorBytes, predecessorBytes.length, currentBytes, currentBytes.length);
-
-		InputStream expected = TestData.get("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
-		ByteArrayOutputStream expectedBS = new ByteArrayOutputStream();
-		FileUtils.copyStream(expected, true, expectedBS, true);
-		byte[] expectedBytes = expectedBS.toByteArray();
-
-		assertEquals("Different lengths.", expectedBytes.length, actualBytes.length);
-		assertTrue("Different bytes.", Arrays.equals(expectedBytes, actualBytes));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java
deleted file mode 100644
index 432c67d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffStepTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff.JBDiffStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestData;
-import org.eclipse.equinox.p2.tests.artifact.processors.ArtifactRepositoryMock;
-import org.osgi.framework.Version;
-
-/**
- * Test the <code>JBDiffStepTest</code> processing step.
- */
-public class JBDiffStepTest extends TestCase {
-
-	//	public void testGenerateTestDataExe32To33() throws IOException {
-	//		File exe32 = TestData.getTempFile("optimizers", "eclipse-3.2.exe");
-	//		File exe33 = TestData.getTempFile("optimizers", "eclipse-3.3.exe");
-	//		File diff = File.createTempFile("eclipse-3.2-3.3~", ".jbdiff");
-	//		JBDiff.bsdiff(exe32, exe33, diff);
-	//	}
-
-	/**
-	 * Test diffing the launcher.
-	 * 
-	 * @throws IOException
-	 */
-	public void testDiffEclipseExe32to33() throws IOException {
-
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/eclipse-3.2.exe");
-		MockableJBDiffStep differ = new MockableJBDiffStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		differ.initialize(stepDescriptor, descriptor);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		differ.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "eclipse-3.3.exe");
-		FileUtils.copyStream(inputStream, true, differ, true);
-
-		inputStream = TestData.get("optimizers", "eclipse-3.2-3.3.jbdiff");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-		assertTrue(Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBDiffStep extends JBDiffStep {
-		public MockableJBDiffStep(IArtifactRepository repository) {
-			super(repository);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java
deleted file mode 100644
index cc04242..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JBDiffZipStepTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import java.io.*;
-import java.util.Arrays;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.jbdiff.JBDiffZipStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestData;
-import org.eclipse.equinox.p2.tests.artifact.processors.ArtifactRepositoryMock;
-import org.osgi.framework.Version;
-
-/**
- * Test the <code>JBDiffZipTest</code> processing step.
- */
-public class JBDiffZipStepTest extends AbstractProvisioningTest {
-
-	/**
-	 * Test diffing the <b>normalized</b> jars. This is indicated by the extension ".njar".
-	 * 
-	 * @throws IOException
-	 */
-	public void testDiffJdt32to33() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		MockableJBDiffZipStep differ = new MockableJBDiffZipStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		differ.initialize(stepDescriptor, descriptor);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		differ.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		FileUtils.copyStream(inputStream, true, differ, true);
-
-		inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		assertTrue("Different diff bytes.", Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBDiffZipStep extends JBDiffZipStep {
-		public MockableJBDiffZipStep(IArtifactRepository repository) {
-			super(repository);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java
deleted file mode 100644
index abed506..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/JarDeltaOptimizerTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * 	IBM Corporation - ongoing development
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import java.io.*;
-import java.util.zip.ZipInputStream;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.jardelta.JarDeltaOptimizerStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestData;
-import org.eclipse.equinox.p2.tests.artifact.processors.ArtifactRepositoryMock;
-import org.osgi.framework.Version;
-
-/**
- * Test the <code>JarDelta</code> processing step.
- */
-public class JarDeltaOptimizerTest extends TestCase {
-
-	//	public void testPrepare() throws IOException {
-	//		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/testdata_1.0.0.1.jar");
-	//		ProcessingStep step = new MockableJarDeltaOptimizerStep(repoMock);
-	//		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0.0.1", true);
-	//		IArtifactKey key = new ArtifactKey("ns", "cl", "id1", new Version("1.0.0.2"));
-	//		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-	//		step.initialize(stepDescriptor, descriptor);
-	//		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-	//		step.link(destination, new NullProgressMonitor());
-	//
-	//		InputStream inputStream = TestActivator.getContext().getBundle().getEntry("testData/optimizers/testdata_1.0.0.2.jar").openStream();
-	//		FileUtils.copyStream(inputStream, true, step, true);
-	//		destination.close();
-	//
-	//		inputStream = new ByteArrayInputStream(destination.toByteArray());
-	//		FileOutputStream file = new FileOutputStream("d:/jardelta.jar");
-	//		FileUtils.copyStream(inputStream, true, file, true);
-	//	}
-
-	public void testOptimization() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/testdata_1.0.0.1.jar");
-		ProcessingStep step = new MockableJarDeltaOptimizerStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0.0.1", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.0.0.2"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		step.initialize(stepDescriptor, descriptor);
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		step.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "testdata_1.0.0.2.jar");
-		FileUtils.copyStream(inputStream, true, step, true);
-		destination.close();
-
-		inputStream = TestData.get("optimizers", "testdata_1.0.0.1-2.jar");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		ZipInputStream expectedJar = new ZipInputStream(new ByteArrayInputStream(expected.toByteArray()));
-		ZipInputStream testJar = new ZipInputStream(new ByteArrayInputStream(destination.toByteArray()));
-		TestData.assertEquals(expectedJar, testJar);
-		expectedJar.close();
-		testJar.close();
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJarDeltaOptimizerStep extends JarDeltaOptimizerStep {
-		public MockableJarDeltaOptimizerStep(IArtifactRepository repository) {
-			super(repository);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java
deleted file mode 100644
index adfbf0a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/optimizers/Pack200OptimizerTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.optimizers;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.optimizers.pack200.Pack200OptimizerStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.Bundle;
-
-public class Pack200OptimizerTest extends TestCase {
-
-	public Pack200OptimizerTest(String name) {
-		super(name);
-	}
-
-	public Pack200OptimizerTest() {
-		super("");
-	}
-
-	//	public void testPrepare() throws IOException {
-	//		// Setup the step
-	//		ProcessingStep step = new Pack200OptimizerStep();
-	//		FileOutputStream destination = new FileOutputStream("c:/packed.pack.gz");
-	//		step.link(destination, new NullProgressMonitor());
-	//
-	//		// drive the source data through the step
-	//		Bundle bundle = TestActivator.getContext().getBundle();
-	//		InputStream inputStream = bundle.getEntry("testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar").openStream();
-	//		FileUtils.copyStream(inputStream, true, step, true);
-	//
-	//		destination.close();
-	//	}
-
-	public void testPack() throws IOException {
-		// Setup the step
-		ProcessingStep step = new Pack200OptimizerStep();
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		step.link(destination, new NullProgressMonitor());
-
-		// drive the source data through the step
-		Bundle bundle = TestActivator.getContext().getBundle();
-		InputStream inputStream = bundle.getEntry("testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar").openStream();
-		FileUtils.copyStream(inputStream, true, step, true);
-
-		// Get the test data. The Sun 1.6.0_01 JRE produces a different packed file
-		// then the IBM V5 JRE, so both versions of the test data are maintained.
-		// TODO: investigate this? Is the difference spurious? Are there differences
-		//		 in the pack200 results for other JREs? Do we need a more general
-		//		 solution to the problem?
-		String javaVersion = System.getProperty("java.version");
-		boolean is1_6 = (javaVersion.compareTo("1.6") > 0 ? true : false);
-
-		if (!is1_6) {
-			inputStream = bundle.getEntry("testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz").openStream();
-		} else {
-			inputStream = bundle.getEntry("testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz").openStream();
-		}
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		// Compare
-		assertTrue(Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java
deleted file mode 100644
index ab6d5f8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/AllTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(JBPatchStepTest.class);
-		suite.addTestSuite(JBPatchZipStepTest.class);
-		suite.addTestSuite(JarDeltaProcessorTest.class);
-		suite.addTestSuite(Pack200ProcessorTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java
deleted file mode 100644
index 85c85c1..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ArtifactRepositoryMock.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.lang.reflect.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-/**
- * Mock the getArtifact() needed to locate the predecessor.
- */
-public class ArtifactRepositoryMock implements InvocationHandler {
-
-	private String artifactResource;
-
-	public static IArtifactRepository getMock(String artifactResource) {
-		return (IArtifactRepository) Proxy.newProxyInstance(IArtifactRepository.class.getClassLoader(), new Class[] {IArtifactRepository.class}, new ArtifactRepositoryMock(artifactResource));
-	}
-
-	private ArtifactRepositoryMock(String artifactResource) {
-		this.artifactResource = artifactResource;
-	}
-
-	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-		if (!method.getName().equals("getArtifact"))
-			throw new RuntimeException("Unexpected usage!");
-
-		return getArtifact((IArtifactDescriptor) args[0], (OutputStream) args[1], (IProgressMonitor) args[2]);
-	}
-
-	private IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		InputStream inputStream;
-		try {
-			inputStream = TestActivator.getContext().getBundle().getEntry(artifactResource).openStream();
-			FileUtils.copyStream(inputStream, true, destination, true);
-			return Status.OK_STATUS;
-		} catch (IOException e) {
-			return new Status(IStatus.ERROR, TestActivator.PI_PROV_TESTS, ":-(", e);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java
deleted file mode 100644
index 128f247..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchStepTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.processors.jbdiff.JBPatchStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestData;
-import org.osgi.framework.Version;
-
-/**
- * Test the <code>JBPatchStep</code>
- *
- */
-public class JBPatchStepTest extends TestCase {
-
-	public void testPatchEclipseExe32to33() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/eclipse-3.2.exe");
-		ProcessingStep patcher = new MockableJBPatchStep(repoMock);
-		ProcessingStepDescriptor descriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor context = new ArtifactDescriptor(key);
-		patcher.initialize(descriptor, context);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		patcher.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "eclipse-3.2-3.3.jbdiff");
-		FileUtils.copyStream(inputStream, true, patcher, true);
-
-		inputStream = TestData.get("optimizers", "eclipse-3.3.exe");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-		assertTrue(Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBPatchStep extends JBPatchStep {
-		public MockableJBPatchStep(IArtifactRepository repository) {
-			super.repository = repository;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java
deleted file mode 100644
index 58efb35..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JBPatchZipStepTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.util.Arrays;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.processors.jbdiff.JBPatchZipStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestData;
-import org.osgi.framework.Version;
-
-/**
- * Test the <code>JBPatchZipStep</code> processing step.
- */
-public class JBPatchZipStepTest extends AbstractProvisioningTest {
-
-	//	/**
-	//	 * This is a disabled "unit test" that was used to generate the data needed for real test.
-	//	 * @throws IOException
-	//	 */
-	//	public void testGenerateTestData() throws IOException {
-	//
-	//		File sar32 = TestData.getTempFile("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-	//		File sar33 = TestData.getTempFile("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-	//
-	//		File diff = File.createTempFile("org.eclipse.jdt_3.2.0-3.3.0", ".jbdiff");
-	//		JBDiff.bsdiff(sar32, sar33, diff);
-	//	}
-
-	/**
-	 * Test patching the <b>normalized</b> jars. This is indicated by the extension ".njar".
-	 * 
-	 * @throws IOException
-	 */
-	public void testPatchOrgEclipseJdt32to33() throws IOException {
-
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		ProcessingStep patcher = new MockableJBPatchZipStep(repoMock);
-		ProcessingStepDescriptor descriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.1"));
-		ArtifactDescriptor context = new ArtifactDescriptor(key);
-		patcher.initialize(descriptor, context);
-
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		patcher.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
-		FileUtils.copyStream(inputStream, true, patcher, true);
-
-		inputStream = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		assertTrue("Different resulting njar.", Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJBPatchZipStep extends JBPatchZipStep {
-		public MockableJBPatchZipStep(IArtifactRepository repository) {
-			super.repository = repository;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java
deleted file mode 100644
index 85dd261..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/JarDeltaProcessorTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *		compeople AG (Stefan Liebig)
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.util.zip.ZipInputStream;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.processors.jardelta.JarDeltaProcessorStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.ArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.TestData;
-import org.osgi.framework.Version;
-
-public class JarDeltaProcessorTest extends TestCase {
-
-	public JarDeltaProcessorTest(String name) {
-		super(name);
-	}
-
-	public JarDeltaProcessorTest() {
-		super("");
-	}
-
-	public void testProcessing() throws IOException {
-		IArtifactRepository repoMock = ArtifactRepositoryMock.getMock("testData/optimizers/testdata_1.0.0.1.jar");
-		ProcessingStep step = new MockableJarDeltaProcessorStep(repoMock);
-		ProcessingStepDescriptor stepDescriptor = new ProcessingStepDescriptor("id", "ns,cl,id1,1.0.0.1", true);
-		IArtifactKey key = new ArtifactKey("cl", "id1", new Version("1.0.0.2"));
-		ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-		step.initialize(stepDescriptor, descriptor);
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		step.link(destination, new NullProgressMonitor());
-
-		InputStream inputStream = TestData.get("optimizers", "testdata_1.0.0.1-2.jar");
-		FileUtils.copyStream(inputStream, true, step, true);
-		destination.close();
-
-		inputStream = TestData.get("optimizers", "testdata_1.0.0.2.jar");
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		ZipInputStream expectedJar = new ZipInputStream(new ByteArrayInputStream(expected.toByteArray()));
-		ZipInputStream testJar = new ZipInputStream(new ByteArrayInputStream(destination.toByteArray()));
-		TestData.assertEquals(expectedJar, testJar);
-		expectedJar.close();
-		testJar.close();
-	}
-
-	/**
-	 * Need to inject a repository!
-	 */
-	private static class MockableJarDeltaProcessorStep extends JarDeltaProcessorStep {
-		public MockableJarDeltaProcessorStep(IArtifactRepository repository) {
-			super();
-			this.repository = repository;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/Pack200ProcessorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/Pack200ProcessorTest.java
deleted file mode 100644
index 6b1f6b2..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/Pack200ProcessorTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.processors;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.artifact.processors.pack200.Pack200ProcessorStep;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.Bundle;
-
-public class Pack200ProcessorTest extends TestCase {
-
-	public Pack200ProcessorTest(String name) {
-		super(name);
-	}
-
-	public Pack200ProcessorTest() {
-		super("");
-	}
-
-	public void testUnpack() throws IOException {
-		// Setup the processor
-		ProcessingStep step = new Pack200ProcessorStep();
-		ByteArrayOutputStream destination = new ByteArrayOutputStream();
-		step.link(destination, new NullProgressMonitor());
-
-		// drive the source data through the step
-		Bundle bundle = TestActivator.getContext().getBundle();
-		InputStream inputStream = bundle.getEntry("testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz").openStream();
-		FileUtils.copyStream(inputStream, true, step, true);
-
-		// Get the test data
-		inputStream = bundle.getEntry("testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar").openStream();
-		ByteArrayOutputStream expected = new ByteArrayOutputStream();
-		FileUtils.copyStream(inputStream, true, expected, true);
-
-		// Compare
-		assertTrue(Arrays.equals(expected.toByteArray(), destination.toByteArray()));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/AllTests.java
deleted file mode 100644
index 0d20767..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/AllTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository;
-
-import junit.framework.*;
-
-/**
- * Performs all automated artifact repository tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(ArtifactOutputStreamTest.class);
-		// DISABLING TEST UNTIL WE UPDATE REPOSITORY FILES
-		//suite.addTestSuite(JarURLRepositoryTest.class);
-		suite.addTestSuite(FoldersRepositoryTest.class);
-		suite.addTestSuite(SimpleArtifactRepositoryTest.class);
-		return suite;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/ArtifactOutputStreamTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/ArtifactOutputStreamTest.java
deleted file mode 100644
index c3533a2..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/ArtifactOutputStreamTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- * IBM - ongoing maintenance
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository;
-
-import java.io.*;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository;
-import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.ArtifactOutputStream;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.osgi.framework.Version;
-
-public class ArtifactOutputStreamTest extends TestCase {
-
-	private SimpleArtifactRepository sar = null;
-	private ProcessingStep destination = null;
-	private IArtifactKey ak = null;
-	private IArtifactDescriptor ad = null;
-	private ArtifactOutputStream aos = null;
-	private File temp = null;
-	private File tempWritableLocation = null;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		tempWritableLocation = File.createTempFile("artifact", ".repo");
-		tempWritableLocation.delete();
-		tempWritableLocation.mkdirs();
-		sar = new SimpleArtifactRepository("name", tempWritableLocation.toURL());
-		destination = new Destination();
-		ak = new ArtifactKey("classifier", "id", new Version("1.0"));
-		ad = new ArtifactDescriptor(ak);
-		temp = File.createTempFile("ArtifactOutputStreamTest", ".tmp");
-		temp.deleteOnExit();
-		aos = sar.new ArtifactOutputStream(destination, ad, temp);
-		assertNotNull(aos);
-		Destination.ioe = null;
-		Destination.baos = null;
-	}
-
-	protected void tearDown() throws Exception {
-		temp.delete();
-		tempWritableLocation.delete();
-		super.tearDown();
-	}
-
-	public void testStatefullness() {
-		assertTrue(aos instanceof IStateful);
-		assertTrue(aos instanceof ArtifactOutputStream);
-	}
-
-	public void testSingleCloseStreamOkDestinationOk() throws IOException {
-		assertTrue(temp.exists());
-		aos.write(22);
-		aos.close();
-		assertTrue(temp.exists());
-		assertEquals("1", ad.getProperty(IArtifactDescriptor.DOWNLOAD_SIZE));
-	}
-
-	public void testDoubleCloseStreamOkDestinationOk() throws IOException {
-		assertTrue(temp.exists());
-		aos.write(22);
-		aos.close();
-		assertTrue(temp.exists());
-		assertEquals("1", ad.getProperty(IArtifactDescriptor.DOWNLOAD_SIZE));
-		// tests bug 212476
-		aos.close();
-		assertTrue(temp.exists());
-	}
-
-	public void testSingleCloseStreamNotOkDestinationOk() throws IOException {
-		assertTrue(temp.exists());
-		aos.setStatus(Status.CANCEL_STATUS);
-		aos.close();
-		assertFalse(temp.exists());
-	}
-
-	public void testSingleCloseStreamOkDestinationNotOk() throws IOException {
-		assertTrue(temp.exists());
-		destination.setStatus(Status.CANCEL_STATUS);
-		aos.close();
-		assertFalse(temp.exists());
-	}
-
-	public void testSingleCloseStreamOkDestinationCloseFails() {
-		assertTrue(temp.exists());
-		Destination.ioe = new IOException("Expected");
-		try {
-			aos.close();
-			assertTrue(false);
-		} catch (IOException ioe) {
-			assertTrue(true);
-		} finally {
-			assertFalse(temp.exists());
-		}
-	}
-
-	public void testSingleCloseStreamNotOkDestinationCloseFails() {
-		assertTrue(temp.exists());
-		Destination.ioe = new IOException("Expected");
-		aos.setStatus(Status.CANCEL_STATUS);
-		try {
-			aos.close();
-		} catch (IOException ioe) {
-			assertTrue(false);
-		} finally {
-			assertFalse(temp.exists());
-		}
-	}
-
-	public void testWriteToDestinationStreamOkDestinationOk() throws IOException {
-		Destination.baos = new ByteArrayOutputStream();
-		assertTrue(temp.exists());
-		aos.write(22);
-		aos.close();
-		assertTrue(temp.exists());
-		assertEquals("1", ad.getProperty(IArtifactDescriptor.DOWNLOAD_SIZE));
-		aos.close();
-		assertTrue(temp.exists());
-		assertEquals(1, Destination.baos.toByteArray().length);
-		assertEquals(22, Destination.baos.toByteArray()[0]);
-	}
-
-	static class Destination extends ProcessingStep {
-
-		static IOException ioe = null;
-		static ByteArrayOutputStream baos = null;
-
-		public void close() throws IOException {
-			super.close();
-			if (ioe != null) {
-				throw ioe;
-			}
-		}
-
-		public void write(int b) throws IOException {
-			if (baos != null)
-				baos.write(b);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java
deleted file mode 100644
index b4dc735..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.net.URL;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-public class FoldersRepositoryTest extends TestCase {
-
-	private ServiceReference managerRef;
-	private IArtifactRepositoryManager manager;
-
-	public FoldersRepositoryTest(String name) {
-		super(name);
-	}
-
-	public FoldersRepositoryTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		managerRef = TestActivator.getContext().getServiceReference(IArtifactRepositoryManager.class.getName());
-		manager = (IArtifactRepositoryManager) TestActivator.getContext().getService(managerRef);
-	}
-
-	protected void tearDown() throws Exception {
-		manager = null;
-		TestActivator.getContext().ungetService(managerRef);
-	}
-
-	public void testFolderRepository() throws Exception {
-		String tempDir = System.getProperty("java.io.tmpdir");
-		File testRepo = new File(tempDir, "testRepo");
-		AbstractProvisioningTest.delete(testRepo);
-		testRepo.mkdir();
-
-		manager.removeRepository(testRepo.toURL());
-		IArtifactRepository repo = manager.createRepository(testRepo.toURL(), "testRepo", IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(repo.getLocation());
-		File pluginsFolder = new File(testRepo, "plugins");
-		pluginsFolder.mkdir();
-
-		URL sourceBase = TestActivator.getContext().getBundle().getEntry("/testData/directorywatcher1");
-		File sourceFolder = new File(FileLocator.toFileURL(sourceBase).getPath());
-
-		AbstractProvisioningTest.copy("0.99", sourceFolder, pluginsFolder);
-		FileFilter filter = new FileFilter() {
-
-			public boolean accept(File pathname) {
-				return !pathname.getName().equals("CVS");
-			}
-		};
-		File[] fileList = pluginsFolder.listFiles(filter);
-		assertEquals(2, fileList.length);
-		for (int i = 0; i < fileList.length; i++) {
-			File file = fileList[i];
-			String fileName = file.getName();
-			if (fileName.endsWith(".jar"))
-				fileName = fileName.substring(0, fileName.length() - 4);
-			String identifier = fileName.substring(0, fileName.indexOf('_'));
-			String version = fileName.substring(fileName.indexOf('_') + 1);
-
-			ArtifactKey key = new ArtifactKey("osgi.bundle", identifier, new Version(version));
-			ArtifactDescriptor descriptor = new ArtifactDescriptor(key);
-			if (file.isDirectory())
-				descriptor.setProperty("artifact.folder", "true");
-
-			repo.addDescriptor(descriptor);
-		}
-		IArtifactKey[] keys = repo.getArtifactKeys();
-		assertEquals(2, keys.length);
-		for (int i = 0; i < keys.length; i++) {
-			repo.removeDescriptor(keys[i]);
-		}
-		assertEquals(0, repo.getArtifactKeys().length);
-		assertEquals(0, pluginsFolder.listFiles(filter).length);
-
-		manager.removeRepository(repo.getLocation());
-		AbstractProvisioningTest.delete(testRepo);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLRepositoryTest.java
deleted file mode 100644
index 6289d35..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLRepositoryTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-public class JarURLRepositoryTest extends TestCase {
-
-	private ServiceReference managerRef;
-	private IArtifactRepositoryManager manager;
-
-	public JarURLRepositoryTest(String name) {
-		super(name);
-	}
-
-	public JarURLRepositoryTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		managerRef = TestActivator.getContext().getServiceReference(IArtifactRepositoryManager.class.getName());
-		manager = (IArtifactRepositoryManager) TestActivator.getContext().getService(managerRef);
-	}
-
-	protected void tearDown() throws Exception {
-		manager = null;
-		TestActivator.getContext().ungetService(managerRef);
-	}
-
-	public void testJarURLRepository() throws ProvisionException {
-		URL engineJar = TestActivator.getContext().getBundle().getEntry("/testData/enginerepo.jar");
-		URL jarRepoURL = null;
-		try {
-			jarRepoURL = new URL("jar:" + engineJar.toString() + "!/testData/enginerepo/artifacts.xml");
-		} catch (MalformedURLException e) {
-			fail(e.getMessage());
-		}
-		IArtifactRepository repo = manager.loadRepository(jarRepoURL, null);
-		assertTrue(repo.contains(new ArtifactKey("osgi.bundle", "testdata", new Version("1.0.0.1"))));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java
deleted file mode 100644
index 0faf2b4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/SimpleArtifactRepositoryTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.EclipseInstallGeneratorInfoProvider;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Generator;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-public class SimpleArtifactRepositoryTest extends TestCase {
-
-	public void testGetActualLocation1() throws MalformedURLException {
-		URL base = new URL("http://localhost/artifactRepository");
-		assertEquals(new URL(base + "/artifacts.xml"), SimpleArtifactRepository.getActualLocation(base, false));
-	}
-
-	public void testGetActualLocation2() throws MalformedURLException {
-		URL base = new URL("http://localhost/artifactRepository/");
-		assertEquals(new URL(base + "artifacts.xml"), SimpleArtifactRepository.getActualLocation(base, false));
-	}
-
-	public void testGetActualLocation3() throws MalformedURLException {
-		URL base = new URL("http://localhost/artifactRepository/artifacts.xml");
-		assertEquals(base, SimpleArtifactRepository.getActualLocation(base, false));
-	}
-
-	public void testGetActualLocationCompressed1() throws MalformedURLException {
-		URL base = new URL("http://localhost/artifactRepository");
-		assertEquals(new URL(base + "/artifacts.jar"), SimpleArtifactRepository.getActualLocation(base, true));
-	}
-
-	public void testGetActualLocationCompressed2() throws MalformedURLException {
-		URL base = new URL("http://localhost/artifactRepository/");
-		assertEquals(new URL(base + "artifacts.jar"), SimpleArtifactRepository.getActualLocation(base, true));
-	}
-
-	public void testGetActualLocationCompressed3() throws MalformedURLException {
-		URL base = new URL("http://localhost/artifactRepository/artifacts.jar");
-		assertEquals(base, SimpleArtifactRepository.getActualLocation(base, true));
-	}
-
-	private IArtifactRepositoryManager getArtifactRepositoryManager() {
-		return (IArtifactRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IArtifactRepositoryManager.class.getName());
-	}
-
-	public void testCompressedRepository() throws MalformedURLException, ProvisionException {
-		IArtifactRepositoryManager artifactRepositoryManager = getArtifactRepositoryManager();
-		String tempDir = System.getProperty("java.io.tmpdir");
-		File repoLocation = new File(tempDir, "SimpleArtifactRepositoryTest");
-		IArtifactRepository repo = artifactRepositoryManager.createRepository(repoLocation.toURL(), "artifact name", IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		artifactRepositoryManager.addRepository(repo.getLocation());
-		repo.setProperty(IRepository.PROP_COMPRESSED, "true");
-		EclipseInstallGeneratorInfoProvider provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setArtifactRepository(repo);
-		provider.initialize(repoLocation);
-		provider.setRootVersion("3.3");
-		provider.setRootId("sdk");
-		provider.setFlavor("tooling");
-		new Generator(provider).generate();
-		File files[] = repoLocation.listFiles();
-		boolean jarFilePresent = false;
-		boolean artifactFilePresent = false;
-		for (int i = 0; i < files.length; i++) {
-			if ("artifacts.jar".equalsIgnoreCase(files[i].getName())) {
-				jarFilePresent = true;
-			}
-			if ("artifacts.xml".equalsIgnoreCase(files[i].getName())) {
-				artifactFilePresent = false;
-			}
-		}
-		if (!jarFilePresent)
-			fail("Repository should create JAR for artifact.xml");
-		if (artifactFilePresent)
-			fail("Repository should not create artifact.xml");
-		delete(repoLocation);
-	}
-
-	public void testUncompressedRepository() throws MalformedURLException, ProvisionException {
-		IArtifactRepositoryManager artifactRepositoryManager = getArtifactRepositoryManager();
-		String tempDir = System.getProperty("java.io.tmpdir");
-		File repoLocation = new File(tempDir, "SimpleArtifactRepositoryTest");
-		IArtifactRepository repo = artifactRepositoryManager.createRepository(repoLocation.toURL(), "artifact name", IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		artifactRepositoryManager.addRepository(repo.getLocation());
-		repo.setProperty(IRepository.PROP_COMPRESSED, "false");
-		EclipseInstallGeneratorInfoProvider provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setArtifactRepository(repo);
-		provider.initialize(repoLocation);
-		provider.setRootVersion("3.3");
-		provider.setRootId("sdk");
-		provider.setFlavor("tooling");
-		new Generator(provider).generate();
-		File files[] = repoLocation.listFiles();
-		boolean jarFilePresent = false;
-		boolean artifactFilePresent = false;
-		for (int i = 0; i < files.length; i++) {
-			if ("artifacts.jar".equalsIgnoreCase(files[i].getName())) {
-				jarFilePresent = true;
-			}
-			if ("artifacts.xml".equalsIgnoreCase(files[i].getName())) {
-				artifactFilePresent = true;
-			}
-		}
-		if (jarFilePresent)
-			fail("Repository should not create JAR for artifact.xml");
-		if (!artifactFilePresent)
-			fail("Repository should create artifact.xml");
-		delete(repoLocation);
-	}
-
-	private boolean delete(File file) {
-		if (!file.exists())
-			return true;
-		if (file.isDirectory()) {
-			File[] children = file.listFiles();
-			for (int i = 0; i < children.length; i++)
-				delete(children[i]);
-		}
-		return file.delete();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Adder.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Adder.java
deleted file mode 100644
index 50b7840..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Adder.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*  IBM - continuing development
-*******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository.processing;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-
-public class Adder extends ProcessingStep {
-
-	protected int operand;
-
-	public Adder() {
-		// needed
-	}
-
-	public Adder(int operand) {
-		super();
-		this.operand = operand;
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		try {
-			operand = Integer.valueOf(descriptor.getData()).intValue();
-		} catch (NumberFormatException e) {
-			int code = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-			setStatus(new Status(code, Activator.ID, "Adder operand specification invalid", e));
-			return;
-		}
-	}
-
-	public void write(int b) throws IOException {
-		getDestination().write(b + operand);
-	}
-
-	public void close() throws IOException {
-		super.close();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/AllTests.java
deleted file mode 100644
index 0eb941c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/AllTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository.processing;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(ProcessingStepHandlerTest.class);
-		suite.addTestSuite(ProcessingStepTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ByteShifter.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ByteShifter.java
deleted file mode 100644
index ff6e04e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ByteShifter.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*  IBM - continuing development
-*******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository.processing;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-
-public class ByteShifter extends ProcessingStep {
-
-	protected int operand;
-
-	public ByteShifter() {
-		super();
-	}
-
-	public ByteShifter(int shiftLeft) {
-		super();
-		this.operand = shiftLeft;
-		basicInitialize(null);
-	}
-
-	private void basicInitialize(ProcessingStepDescriptor descriptor) {
-		// if the status is already set to something that not ok, we've already found a problem.
-		if (!getStatus().isOK())
-			return;
-
-		int code;
-		// if there is a descriptor, decide if the "bad case" is an error or info.  If no 
-		// descriptor then default to error.
-		if (descriptor != null)
-			code = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-		else
-			code = IStatus.ERROR;
-
-		// finally, check the actual setup and set the status.
-		if (operand <= 0)
-			setStatus(new Status(code, Activator.ID, "ByteShifter operand invalid: " + operand));
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		try {
-			operand = Integer.valueOf(descriptor.getData()).intValue();
-		} catch (NumberFormatException e) {
-			int code = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-			setStatus(new Status(code, Activator.ID, "ByteShifter operand specification invalid", e));
-			return;
-		}
-		basicInitialize(descriptor);
-	}
-
-	public void write(int b) throws IOException {
-		getDestination().write(b == -1 ? b : b << operand);
-	}
-
-	public IStatus getStatus() {
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Counter.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Counter.java
deleted file mode 100644
index 008b053..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Counter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *	IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository.processing;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-
-public class Counter extends ProcessingStep {
-
-	protected long size = -1;
-	long total = 0;
-
-	public Counter() {
-		// needed
-	}
-
-	public Counter(long size) {
-		super();
-		this.size = size;
-		basicInitialize(null);
-	}
-
-	private void basicInitialize(ProcessingStepDescriptor descriptor) {
-		// if the status is already set to something that not ok, we've already found a problem.
-		if (!getStatus().isOK())
-			return;
-
-		int code;
-		// if there is a descriptor, decide if the "bad case" is an error or info.  If no 
-		// descriptor then default to error.
-		if (descriptor != null)
-			code = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-		else
-			code = IStatus.ERROR;
-
-		// finally, check the actual setup and set the status.
-		if (size != -1)
-			setStatus(new Status(code, Activator.ID, "Counter size not set"));
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		String data = descriptor.getData();
-		if (data == null)
-			return;
-		try {
-			if (data.equals("download"))
-				size = Long.parseLong(context.getProperty(IArtifactDescriptor.DOWNLOAD_SIZE));
-			else if (data.equals("artifact"))
-				size = Long.parseLong(context.getProperty(IArtifactDescriptor.ARTIFACT_SIZE));
-			else
-				size = Long.parseLong(data);
-		} catch (NumberFormatException e) {
-			int code = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-			setStatus(new Status(code, Activator.ID, "Counter size specification invalid", e));
-			return;
-		}
-		basicInitialize(descriptor);
-	}
-
-	public void write(int b) throws IOException {
-		total++;
-		getDestination().write(b);
-	}
-
-	public void close() throws IOException {
-		super.close();
-		if (total != size)
-			setStatus(new Status(IStatus.WARNING, "plugin id", "Size mismatch.  Was " + total + " should have been " + size));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Multiplier.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Multiplier.java
deleted file mode 100644
index 4dae1cc..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/Multiplier.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*  IBM - continuing development
-*******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository.processing;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactDescriptor;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepDescriptor;
-
-public class Multiplier extends ProcessingStep {
-
-	protected int operand;
-
-	public Multiplier() {
-		// needed
-	}
-
-	public Multiplier(int operand) {
-		super();
-		this.operand = operand;
-	}
-
-	public void initialize(ProcessingStepDescriptor descriptor, IArtifactDescriptor context) {
-		super.initialize(descriptor, context);
-		try {
-			operand = Integer.valueOf(descriptor.getData()).intValue();
-		} catch (NumberFormatException e) {
-			int code = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO;
-			setStatus(new Status(code, Activator.ID, "Multiplier operand specification invalid", e));
-			return;
-		}
-	}
-
-	public void write(int b) throws IOException {
-		getDestination().write(b == -1 ? b : b * operand);
-	}
-
-	public void close() throws IOException {
-		super.close();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepHandlerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepHandlerTest.java
deleted file mode 100644
index 7662559..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepHandlerTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007 compeople AG and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* 	compeople AG (Stefan Liebig) - initial API and implementation
-*  IBM - continuing development
-*******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository.processing;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.artifact.processors.pack200.Pack200ProcessorStep;
-import org.eclipse.equinox.internal.p2.artifact.processors.verifier.MD5Verifier;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.*;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-public class ProcessingStepHandlerTest extends TestCase {
-
-	//	private static final int BUFFER_SIZE = 8 * 1024;
-
-	ProcessingStepHandler handler = new ProcessingStepHandler();
-	IProgressMonitor monitor = new NullProgressMonitor();
-
-	public void testExecuteNoPSs() throws IOException {
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[0];
-		OutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.createAndLink(descriptors, null, result, monitor);
-		testStream.write("Test".getBytes());
-		testStream.close();
-		assertEquals("Test", result.toString());
-	}
-
-	public void testExecuteOneByteShifterPS() throws IOException {
-		ProcessingStep[] steps = new ProcessingStep[] {new ByteShifter(1)};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {2}, result.toByteArray()));
-	}
-
-	public void testExecuteTwoByteShifterPSs() throws IOException {
-		ProcessingStep[] steps = new ProcessingStep[] {new ByteShifter(1), new ByteShifter(2)};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {8}, result.toByteArray()));
-	}
-
-	public void testExecuteOneMD5VerifierPSOk() throws IOException {
-		ProcessingStep[] steps = new ProcessingStep[] {new MD5Verifier("0cbc6611f5540bd0809a388dc95a615b")};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write("Test".getBytes());
-		testStream.close();
-		assertEquals("Test", result.toString());
-	}
-
-	public void testExecuteOneMD5VerifierPSFails() throws IOException {
-		ProcessingStep[] steps = new ProcessingStep[] {new MD5Verifier("9cbc6611f5540bd0809a388dc95a615b")};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write("Test".getBytes());
-		try {
-			testStream.close();
-			assertEquals("Test", result.toString());
-			assertTrue((ProcessingStepHandler.checkStatus(testStream).getSeverity() == IStatus.ERROR));
-		} catch (IOException e) {
-			assertTrue(true);
-		}
-	}
-
-	public void testExecuteOneByteShifterAndOneMD5VerifierPSOk() throws IOException {
-		// Order of PSs is important!!
-		ProcessingStep[] steps = new ProcessingStep[] {new ByteShifter(1), new MD5Verifier("ceeee507e8db83294600218b4e198897")};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1, 2, 3, 4, 5});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {2, 4, 6, 8, 10}, result.toByteArray()));
-	}
-
-	public void testExecuteOneByteShifterAndOneMD5VerifierPSFailWrongOrder() throws IOException {
-		// Order of PSs is important - here it wrong!!
-		ProcessingStep[] steps = new ProcessingStep[] {new MD5Verifier("af476bbaf152a4c39ca4e5c498a88aa0"), new ByteShifter(1)};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1, 2, 3, 4, 5});
-		try {
-			testStream.close();
-			assertTrue(Arrays.equals(new byte[] {2, 4, 6, 8, 10}, result.toByteArray()));
-			assertTrue((ProcessingStepHandler.checkStatus(testStream).getSeverity() == IStatus.ERROR));
-		} catch (IOException e) {
-			assertTrue(true);
-		}
-	}
-
-	public void testAssureOrderingOfPSs1() throws IOException {
-		ProcessingStep[] steps = new ProcessingStep[] {new Adder(1), new Multiplier(2)};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1, 2, 3, 4, 5});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {4, 6, 8, 10, 12}, result.toByteArray()));
-	}
-
-	public void testAssureOrderingOfPSs2() throws IOException {
-		ProcessingStep[] steps = new ProcessingStep[] {new Multiplier(2), new Adder(1)};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1, 2, 3, 4, 5});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {3, 5, 7, 9, 11}, result.toByteArray()));
-	}
-
-	public void testExecuteOnePack200UnpackerPS() throws IOException {
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Pack200Unpacker", null, true)};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		ByteArrayOutputStream result = new ByteArrayOutputStream(100000);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		IStatus status = ProcessingStepHandler.checkStatus(testStream);
-		assertTrue("Step is not ready.", status.isOK());
-		InputStream inputStream = TestActivator.getContext().getBundle().getEntry("testData/jarprocessor.jar.pack.gz").openStream();
-		FileUtils.copyStream(inputStream, true, testStream, true);
-		assertEquals(35062, result.size());
-	}
-
-	public void testCreateByteShifterPS() {
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.ByteShifter", "1", true)};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		assertNotNull(steps);
-		assertEquals(1, steps.length);
-		assertEquals(ByteShifter.class, steps[0].getClass());
-	}
-
-	public void testCreateMD5VerifierPS() {
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.MD5Verifier", "1", true)};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		assertNotNull(steps);
-		assertEquals(1, steps.length);
-		assertEquals(MD5Verifier.class, steps[0].getClass());
-	}
-
-	public void testCreateAdderPS() {
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Adder", "1", true)};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		assertNotNull(steps);
-		assertEquals(1, steps.length);
-		assertEquals(Adder.class, steps[0].getClass());
-	}
-
-	public void testCreateMultiplierPS() {
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Multiplier", "2", true)};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		assertNotNull(steps);
-		assertEquals(1, steps.length);
-		assertEquals(Multiplier.class, steps[0].getClass());
-	}
-
-	public void testCreatePack200UnpackerPS() {
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Pack200Unpacker", null, true)};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		assertNotNull(steps);
-		assertEquals(1, steps.length);
-		assertEquals(Pack200ProcessorStep.class, steps[0].getClass());
-	}
-
-	public void testCreatePSsAndAssureOrderingOfPSs1() throws IOException {
-		ProcessingStepDescriptor adder = new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Adder", "1", true);
-		ProcessingStepDescriptor multiplier = new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Multiplier", "2", true);
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {adder, multiplier};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1, 2, 3, 4, 5});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {4, 6, 8, 10, 12}, result.toByteArray()));
-	}
-
-	public void testCreatePSsAndAssureOrderingOfPSs2() throws IOException {
-		ProcessingStepDescriptor adder = new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Adder", "1", true);
-		ProcessingStepDescriptor multiplier = new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Multiplier", "2", true);
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {multiplier, adder};
-		ProcessingStep[] steps = handler.create(descriptors, null);
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.link(steps, result, monitor);
-		testStream.write(new byte[] {1, 2, 3, 4, 5});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {3, 5, 7, 9, 11}, result.toByteArray()));
-	}
-
-	public void testLinkPSs() throws IOException {
-		ProcessingStepDescriptor adder = new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Adder", "1", true);
-		ProcessingStepDescriptor multiplier = new ProcessingStepDescriptor("org.eclipse.equinox.p2.processing.Multiplier", "2", true);
-		ProcessingStepDescriptor[] descriptors = new ProcessingStepDescriptor[] {adder, multiplier};
-		ByteArrayOutputStream result = new ByteArrayOutputStream(10);
-		OutputStream testStream = handler.createAndLink(descriptors, null, result, monitor);
-		testStream.write(new byte[] {1, 2, 3, 4, 5});
-		testStream.close();
-		assertTrue(Arrays.equals(new byte[] {4, 6, 8, 10, 12}, result.toByteArray()));
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java
deleted file mode 100644
index c77e074..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.artifact.repository.processing;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler;
-
-public class ProcessingStepTest extends TestCase {
-
-	private ProcessingStep ps;
-	private boolean flushed;
-	private boolean closed;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		ps = new ProcessingStep() {};
-		flushed = false;
-		closed = false;
-	}
-
-	public void testDefaultStatus() {
-		assertNotNull(ps.getStatus());
-		assertTrue(ps.getStatus().isOK());
-		assertTrue(ps.getStatus(false).isOK());
-		assertTrue(ps.getStatus(true).isOK());
-		assertTrue(ProcessingStepHandler.checkStatus(ps).isOK());
-	}
-
-	public void testGetDeepStatus() {
-		ProcessingStep ps2 = new ProcessingStep() {};
-		ps.link(ps2, new NullProgressMonitor());
-		assertTrue(ps.getStatus(true).isOK());
-
-		ps2.setStatus(new Status(IStatus.ERROR, "plugin id", "message"));
-		assertFalse(ps.getStatus(true).isOK());
-		assertTrue(ps.getStatus(true).isMultiStatus());
-		assertEquals(IStatus.ERROR, ps.getStatus(true).getSeverity());
-		MultiStatus multi = (MultiStatus) ps.getStatus(true);
-		assertEquals(2, multi.getChildren().length);
-
-		ProcessingStep ps3 = new ProcessingStep() {};
-		ps2.link(ps3, new NullProgressMonitor());
-		assertFalse(ps.getStatus(true).isOK());
-		assertTrue(ps.getStatus(true).isMultiStatus());
-		assertEquals(IStatus.ERROR, ps.getStatus(true).getSeverity());
-		multi = (MultiStatus) ps.getStatus(true);
-		assertEquals(3, multi.getChildren().length);
-
-		ps3.setStatus(Status.CANCEL_STATUS);
-		assertFalse(ps.getStatus(true).isOK());
-		assertTrue(ps.getStatus(true).isMultiStatus());
-		assertEquals(IStatus.CANCEL, ps.getStatus(true).getSeverity());
-	}
-
-	public void testFlush() throws IOException {
-		OutputStream destination = new OutputStream() {
-
-			public void write(int b) throws IOException {
-			}
-
-			public void flush() {
-				flushed = true;
-			}
-		};
-		ps.link(destination, new NullProgressMonitor());
-		ps.flush();
-		assertTrue(flushed);
-	}
-
-	public void testCloseSimpleOutputStreamAsDestination() throws IOException {
-		OutputStream destination = new OutputStream() {
-
-			public void write(int b) throws IOException {
-			}
-
-			public void close() {
-				closed = true;
-			}
-		};
-		ps.link(destination, new NullProgressMonitor());
-		ps.close();
-		assertFalse(closed);
-	}
-
-	public void testCloseProcessingStepAsDestination() throws IOException {
-		OutputStream destination = new ProcessingStep() {
-			public void close() {
-				closed = true;
-			}
-		};
-		ps.link(destination, new NullProgressMonitor());
-		ps.close();
-		assertTrue(closed);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AllTests.java
deleted file mode 100644
index a726d37..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AllTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(AutomatedDirectorTest.class);
-		suite.addTestSuite(Bug203637.class);
-		suite.addTestSuite(OperationGenerationTest.class);
-		suite.addTestSuite(OracleTest.class);
-		suite.addTestSuite(OracleTest2.class);
-		suite.addTestSuite(PickerTest.class);
-		suite.addTestSuite(RecommendationTest.class);
-		suite.addTestSuite(ReplacePlanTest.class);
-		suite.addTestSuite(ResolutionHelperTest.class);
-		suite.addTestSuite(RollbackTest.class);
-		suite.addTestSuite(SingletonTest.class);
-		suite.addTestSuite(UninstallTest.class);
-		suite.addTestSuite(UpdateTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AutomatedDirectorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AutomatedDirectorTest.java
deleted file mode 100644
index fa6d4d4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/AutomatedDirectorTest.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import java.util.HashMap;
-import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-/**
- * Various automated tests of the {@link IDirector} API.
- */
-public class AutomatedDirectorTest extends AbstractProvisioningTest {
-	//private static Version version = new Version(1, 0, 0);
-
-	public static Test suite() {
-		return new TestSuite(AutomatedDirectorTest.class);
-	}
-
-	public AutomatedDirectorTest() {
-		super("");
-	}
-
-	public AutomatedDirectorTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests installing an IU that has a filtered dependency on another IU. When
-	 * the filter is satisfied, the dependency is active and the required IU should
-	 * be installed. When the filter is not satisfied, the dependency is inactive
-	 * and the second IU should not be installed.
-	 */
-	public void testInstallFilteredCapability() {
-		//The IU that is required
-		IInstallableUnit requiredIU = createIU("required." + getName());
-
-		// The IU to be installed
-		String filter = createFilter("FilterKey", "true");
-		RequiredCapability capability = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, requiredIU.getId(), ANY_VERSION, filter, false, false);
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), new RequiredCapability[] {capability});
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {requiredIU, toInstallIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-		IDirector director = createDirector();
-
-		//Install into a profile in which the filter is satisfied
-		Map properties = new HashMap();
-		properties.put(IProfile.PROP_ENVIRONMENTS, "FilterKey=true");
-		IProfile satisfied = createProfile("Satisfied." + getName(), null, properties);
-		ProfileChangeRequest request = new ProfileChangeRequest(satisfied);
-		request.addInstallableUnits(toInstallArray);
-		IStatus result = director.provision(request, null, null);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", satisfied, allUnits);
-	}
-
-	/**
-	 * Tests installing an IU that has an optional prerequisite that is available.
-	 */
-	public void testInstallOptionalAvailable() {
-		String capabilityId = "test." + getName();
-		//The IU that exports the capability
-		IInstallableUnit requiredIU = createIU("required." + getName(), new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", capabilityId, DEFAULT_VERSION)});
-
-		//The IU that optionally requires the capability
-		RequiredCapability required = MetadataFactory.createRequiredCapability("test.capability", capabilityId, ANY_VERSION, null, /* optional=> */true, /* multiple=> */false, /* greedy=>*/false);
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), new RequiredCapability[] {required});
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {toInstallIU, requiredIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		IProfile profile = createProfile("TestProfile." + getName());
-		IDirector director = createDirector();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(toInstallArray);
-		IStatus result = director.provision(request, null, null);
-		if (!result.isOK())
-			LogHelper.log(result);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", profile, toInstallArray);
-	}
-
-	/**
-	 * Tests installing an IU that has an optional prerequisite that is not available.
-	 */
-	public void testInstallOptionalUnavailable() {
-		String capabilityId = "test." + getName();
-		//no IU will be available that exports this capability
-		RequiredCapability required = MetadataFactory.createRequiredCapability("test.capability", capabilityId, ANY_VERSION, null, true, false);
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), new RequiredCapability[] {required});
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		IProfile profile = createProfile("TestProfile." + getName());
-		IDirector director = createDirector();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(allUnits);
-		IStatus result = director.provision(request, null, null);
-		if (!result.isOK())
-			LogHelper.log(result);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", profile, allUnits);
-	}
-
-	/**
-	 * Tests installing an IU that has a required capability, and the IU providing
-	 * the capability has a platform filter that is not satisfied.
-	 */
-	public void testInstallPlatformFilter() {
-		//The IU that exports the capability
-		String capabilityId = "test." + getName();
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", capabilityId, DEFAULT_VERSION)};
-		IInstallableUnit requiredIU = createIU("required." + getName(), createFilter("osgi.os", "blort"), provides);
-
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), createRequiredCapabilities("test.capability", capabilityId, ANY_VERSION, null));
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {requiredIU, toInstallIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		IProfile profile = createProfile("TestProfile." + getName());
-		IDirector director = createDirector();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(toInstallArray);
-		IStatus result = director.provision(request, null, null);
-		assertTrue("1.0", !result.isOK());
-
-		//try again with the filter satisfied
-		Map properties = new HashMap();
-		properties.put(IProfile.PROP_ENVIRONMENTS, "osgi.os=blort");
-		IProfile profile2 = createProfile("TestProfile2." + getName(), null, properties);
-		request = new ProfileChangeRequest(profile2);
-		request.addInstallableUnits(toInstallArray);
-		result = director.provision(request, null, null);
-		assertTrue("2.0", result.isOK());
-	}
-
-	/**
-	 * Tests installing an IU that has an unsatisfied platform filter
-	 */
-	public void testInstallPlatformFilterUnsatisfied() {
-		//The IU to install
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), createFilter("osgi.os", "blort"), NO_PROVIDES);
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {toInstallIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		IProfile profile = createProfile("TestProfile." + getName());
-		IDirector director = createDirector();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(toInstallArray);
-		IStatus result = director.provision(request, null, null);
-		assertTrue("1.0", !result.isOK());
-
-		//try again with the filter satisfied
-		Map properties = new HashMap();
-		properties.put(IProfile.PROP_ENVIRONMENTS, "osgi.os=blort");
-		IProfile profile2 = createProfile("TestProfile2." + getName(), null, properties);
-		request = new ProfileChangeRequest(profile2);
-		request.addInstallableUnits(toInstallArray);
-		result = director.provision(request, null, null);
-		assertTrue("2.0", result.isOK());
-	}
-
-	/**
-	 * Simple test of installing an IU that has a required capability, and ensuring
-	 * that the IU providing the capability is installed.
-	 */
-	public void testSimpleInstallRequired() {
-		String capabilityId = "test." + getName();
-		//The IU that exports the capability
-		IInstallableUnit requiredIU = createIU("required." + getName(), new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", capabilityId, DEFAULT_VERSION)});
-
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), createRequiredCapabilities("test.capability", capabilityId, ANY_VERSION, null));
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {requiredIU, toInstallIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		IProfile profile = createProfile("TestProfile." + getName());
-
-		IDirector director = createDirector();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(toInstallArray);
-		IStatus result = director.provision(request, null, null);
-		if (!result.isOK())
-			LogHelper.log(result);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", profile, allUnits);
-	}
-
-	/**
-	 * Simple test of installing an IU that has a required capability, but without
-	 * specifying a version range (any version will do).
-	 */
-	public void testInstallRequiredNoVersion() {
-		//The IU that is needed
-		IInstallableUnit requiredIU = createIU("required." + getName());
-
-		RequiredCapability capability = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, requiredIU.getId(), null, null, false, false);
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), new RequiredCapability[] {capability});
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {requiredIU, toInstallIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		IProfile profile = createProfile("TestProfile." + getName());
-
-		IDirector director = createDirector();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(toInstallArray);
-		IStatus result = director.provision(request, null, null);
-		if (!result.isOK())
-			LogHelper.log(result);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", profile, allUnits);
-	}
-
-	/**
-	 * Simple test of installing an IU that has a required IU, and ensuring
-	 * that the required IU is installed. In other words, the IU to install has a required
-	 * capability on the IU namespace.
-	 */
-	public void testSimpleInstallRequiredIU() {
-		//The IU that exports the capability
-		IInstallableUnit requiredIU = createIU("required." + getName());
-
-		RequiredCapability capability = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, requiredIU.getId(), ANY_VERSION, null, false, false);
-		IInstallableUnit toInstallIU = createIU("toInstall." + getName(), new RequiredCapability[] {capability});
-
-		IInstallableUnit[] allUnits = new IInstallableUnit[] {requiredIU, toInstallIU};
-		IInstallableUnit[] toInstallArray = new IInstallableUnit[] {toInstallIU};
-		createTestMetdataRepository(allUnits);
-
-		IProfile profile = createProfile("TestProfile." + getName());
-
-		IDirector director = createDirector();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(toInstallArray);
-		IStatus result = director.provision(request, null, null);
-		if (!result.isOK())
-			LogHelper.log(result);
-		assertTrue("1.0", result.isOK());
-		assertProfileContains("1.1", profile, allUnits);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/Bug203637.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/Bug203637.java
deleted file mode 100644
index 1cef97e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/Bug203637.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.osgi.framework.Version;
-
-public class Bug203637 extends AbstractProvisioningTest {
-	public void test() {
-		IDirector d = createDirector();
-		IProfile profile = createProfile("TestProfile." + getName());
-		IInstallableUnit a1 = createIU("A", new Version(1, 0, 0), true);
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {a1});
-		request.removeInstallableUnits(new IInstallableUnit[0]);
-		assertOK(d.provision(request, null, null));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OperationGenerationTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OperationGenerationTest.java
deleted file mode 100644
index 6d81eec..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OperationGenerationTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.equinox.internal.p2.director.OperationGenerator;
-import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class OperationGenerationTest extends AbstractProvisioningTest {
-	public void testInstallUninstall() {
-		IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
-		IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
-		IInstallableUnit a3 = createIU("a", new Version(3, 0, 0), false);
-
-		Collection from;
-		from = new ArrayList();
-		from.add(a1);
-		from.add(a2);
-
-		Collection to;
-		to = new ArrayList();
-		to.add(a1);
-		to.add(a3);
-
-		from = new ResolutionHelper(null, null).attachCUs(from);
-		to = new ResolutionHelper(null, null).attachCUs(to);
-		new OperationGenerator().generateOperation(from, to);
-	}
-
-	public void test1() {
-		IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
-		IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
-		IInstallableUnit a3 = createIU("a", new Version(3, 0, 0), false);
-
-		Collection from;
-		from = new ArrayList();
-		from.add(a1);
-		from.add(a3);
-
-		Collection to;
-		to = new ArrayList();
-		to.add(a1);
-		to.add(a3);
-		to.add(a2);
-
-		from = new ResolutionHelper(null, null).attachCUs(from);
-		to = new ResolutionHelper(null, null).attachCUs(to);
-		new OperationGenerator().generateOperation(from, to);
-	}
-
-	public void test2() {
-		IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
-		IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
-		IInstallableUnit a3 = createIU("a", new Version(3, 0, 0), false);
-
-		Collection from;
-		from = new ArrayList();
-		from.add(a1);
-		from.add(a2);
-		from.add(a3);
-
-		Collection to;
-		to = new ArrayList();
-		to.add(a1);
-		to.add(a3);
-
-		from = new ResolutionHelper(null, null).attachCUs(from);
-		to = new ResolutionHelper(null, null).attachCUs(to);
-		new OperationGenerator().generateOperation(from, to);
-	}
-
-	public void testUpdate3() {
-		IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
-		IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
-
-		InstallableUnitDescription b = new MetadataFactory.InstallableUnitDescription();
-		b.setId("b");
-		b.setVersion(new Version(1, 0, 0));
-		b.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[1.0.0, 2.0.0)"), IUpdateDescriptor.NORMAL, null));
-
-		InstallableUnitDescription c = new MetadataFactory.InstallableUnitDescription();
-		c.setId("c");
-		c.setVersion(new Version(1, 0, 0));
-		c.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[2.0.0, 2.3.0)"), IUpdateDescriptor.NORMAL, null));
-
-		Collection from;
-		from = new ArrayList();
-		from.add(a1);
-		from.add(a2);
-
-		Collection to;
-		to = new ArrayList();
-		to.add(MetadataFactory.createInstallableUnit(b));
-		to.add(MetadataFactory.createInstallableUnit(c));
-
-		from = new ResolutionHelper(null, null).attachCUs(from);
-		to = new ResolutionHelper(null, null).attachCUs(to);
-		new OperationGenerator().generateOperation(from, to);
-	}
-
-	public void testUpdate2() {
-		IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
-		IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
-
-		InstallableUnitDescription b = new MetadataFactory.InstallableUnitDescription();
-		b.setId("b");
-		b.setVersion(new Version(1, 0, 0));
-		b.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[1.0.0, 3.0.0)"), IUpdateDescriptor.NORMAL, null));
-
-		Collection from;
-		from = new ArrayList();
-		from.add(a1);
-		from.add(a2);
-
-		Collection to;
-		to = new ArrayList();
-		to.add(MetadataFactory.createInstallableUnit(b));
-
-		from = new ResolutionHelper(null, null).attachCUs(from);
-		to = new ResolutionHelper(null, null).attachCUs(to);
-		new OperationGenerator().generateOperation(from, to);
-	}
-
-	public void testUpdate1() {
-		IInstallableUnit a = createIU("a", new Version(1, 0, 0), false);
-
-		InstallableUnitDescription b = new MetadataFactory.InstallableUnitDescription();
-		b.setId("b");
-		b.setVersion(new Version(1, 0, 0));
-		b.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[1.0.0, 2.0.0)"), IUpdateDescriptor.NORMAL, null));
-
-		Collection from;
-		from = new ArrayList();
-		from.add(a);
-
-		Collection to;
-		to = new ArrayList();
-		to.add(MetadataFactory.createInstallableUnit(b));
-
-		from = new ResolutionHelper(null, null).attachCUs(from);
-		to = new ResolutionHelper(null, null).attachCUs(to);
-		new OperationGenerator().generateOperation(from, to);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest.java
deleted file mode 100644
index d77463c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class OracleTest extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit a2;
-	IInstallableUnit b1;
-	IInstallableUnit c1;
-	IInstallableUnit d1;
-	IInstallableUnit d2;
-
-	IDirector director;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		RequiredCapability[] requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[1.0.0, 2.0.0)"), null);
-		a1 = createIU("A", requires, true);
-
-		requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "D", new VersionRange("[1.0.0, 3.0.0)"), null);
-		c1 = createIU("C", requires, true);
-
-		d1 = createIU("D", DEFAULT_VERSION, true);
-
-		requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "D", new VersionRange("[2.0.0, 3.0.0)"), null);
-		b1 = createIU("B", requires, true);
-
-		d2 = createIU("D", new Version(2, 0, 0), true);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, c1, d1, b1});
-
-		profile = createProfile("TestProfile." + getName());
-		director = createDirector();
-
-	}
-
-	public void testInstallA1() {
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.OK, director.provision(request, null, null).getSeverity());
-
-		createTestMetdataRepository(new IInstallableUnit[] {d2});
-		//		assertEquals(new Oracle().canInstall(new IInstallableUnit[] {b1}, profile, null), true);
-		request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {b1});
-		assertEquals(IStatus.OK, director.provision(request, null, null).getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest2.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest2.java
deleted file mode 100644
index 7c6aaf1..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/OracleTest2.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class OracleTest2 extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit a2;
-	private IInstallableUnit b1;
-	private IInstallableUnit c1;
-	private IInstallableUnit c2;
-
-	IDirector director;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		RequiredCapability[] requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[1.0.0, 2.0.0)"), null);
-		a1 = createIU("A", requires, true);
-
-		c1 = createIU("C", DEFAULT_VERSION, true);
-
-		requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[2.0.0, 3.0.0)"), null);
-		InstallableUnitDescription desc = new MetadataFactory.InstallableUnitDescription();
-		desc.setRequiredCapabilities(requires);
-		desc.setId("A");
-		desc.setVersion(new Version(2, 0, 0));
-		desc.setSingleton(true);
-		desc.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("A", new VersionRange("[1.0.0, 2.3.0)"), IUpdateDescriptor.NORMAL, null));
-
-		a2 = MetadataFactory.createInstallableUnit(desc);
-
-		b1 = createIU("B", DEFAULT_VERSION, requires, NO_PROPERTIES, true);
-
-		InstallableUnitDescription desc2 = new MetadataFactory.InstallableUnitDescription();
-		desc2.setId("C");
-		desc2.setVersion(new Version(2, 0, 0));
-		desc2.setSingleton(true);
-		desc2.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("C", new VersionRange("[1.0.0, 2.3.0)"), IUpdateDescriptor.NORMAL, null));
-		c2 = MetadataFactory.createInstallableUnit(desc2);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, c1});
-
-		profile = createProfile("TestProfile." + getName());
-		director = createDirector();
-
-	}
-
-	/* I'm not sure what this test should look like now
-	 *
-	 
-	public void testInstallA1() {
-		assertEquals(director.install(new IInstallableUnit[] {a1}, profile, null).getSeverity(), IStatus.OK);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a2, c2, b1});
-		Collection brokenEntryPoint = (Collection) new Oracle().canInstall(new IInstallableUnit[] {b1}, profile, null);
-		//		assertNotNull(brokenEntryPoint.getProperty("entryPoint"));
-
-		new Oracle().hasUpdate(a1);
-		System.out.println(new Oracle().canInstall(new IInstallableUnit[] {b1}, (IInstallableUnit[]) brokenEntryPoint.toArray(new IInstallableUnit[brokenEntryPoint.size()]), profile, null));
-	}
-	 */
-
-	public void testInstallA1bis() {
-		profile = createProfile("testInstallA1bis." + getName());
-		director = createDirector();
-		createTestMetdataRepository(new IInstallableUnit[] {a1, a2, c1, c2, b1});
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.OK, director.provision(request, null, null).getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/PickerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/PickerTest.java
deleted file mode 100644
index 09d8954..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/PickerTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.equinox.internal.p2.director.Picker;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * Testing of the {@link Picker} class.
- */
-public class PickerTest extends AbstractProvisioningTest {
-	IInstallableUnit unitVersion5;
-	private Picker picker;
-
-	public PickerTest() {
-		super(""); //$NON-NLS-1$
-	}
-
-	public PickerTest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		Version version = new Version(5, 0, 0);
-
-		//create some sample IUs to be available for the picker
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		unitVersion5 = createIU("required", version, provides);
-
-		IInstallableUnit[] units = new IInstallableUnit[] {unitVersion5};
-		picker = new Picker(units, null);
-
-	}
-
-	/**
-	 * Tests picking an IU that requires a capability, and the available
-	 * provided capability is above the required capability's version range.
-	 */
-	public void testRequiredBelowVersionRange() {
-
-		//an IU whose required capability falls outside available range
-		RequiredCapability[] required = createRequiredCapabilities("test.capability", "test", new VersionRange("[2.0,5.0)"), null);
-
-		IInstallableUnit[][] result = picker.findInstallableUnit(null, null, required, false);
-		assertEquals("1.0", 0, result[0].length + result[1].length);
-	}
-
-	/**
-	 * Tests picking an IU that requires a capability, and the available
-	 * provided capability is above the required capability's version range.
-	 */
-	public void testRequiredWithinVersionRange() {
-
-		//in middle of range
-		RequiredCapability[] required = createRequiredCapabilities("test.capability", "test", new VersionRange("[2.0,6.0)"), null);
-		IInstallableUnit[] result = picker.findInstallableUnit(null, null, required, false)[1];
-		assertEquals("1.0", 1, result.length);
-		assertEquals("1.1", unitVersion5, result[0]);
-
-		//on lower bound
-		required = createRequiredCapabilities("test.capability", "test", new VersionRange("[5.0,6.0)"), null);
-		result = picker.findInstallableUnit(null, null, required, false)[1];
-		assertEquals("1.0", 1, result.length);
-		assertEquals("1.1", unitVersion5, result[0]);
-
-		//on upper bound
-		required = createRequiredCapabilities("test.capability", "test", new VersionRange("[1.0,5.0]"), null);
-		result = picker.findInstallableUnit(null, null, required, false)[1];
-		assertEquals("1.0", 1, result.length);
-		assertEquals("1.1", unitVersion5, result[0]);
-	}
-
-	/**
-	 * Tests picking an IU that requires a capability, and the available
-	 * provided capability is above the required capability's version range.
-	 */
-	public void testRequiredAboveVersionRange() {
-
-		//an IU whose required capability falls outside available range
-		RequiredCapability[] required = createRequiredCapabilities("test.capability", "test", new VersionRange("[5.1,6.0)"), null);
-
-		IInstallableUnit[][] result = picker.findInstallableUnit(null, null, required, false);
-		assertEquals("1.0", 0, result[0].length + result[1].length);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RecommendationTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RecommendationTest.java
deleted file mode 100644
index 0135fdc..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RecommendationTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import java.lang.reflect.Method;
-import java.util.HashSet;
-import java.util.Set;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class RecommendationTest extends AbstractProvisioningTest {
-	//test name dependency over
-	//test
-	//check that the picker is returning something in the range
-	public void testRecommendation() {
-		RequiredCapability applyOn, newValue;
-		applyOn = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.1, 2.0)"), null, false, false);
-		Recommendation r1 = new Recommendation(applyOn, newValue);
-
-		RequiredCapability goodMatch = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		assertEquals(true, r1.matches(goodMatch));
-
-		RequiredCapability badNamespace = MetadataFactory.createRequiredCapability("badNamespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		assertEquals(false, r1.matches(badNamespace));
-
-		RequiredCapability badName = MetadataFactory.createRequiredCapability("namespace", "badName", new VersionRange("[1.0, 2.0)"), null, false, false);
-		assertEquals(false, r1.matches(badName));
-	}
-
-	public void testPicker() {
-		//The IUs we will pick from
-		IInstallableUnit iu1 = createIU("iu1", new Version(1, 0, 0));
-		IInstallableUnit iu2 = createIU("iu2", new Version(4, 0, 0));
-
-		//The recommendations to be used
-		RequiredCapability applyOn, newValue;
-		applyOn = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[1.1, 2.0)"), null, false, false);
-		Recommendation r1 = new Recommendation(applyOn, newValue);
-
-		RequiredCapability applyOn2, newValue2;
-		applyOn2 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu2", new VersionRange("[4.2, 5.0)"), null, false, false);
-		newValue2 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu2", new VersionRange("[4.0, 5.0)"), null, false, false);
-		Recommendation r2 = new Recommendation(applyOn2, newValue2);
-		Set recommendations = new HashSet();
-		recommendations.add(r1);
-		recommendations.add(r2);
-
-		Picker p = new Picker(new IInstallableUnit[] {iu1, iu2}, null);
-		IInstallableUnit[][] matches = p.findInstallableUnit(null, null, new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", null, null, false, false)}, false);
-		assertEquals(matches[1][0], iu1);
-
-		Picker p1 = new Picker(new IInstallableUnit[] {iu1, iu2}, new RecommendationDescriptor(recommendations));
-		matches = p1.findInstallableUnit(null, null, new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[1.0, 2.0)"), null, false, false)}, false);
-		assertEquals(matches[0].length, 0);
-		assertEquals(matches[1].length, 0);
-
-		matches = p1.findInstallableUnit(null, null, new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[4.2, 5.0)"), null, false, false)}, false);
-		assertEquals(matches[0].length, 0);
-		assertEquals(matches[1].length, 0);
-	}
-
-	public void testWideningRanges() {
-		//The IUs we will pick from
-		IInstallableUnit iu1 = createIU("iu1", new Version(4, 0, 0));
-
-		//Here we add recommendation that widen the range of the bundle we are looking for
-		RequiredCapability applyOn2, newValue2;
-		applyOn2 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[4.2, 5.0)"), null, false, false);
-		newValue2 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[4.0, 5.0)"), null, false, false);
-		Recommendation r2 = new Recommendation(applyOn2, newValue2);
-		Set recommendations = new HashSet();
-		recommendations.add(r2);
-
-		//Check without the recommendations
-		Picker p2 = new Picker(new IInstallableUnit[] {iu1}, null);
-		IInstallableUnit[][] matches = p2.findInstallableUnit(null, null, new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[4.0, 5.0)"), null, false, false)}, false);
-		assertEquals(matches[1].length, 1);
-
-		//Check the widening works
-		Picker p1 = new Picker(new IInstallableUnit[] {iu1}, new RecommendationDescriptor(recommendations));
-		matches = p1.findInstallableUnit(null, null, new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "iu1", new VersionRange("[4.2, 5.0)"), null, false, false)}, false);
-		assertEquals(matches[1].length, 1);
-
-	}
-
-	public void testRecommendationDescriptorMerge() {
-		RequiredCapability applyOn1, newValue1;
-		applyOn1 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue1 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.1, 2.0)"), null, false, false);
-		Recommendation r1 = new Recommendation(applyOn1, newValue1);
-		Set list1 = new HashSet();
-		list1.add(r1);
-		RecommendationDescriptor desc1 = new RecommendationDescriptor(list1);
-
-		RequiredCapability applyOn2, newValue2;
-		applyOn2 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue2 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.3, 2.0)"), null, false, false);
-		Recommendation r2 = new Recommendation(applyOn2, newValue2);
-		Set list2 = new HashSet();
-		list2.add(r2);
-		RecommendationDescriptor desc2 = new RecommendationDescriptor(list2);
-
-		//We test that the result of the merge worked.
-		assertEquals(Status.OK_STATUS, desc1.merge(desc2));
-		assertEquals(r2, desc1.findRecommendation(MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false)));
-	}
-
-	public void testRecommendationDescriptorMergeConflict() {
-		RequiredCapability applyOn1, newValue1;
-		applyOn1 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue1 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.1, 2.0)"), null, false, false);
-		Recommendation r1 = new Recommendation(applyOn1, newValue1);
-		Set list1 = new HashSet();
-		list1.add(r1);
-		RecommendationDescriptor desc1 = new RecommendationDescriptor(list1);
-
-		RequiredCapability applyOn2, newValue2;
-		applyOn2 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[1.0, 2.0)"), null, false, false);
-		newValue2 = MetadataFactory.createRequiredCapability("namespace", "name", new VersionRange("[2.1, 3.0)"), null, false, false);
-		Recommendation r2 = new Recommendation(applyOn2, newValue2);
-		Set list2 = new HashSet();
-		list2.add(r2);
-		RecommendationDescriptor desc2 = new RecommendationDescriptor(list2);
-
-		//We test that the result of the merge worked.
-		assertEquals(Status.INFO, desc1.merge(desc2).getSeverity());
-	}
-
-	public void testRangeIntersection() {
-		Recommendation rec = new Recommendation(null, null);
-		try {
-			Method m = rec.getClass().getDeclaredMethod("intersect", new Class[] {VersionRange.class, VersionRange.class});
-			m.setAccessible(true);
-			assertEquals(new VersionRange("[1.0.0, 2.0.0)"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0)"), new VersionRange("[0.1.0, 3.0.0]")}));
-
-			assertEquals(new VersionRange("[1.1.0, 1.9.0]"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0)"), new VersionRange("[1.1.0, 1.9.0]")}));
-			assertEquals(new VersionRange("[1.1.0, 2.0.0)"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0)"), new VersionRange("[1.1.0, 2.1.0]")}));
-			assertEquals(new VersionRange("[1.0.0, 1.3.0]"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0)"), new VersionRange("[0.9.0, 1.3.0]")}));
-			assertEquals(null, m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0)"), new VersionRange("[3.0.0, 4.0.0]")}));
-
-			assertEquals(new VersionRange("(1.0.0, 2.0.0]"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0]"), new VersionRange("(1.0.0, 2.1.0]")}));
-			assertEquals(new VersionRange("(1.0.0, 2.0.0]"), m.invoke(rec, new Object[] {new VersionRange("(1.0.0, 2.0.0]"), new VersionRange("[1.0.0, 2.1.0]")}));
-
-			assertEquals(new VersionRange("[1.0.0, 2.0.0)"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0)"), new VersionRange("[1.0.0, 2.0.0]")}));
-			assertEquals(new VersionRange("[1.0.0, 2.0.0)"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0]"), new VersionRange("[1.0.0, 2.0.0)")}));
-
-			assertEquals(new VersionRange("[1.0.0, 2.0.0]"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0]"), new VersionRange("[1.0.0, 2.0.0]")}));
-			assertEquals(new VersionRange("(1.0.0, 2.0.0)"), m.invoke(rec, new Object[] {new VersionRange("(1.0.0, 2.0.0)"), new VersionRange("(1.0.0, 2.0.0)")}));
-
-			assertEquals(null, m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0)"), new VersionRange("[2.0.0, 3.0.0)")}));
-			assertEquals(new VersionRange("[2.0.0, 2.0.0]"), m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0]"), new VersionRange("[2.0.0, 3.0.0)")}));
-			assertEquals(null, m.invoke(rec, new Object[] {new VersionRange("[1.0.0, 2.0.0]"), new VersionRange("(2.0.0, 3.0.0)")}));
-		} catch (Exception e) {
-			fail("Usage of reflection failed");
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ReplacePlanTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ReplacePlanTest.java
deleted file mode 100644
index fbfb3ec..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ReplacePlanTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * Tests {@link IPlanner#getProvisioningPlan(ProfileChangeRequest, ProvisioningContext, org.eclipse.core.runtime.IProgressMonitor)}
- * involving replacing an IU with a different version.
- */
-public class ReplacePlanTest extends AbstractProvisioningTest {
-	IInstallableUnit f1;
-	IInstallableUnit f1_1;
-	IInstallableUnit f1_4;
-	IInstallableUnit frag1;
-	IInstallableUnit frag1_1;
-	IInstallableUnit frag1_4;
-	IInstallableUnit fa;
-	IInstallableUnit fap;
-	IDirector director;
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		//base IU that others require
-		f1 = createIU("f1", DEFAULT_VERSION, true);
-		f1_1 = createIU("f1", new Version(1, 1, 0), true);
-		f1_4 = createIU("f1", new Version(1, 4, 0), true);
-
-		//fragments of base IU
-		frag1 = createIUFragment(f1, "frag1", f1.getVersion());
-		frag1_1 = createIUFragment(f1, "frag1", f1_1.getVersion());
-		frag1_4 = createIUFragment(f1, "frag1", f1_4.getVersion());
-
-		//IUs that require base IU
-		RequiredCapability[] requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "f1", new VersionRange("[1.0.0, 1.3.0)"), null);
-		fa = createIU("fa", requires, false);
-		requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "f1", new VersionRange("[1.0.0, 1.4.0)"), null);
-		fap = createIU("fa", new Version(1, 1, 0), requires, NO_PROPERTIES, false);
-
-		createTestMetdataRepository(new IInstallableUnit[] {f1, fa, frag1});
-
-		profile = createProfile("TestProfile." + getName());
-		director = createDirector();
-		planner = createPlanner();
-
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {fa, frag1});
-		director.provision(request, null, null);
-
-		createTestMetdataRepository(new IInstallableUnit[] {f1_1, f1_4, frag1_1, frag1_4});
-	}
-
-	public void testSimpleReplace() {
-		IInstallableUnit[] oldUnits = new IInstallableUnit[] {fa};
-		IInstallableUnit[] newUnits = new IInstallableUnit[] {fap};
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.removeInstallableUnits(oldUnits);
-		request.addInstallableUnits(newUnits);
-		ProvisioningPlan plan = planner.getProvisioningPlan(request, new ProvisioningContext(), null);
-		assertTrue("1.0", plan.getStatus().isOK());
-		assertProfileContainsAll("1.1", profile, oldUnits);
-		IStatus result = createEngine().perform(profile, new DefaultPhaseSet(), plan.getOperands(), null, null);
-		assertTrue("1.2", result.isOK());
-		assertProfileContainsAll("1.3", profile, newUnits);
-	}
-
-	public void testReplaceFragment() {
-		//TODO it is strange that this succeeds, since frag1_4 and fa cannot co-exist
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.removeInstallableUnits(new IInstallableUnit[] {frag1});
-		request.addInstallableUnits(new IInstallableUnit[] {frag1_4});
-		ProvisioningPlan plan = planner.getProvisioningPlan(request, new ProvisioningContext(), null);
-		assertTrue("1.0", plan.getStatus().isOK());
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ResolutionHelperTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ResolutionHelperTest.java
deleted file mode 100644
index eb79e4a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/ResolutionHelperTest.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import java.util.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.internal.p2.resolution.UnsatisfiedCapability;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-/**
- * Tests for {@link ResolutionHelper}.
- */
-public class ResolutionHelperTest extends AbstractProvisioningTest {
-	private static final String FILTER_KEY = "osgi.os";
-
-	public static Test suite() {
-		return new TestSuite(ResolutionHelperTest.class);
-	}
-
-	public ResolutionHelperTest() {
-		super("");
-	}
-
-	public ResolutionHelperTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests resolving an IU that requires a capability, and the available
-	 * provided capability is above the required capability's version range.
-	 */
-	public void testDependencyAboveVersionRange() {
-		Version version = new Version(5, 0, 0);
-
-		//The IU that exports the capability
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		IInstallableUnit required = createIU("required", version, provides);
-
-		//an IU whose required capability falls outside available range
-		RequiredCapability[] requires = createRequiredCapabilities("test.capability", "test", new VersionRange("[2.0,5.0)"), null);
-		IInstallableUnit toInstall = createIU("match", version, requires);
-
-		ResolutionHelper rh = new ResolutionHelper(null, null);
-		HashSet installSet = new HashSet();
-		installSet.add(toInstall);
-		HashSet available = new HashSet();
-		available.add(required);
-		UnsatisfiedCapability[] unsatisfied = rh.install(installSet, available);
-
-		assertEquals("1.0", 1, unsatisfied.length);
-		assertEquals("1.1", "match", unsatisfied[0].getUnsatisfiedUnit().getId());
-		RequiredCapability capability = unsatisfied[0].getRequiredCapability();
-		assertEquals("1.4", "test.capability", capability.getNamespace());
-		assertEquals("1.5", "test", capability.getName());
-	}
-
-	/**
-	 * Tests resolving an IU that requires a capability, and the available
-	 * provided capability is below the required capability's version range.
-	 */
-	public void testDependencyBelowVersionRange() {
-		Version version = new Version(2, 0, 0);
-
-		//The IU that exports the capability
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		IInstallableUnit required = createIU("required", version, provides);
-
-		//an IU whose required capability falls outside available range
-		RequiredCapability[] requires = createRequiredCapabilities("test.capability", "test", new VersionRange("(2.0,3.0)"), null);
-		IInstallableUnit toInstall = createIU("match", version, requires);
-
-		ResolutionHelper rh = new ResolutionHelper(null, null);
-		HashSet installSet = new HashSet();
-		installSet.add(toInstall);
-		HashSet available = new HashSet();
-		available.add(required);
-		UnsatisfiedCapability[] unsatisfied = rh.install(installSet, available);
-
-		assertEquals("1.0", 1, unsatisfied.length);
-		assertEquals("1.1", "match", unsatisfied[0].getUnsatisfiedUnit().getId());
-		RequiredCapability capability = unsatisfied[0].getRequiredCapability();
-		assertEquals("1.4", "test.capability", capability.getNamespace());
-		assertEquals("1.5", "test", capability.getName());
-	}
-
-	public void testDependencyWithPlatformFilter() {
-		Version version = new Version(1, 0, 0);
-
-		//The IU that exports the capability
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		IInstallableUnit required = createIU("required", version, createFilter(FILTER_KEY, "win32"), provides);
-
-		RequiredCapability[] requires = createRequiredCapabilities("test.capability", "test", ANY_VERSION, null);
-		IInstallableUnit toInstall = createIU("toInstall", version, requires);
-
-		//setup context so that platform filter will satisfy dependency
-		Hashtable context = new Hashtable();
-		context.put(FILTER_KEY, "win32");
-		ResolutionHelper rh = new ResolutionHelper(context, null);
-		HashSet installSet = new HashSet();
-		installSet.add(toInstall);
-		HashSet available = new HashSet();
-		available.add(required);
-		UnsatisfiedCapability[] unsatisfied = rh.install(installSet, available);
-		assertEquals("1.0", 0, unsatisfied.length);
-
-		//now try with a null evaluation context
-		rh = new ResolutionHelper(null, null);
-		unsatisfied = rh.install(installSet, available);
-		assertEquals("1.1", 1, unsatisfied.length);
-		assertEquals("1.2", "toInstall", unsatisfied[0].getUnsatisfiedUnit().getId());
-		RequiredCapability capability = unsatisfied[0].getRequiredCapability();
-		assertEquals("1.3", "test.capability", capability.getNamespace());
-		assertEquals("1.4", "test", capability.getName());
-
-		//now use a context where platform filter will not be satisfied
-		context.put(FILTER_KEY, "nomatch");
-		rh = new ResolutionHelper(context, null);
-		unsatisfied = rh.install(installSet, available);
-		assertEquals("2.1", 1, unsatisfied.length);
-		assertEquals("2.2", "toInstall", unsatisfied[0].getUnsatisfiedUnit().getId());
-		capability = unsatisfied[0].getRequiredCapability();
-		assertEquals("2.3", "test.capability", capability.getNamespace());
-		assertEquals("2.4", "test", capability.getName());
-
-	}
-
-	/**
-	 * Tests resolving an IU that has a filter on its required capability.
-	 */
-	public void testSatisfiedDependencyWithMatchingFilter() {
-		//use the same version everywhere because it's not interesting for this test
-		Version version = new Version(1, 0, 0);
-
-		//The IU that exports the capability
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		IInstallableUnit required = createIU("required", version, provides);
-
-		//an IU whose filter will match the environment
-		RequiredCapability[] requires = createRequiredCapabilities("test.capability", "test", createFilter(FILTER_KEY, "matchValue"));
-		IInstallableUnit toInstall = createIU("match", version, requires);
-
-		Dictionary environment = new Hashtable();
-		environment.put(FILTER_KEY, "matchValue");
-		ResolutionHelper rh = new ResolutionHelper(environment, null);
-		HashSet installSet = new HashSet();
-		installSet.add(toInstall);
-		HashSet available = new HashSet();
-		available.add(required);
-		UnsatisfiedCapability[] unsatisfied = rh.install(installSet, available);
-
-		assertEquals("1.0", 0, unsatisfied.length);
-	}
-
-	/**
-	 * In this test we try to resolve an IU that has a required capability that is
-	 * available, but there is a filter on the required capability so it should not be considered.
-	 */
-	public void testSatisfiedDependencyWithUnmatchingFilter() {
-		//use the same version everywhere because it's not interesting for this test
-		Version version = new Version(1, 0, 0);
-
-		//The IU that exports the capability
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		IInstallableUnit required = createIU("required", version, provides);
-
-		//an IU whose filter will not match the environment
-		RequiredCapability[] requires = createRequiredCapabilities("test.capability", "test", createFilter(FILTER_KEY, "noMatchValue"));
-		IInstallableUnit toInstall = createIU("noMatch", version, requires);
-
-		Dictionary environment = new Hashtable();
-		environment.put(FILTER_KEY, "matchValue");
-		ResolutionHelper rh = new ResolutionHelper(environment, null);
-		HashSet installSet = new HashSet();
-		installSet.add(toInstall);
-		HashSet available = new HashSet();
-		available.add(required);
-		UnsatisfiedCapability[] unsatisfied = rh.install(installSet, available);
-
-		assertEquals("1.0", 0, unsatisfied.length);
-	}
-
-	public void testSimpleDependency() {
-		RequiredCapability[] requires = new RequiredCapability[] {MetadataFactory.createRequiredCapability("java.runtime", "JRE", null, null, false, false)};
-		IInstallableUnit osgi = createIU("org.eclipse.osgi", new Version(3, 2, 0, null), requires, NO_PROPERTIES, false);
-
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("java.runtime", "JRE", new Version(1, 4, 2, "sr2"))};
-		IInstallableUnit jre = createIU("com.ibm.jre", new Version(1, 4, 2, "sr2"), provides);
-
-		ResolutionHelper rh = new ResolutionHelper(null, null);
-		HashSet osgiSet = new HashSet(1);
-		osgiSet.add(osgi);
-		HashSet jreSet = new HashSet(1);
-		jreSet.add(jre);
-		assertEquals("1.0", 0, rh.install(osgiSet, jreSet).length);
-	}
-
-	/**
-	 * Tests resolving an IU that has a filter on its required capability, and
-	 * the required capability is not available.
-	 */
-	public void testUnsatisfiedDependencyWithMatchingFilter() {
-		//use the same version everywhere because it's not interesting for this test
-		Version version = new Version(1, 0, 0);
-
-		//The IU that exports the capability
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		IInstallableUnit required = createIU("required", version, provides);
-
-		//an IU whose filter will match the environment
-		RequiredCapability[] requires = createRequiredCapabilities("test.capability", "does.not.exist", createFilter(FILTER_KEY, "matchValue"));
-		IInstallableUnit toInstall = createIU("match", version, requires);
-
-		Dictionary environment = new Hashtable();
-		environment.put(FILTER_KEY, "matchValue");
-		ResolutionHelper rh = new ResolutionHelper(environment, null);
-		HashSet installSet = new HashSet();
-		installSet.add(toInstall);
-		HashSet available = new HashSet();
-		available.add(required);
-		UnsatisfiedCapability[] unsatisfied = rh.install(installSet, available);
-
-		assertEquals("1.0", 1, unsatisfied.length);
-		assertEquals("1.1", "match", unsatisfied[0].getUnsatisfiedUnit().getId());
-		RequiredCapability capability = unsatisfied[0].getRequiredCapability();
-		assertEquals("1.4", "test.capability", capability.getNamespace());
-		assertEquals("1.5", "does.not.exist", capability.getName());
-	}
-
-	/**
-	 * In this test we try to resolve an IU that has an unsatisfied dependency.
-	 * However, there is a filter on the unresolved dependency that does not
-	 * match the environment, so it should not prevent the IU being resolved.
-	 */
-	public void testUnsatisfiedDependencyWithUnmatchingFilter() {
-		//use the same version everywhere because it's not interesting for this test
-		Version version = new Version(1, 0, 0);
-
-		//The IU that exports the capability
-		ProvidedCapability[] provides = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("test.capability", "test", version)};
-		IInstallableUnit required = createIU("required", version, provides);
-
-		//an IU whose filter will not match the environment
-		RequiredCapability[] requires = createRequiredCapabilities("test.capability", "does.not.exist", createFilter(FILTER_KEY, "noMatchValue"));
-		IInstallableUnit toInstall = createIU("noMatch", version, requires);
-
-		Dictionary environment = new Hashtable();
-		environment.put(FILTER_KEY, "matchValue");
-		ResolutionHelper rh = new ResolutionHelper(environment, null);
-		HashSet installSet = new HashSet();
-		installSet.add(toInstall);
-		HashSet available = new HashSet();
-		available.add(required);
-		UnsatisfiedCapability[] unsatisfied = rh.install(installSet, available);
-
-		assertEquals("1.0", 0, unsatisfied.length);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RollbackTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RollbackTest.java
deleted file mode 100644
index 3ac13e9..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/RollbackTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.director.DirectorActivator;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-public class RollbackTest extends AbstractProvisioningTest {
-
-	private IInstallableUnit a1;
-	private IProfile profile;
-	private IDirector director;
-
-	protected void setUp() throws Exception {
-		a1 = createIU("A", DEFAULT_VERSION, true);
-		profile = createProfile("TestProfile." + getName());
-		director = createDirector();
-	}
-
-	public void test() throws ProvisionException {
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {a1});
-		System.out.println(director.provision(request, null, new NullProgressMonitor()));
-		printProfile(profile);
-		IMetadataRepositoryManager repoMan = (IMetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-		IMetadataRepository repo = null;
-		repo = repoMan.loadRepository(getRollbackRepository(), null);
-		IInstallableUnit[] ius = (IInstallableUnit[]) repo.query(InstallableUnitQuery.ANY, new Collector(), null).toArray(IInstallableUnit.class);
-		for (int i = 0; i < ius.length; i++)
-			System.out.println(ius[i]);
-		director.revert(ius[0], profile, new ProvisioningContext(), new NullProgressMonitor());
-		printProfile(profile);
-	}
-
-	private URL getRollbackRepository() {
-		try {
-			URL location = ((AgentLocation) ServiceHelper.getService(DirectorActivator.context, AgentLocation.class.getName())).getDataArea(DirectorActivator.PI_DIRECTOR);
-			return new URL(location, "rollback");
-		} catch (MalformedURLException e) {
-			fail("4.99", e);
-			return null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/SingletonTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/SingletonTest.java
deleted file mode 100644
index 98c5b87..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/SingletonTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.osgi.framework.Version;
-
-public class SingletonTest extends AbstractProvisioningTest {
-	IInstallableUnit f1;
-	IInstallableUnit f1_1;
-
-	IInstallableUnit f2;
-	IInstallableUnit f2_1;
-
-	IInstallableUnit junit38;
-	IInstallableUnit junit40;
-
-	IDirector director;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		f1 = createIU("f1", new Version(1, 0, 0), true);
-
-		f1_1 = createIU("f1", new Version(1, 1, 0), true);
-
-		f2 = createIU("f2", new Version(1, 0, 0), true);
-
-		f2_1 = createIU("f2", new Version(1, 0, 1));
-
-		junit38 = createIU("junit", new Version(3, 8, 1));
-
-		junit40 = createIU("junit", new Version(4, 0, 1));
-
-		createTestMetdataRepository(new IInstallableUnit[] {f1, f1_1, junit38, junit40, f2, f2_1});
-
-		profile = createProfile("TestProfile." + getName());
-		director = createDirector();
-	}
-
-	public void testMultipleVersionNonSingleton() {
-		// The installation of junit38 and junit 40 together should succeed
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {junit38, junit40});
-		assertEquals(IStatus.OK, director.provision(request, null, new NullProgressMonitor()).getSeverity());
-	}
-
-	public void testMultipleVersionSingleton() {
-		// The installation of junit38 and junit 40 together should not succeed
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {f1, f1_1});
-		assertEquals(IStatus.ERROR, director.provision(request, null, new NullProgressMonitor()).getSeverity());
-	}
-
-	public void testMultipleVersionSingleton2() {
-		// The installation of junit38 and junit 40 together should not succeed
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {f2, f2_1});
-		assertEquals(IStatus.ERROR, director.provision(request, null, new NullProgressMonitor()).getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UninstallTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UninstallTest.java
deleted file mode 100644
index bc31aff..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UninstallTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-public class UninstallTest extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IProfile profile;
-	private IDirector director;
-
-	protected void setUp() throws Exception {
-		a1 = createIU("A", DEFAULT_VERSION, true);
-
-		profile = createProfile("TestProfile." + getName());
-		director = createDirector();
-	}
-
-	public void testUninstall() {
-		IInstallableUnit[] units = new IInstallableUnit[] {a1};
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(units);
-		System.out.println(director.provision(request, null, null));
-		assertProfileContains("1.0", profile, units);
-		request = new ProfileChangeRequest(profile);
-		request.removeInstallableUnits(units);
-		director.provision(request, null, null);
-		assertEmptyProfile(profile);
-		//uninstalling on empty profile should be a no-op
-		director.provision(request, null, null);
-		assertEmptyProfile(profile);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UpdateTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UpdateTest.java
deleted file mode 100644
index 2dad299..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/UpdateTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.director;
-
-import java.util.Iterator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class UpdateTest extends AbstractProvisioningTest {
-	IInstallableUnit f1;
-	IInstallableUnit f1_1;
-	IInstallableUnit f1_4;
-
-	IInstallableUnit fa;
-	IInstallableUnit fap;
-	IDirector director;
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		String f1Id = getName() + "f1";
-		f1 = createIU(f1Id, DEFAULT_VERSION, true);
-		f1_1 = createIU(f1Id, new Version(1, 1, 0), true);
-		f1_4 = createIU(f1Id, new Version(1, 4, 0), true);
-
-		RequiredCapability[] requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, f1Id, new VersionRange("[1.0.0, 1.3.0)"), null);
-		String faId = getName() + ".fa";
-		fa = createIU(faId, requires, false);
-
-		requires = createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, f1Id, new VersionRange("[1.0.0, 1.4.0)"), null);
-		fap = createIU(faId, new Version(1, 1, 0), requires, NO_PROPERTIES, false);
-
-		createTestMetdataRepository(new IInstallableUnit[] {f1, fa});
-
-		profile = createProfile("UpdateTest." + getName());
-		director = createDirector();
-		planner = createPlanner();
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {fa});
-		assertOK(director.provision(request, null, null));
-		assertProfileContains("Profile setup", profile, new IInstallableUnit[] {f1, fa});
-		createTestMetdataRepository(new IInstallableUnit[] {f1_1, f1_4});
-	}
-
-	public void testInstall() {
-		ProfileChangeRequest request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {f1_1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(request, new ProvisioningContext(), new NullProgressMonitor());
-		assertOK(plan.getStatus());
-		assertOK(director.provision(request, null, null));
-		for (Iterator iterator = getInstallableUnits(profile); iterator.hasNext();) {
-			System.out.println(iterator.next());
-		}
-		request = new ProfileChangeRequest(profile);
-		request.addInstallableUnits(new IInstallableUnit[] {f1_4});
-		assertEquals(IStatus.ERROR, director.provision(request, null, new NullProgressMonitor()).getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AbstractDirectoryWatcherTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AbstractDirectoryWatcherTest.java
deleted file mode 100644
index 3ee4d55..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AbstractDirectoryWatcherTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import java.io.File;
-import java.util.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-/**
- * @since 1.0
- */
-public abstract class AbstractDirectoryWatcherTest extends AbstractProvisioningTest {
-
-	// list of File objects to remove later during teardown
-	protected Set toRemove = new HashSet();
-
-	/*
-	 * Constructor for the class.
-	 */
-	public AbstractDirectoryWatcherTest(String name) {
-		super(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.p2.tests.AbstractProvisioningTest#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		for (Iterator iter = toRemove.iterator(); iter.hasNext();)
-			delete((File) iter.next());
-		toRemove = new HashSet();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AllTests.java
deleted file mode 100644
index 83638ae..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/AllTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(DirectoryWatcherTest.class);
-		suite.addTestSuite(RepositoryListenerTest.class);
-		suite.addTestSuite(ProfileSynchronizerTest.class);
-		return suite;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/DirectoryWatcherTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/DirectoryWatcherTest.java
deleted file mode 100644
index f9da12a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/DirectoryWatcherTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import java.io.File;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-public class DirectoryWatcherTest extends AbstractProvisioningTest {
-
-	public DirectoryWatcherTest(String name) {
-		super(name);
-	}
-
-	public void testCreateDirectoryWatcherNullDirectory() throws Exception {
-		try {
-			new DirectoryWatcher((File) null);
-		} catch (IllegalArgumentException e) {
-			return;
-		}
-		fail();
-	}
-
-	public void testCreateDirectoryWatcherOneDirectory() throws Exception {
-		URL base = TestActivator.getContext().getBundle().getEntry("/testData/directorywatcher1");
-		File folder = new File(FileLocator.toFileURL(base).getPath());
-		DirectoryWatcher watcher = new DirectoryWatcher(folder);
-		watcher.start();
-		watcher.stop();
-	}
-
-	public void testCreateDirectoryWatcherProps() throws Exception {
-		URL base = TestActivator.getContext().getBundle().getEntry("/testData/directorywatcher1");
-		File folder = new File(FileLocator.toFileURL(base).getPath());
-
-		Hashtable props = new Hashtable();
-		props.put(DirectoryWatcher.DIR, folder.getAbsolutePath());
-
-		DirectoryWatcher watcher = new DirectoryWatcher(props, TestActivator.getContext());
-		watcher.start();
-		watcher.stop();
-	}
-
-	public void testDirectoryWatcherListener() throws Exception {
-		URL base = TestActivator.getContext().getBundle().getEntry("/testData/directorywatcher1");
-		File folder = new File(FileLocator.toFileURL(base).getPath());
-
-		Hashtable props = new Hashtable();
-		props.put(DirectoryWatcher.DIR, folder.getAbsolutePath());
-
-		DirectoryWatcher watcher = new DirectoryWatcher(props, TestActivator.getContext());
-		final List list = Collections.synchronizedList(new ArrayList());
-		DirectoryChangeListener listener = new DirectoryChangeListener() {
-
-			public boolean added(File file) {
-				if (file.getName().equals("CVS"))
-					return false;
-				list.add(file);
-				return true;
-			}
-
-			public boolean changed(File file) {
-				return false;
-			}
-
-			public boolean removed(File file) {
-				if (file.getName().equals("CVS"))
-					return false;
-				list.remove(file);
-				return true;
-			}
-
-			public boolean isInterested(File file) {
-				return true;
-			}
-
-			public Long getSeenFile(File file) {
-				return null;
-			}
-
-			public void startPoll() {
-
-			}
-
-			public void stopPoll() {
-			}
-
-		};
-		watcher.addListener(listener);
-		watcher.poll();
-		assertEquals(2, list.size());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/ProfileSynchronizerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/ProfileSynchronizerTest.java
deleted file mode 100644
index aa13bf6..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/ProfileSynchronizerTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import java.io.File;
-import java.util.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.osgi.framework.Version;
-
-/**
- * @since 1.0
- */
-public class ProfileSynchronizerTest extends AbstractDirectoryWatcherTest {
-
-	/*
-	 * Constructor for the class.
-	 */
-	public ProfileSynchronizerTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * Run all the tests in this class.
-	 */
-	public static Test suite() {
-		return new TestSuite(ProfileSynchronizerTest.class);
-	}
-
-	public void test() {
-		// empty test because the others aren't enabled yet
-	}
-
-	/*
-	 * Test that we only try to install bundles with matching platform filters.
-	 * 
-	 * TODO we don't want to test to see if the bundles are in the repo, but if
-	 * the bundles are filtered when they are installed into a profile.
-	 */
-	public void _testPlatformFilter() {
-		String base = "/testData/profileSynchronizer/";
-		String[] extensions = new String[] {"bbb_1.0.0.jar", "bbb.linux_1.0.0.jar", "bbb.win32_1.0.0.jar"};
-		Set jars = new HashSet();
-		for (int i = 0; i < extensions.length; i++)
-			jars.add(getTestData("0.99", base + extensions[i]));
-		File folder = getTempFolder();
-		toRemove.add(folder);
-		for (Iterator iter = jars.iterator(); iter.hasNext();) {
-			File next = (File) iter.next();
-			copy("1.0 " + next.getAbsolutePath(), next, new File(folder, next.getName()));
-		}
-
-		// We should have an empty repository because we haven't done anything yet
-		TestRepositoryWatcher watcher = TestRepositoryWatcher.createWatcher(folder);
-		assertEquals("2.0", 0, watcher.getInstallableUnits().length);
-		assertEquals("2.1", 0, watcher.getArtifactKeys().length);
-
-		watcher.poll();
-
-		// which IUs we are expecting is dependent on which OS we are running
-		Set expected = new HashSet();
-		expected.add("bbb");
-		String os = System.getProperty("osgi.os");
-		if ("win32".equals(os)) {
-			expected.add("bbb.win32");
-		} else if ("linux".equals(os)) {
-			expected.add("bbb.linux");
-		}
-
-		IInstallableUnit[] ius = watcher.getInstallableUnits();
-		assertEquals("3.0", expected.size(), ius.length);
-		for (int i = 0; i < ius.length; i++)
-			assertTrue("3.1 " + ius[i].getId(), expected.contains(ius[i].getId()));
-		assertEquals("3.2", expected.size(), watcher.getArtifactKeys().length);
-	}
-
-	/*
-	 * Test to ensure that we only try to install the highest version of singleton bundles
-	 * where multiple versions exist.
-	 * 
-	 * TODO we don't want to test to see if the bundles are in the repo, but if
-	 * the bundles are filtered when they are installed into a profile.
-	 */
-	public void _testMultipleVersions() {
-		File one = getTestData("0.1", "/testData/profileSynchronizer/ccc_1.0.0.jar");
-		File two = getTestData("0.2", "/testData/profileSynchronizer/ccc_2.0.0.jar");
-		File folder = getTempFolder();
-		toRemove.add(folder);
-
-		copy("1.0", one, new File(folder, one.getName()));
-		copy("1.1", two, new File(folder, two.getName()));
-
-		TestRepositoryWatcher watcher = TestRepositoryWatcher.createWatcher(folder);
-
-		// We should have an empty repository because we haven't done anything yet
-		assertEquals("2.0", 0, watcher.getInstallableUnits().length);
-		assertEquals("2.1", 0, watcher.getArtifactKeys().length);
-
-		watcher.poll();
-
-		IInstallableUnit[] ius = watcher.getInstallableUnits();
-		IArtifactKey[] artifacts = watcher.getArtifactKeys();
-		assertEquals("3.0", 1, ius.length);
-		assertEquals("3.1", "ccc", ius[0].getId());
-		assertEquals("3.2", new Version("2.0.0"), ius[0].getVersion());
-		assertEquals("4.0", 1, artifacts.length);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/RepositoryListenerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/RepositoryListenerTest.java
deleted file mode 100644
index 66f57ad..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/RepositoryListenerTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import java.io.File;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-
-public class RepositoryListenerTest extends AbstractDirectoryWatcherTest {
-
-	/*
-	 * Constructor for the class.
-	 */
-	public RepositoryListenerTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * Run all the tests in this class.
-	 */
-	public static Test suite() {
-		return new TestSuite(RepositoryListenerTest.class);
-	}
-
-	/*
-	 * Remove the files from the target, if they exist in the source.
-	 */
-	private void removeContents(File source, File target) {
-		if (source.exists() && source.isDirectory() && target.exists() && target.isDirectory()) {
-			File[] files = source.listFiles();
-			for (int i = 0; i < files.length; i++)
-				if (files[i] != null)
-					delete(new File(target, files[i].getName()));
-		}
-	}
-
-	public void testDirectoryWatcherListener() {
-		File baseFolder = getTestData("0.99", "/testData/directorywatcher1");
-		File baseFolder2 = getTestData("0.100", "/testData/directorywatcher2");
-
-		// make sure we remove this file after we finish running the tests
-		File folder = getTempFolder();
-		toRemove.add(folder);
-
-		// create the watcher
-		TestRepositoryWatcher watcher = TestRepositoryWatcher.createWatcher(folder);
-
-		// We should have an empty repository because we haven't done anything yet
-		assertEquals("1.0", 0, watcher.getInstallableUnits().length);
-		assertEquals("1.1", 0, watcher.getArtifactKeys().length);
-
-		// copy the first set of data to the folder so it is discovered and then verify the contents
-		copy("2.0", baseFolder, folder);
-		watcher.poll();
-		IArtifactKey[] keys = watcher.getArtifactKeys();
-		for (int i = 0; i < keys.length; i++) {
-			String file = watcher.getArtifactFile(keys[i]).getAbsolutePath();
-			assertTrue("2.1." + file, file.startsWith(folder.getAbsolutePath()));
-		}
-		assertEquals("3.0", 2, watcher.getInstallableUnits().length);
-		assertEquals("3.1", 2, watcher.getArtifactKeys().length);
-
-		// copy the second data set to be discovered and then verify the number of entries
-		copy("4.99", baseFolder2, folder);
-		watcher.poll();
-		assertEquals("5.0", 3, watcher.getInstallableUnits().length);
-		assertEquals("5.1", 3, watcher.getArtifactKeys().length);
-
-		// remove some of the data and then verify the contents
-		removeContents(baseFolder, folder);
-		watcher.poll();
-		assertEquals("6.0", 1, watcher.getInstallableUnits().length);
-		assertEquals("6.1", 1, watcher.getArtifactKeys().length);
-	}
-
-	/*
-	 * Test to ensure that we convert bundles with Eclipse 2.x-style plugin.xml files into 
-	 * proper OSGi manifest files so the bundle can be installed
-	 */
-	public void testPluginXMLConversion() {
-		// test plugin.xml in a JAR'd bundle
-		File oldBundleJAR = getTestData("0.1", "/testData/repositoryListener/oldBundleJAR.jar");
-		// test plugin.xml in a directory-based bundle
-		File oldBundleDirectory = getTestData("0.2", "/testData/repositoryListener/oldBundleDirectory");
-		// test plugin.xml in the presence of an Ant Manifest file in a JAR'd bundle
-		File oldBundleJARTwo = getTestData("0.3", "/testData/repositoryListener/oldBundleJARTwo.jar");
-		// test plugin.xml in the presence of an Ant Manifest file in a directory-based bundle
-		File oldBundleDirectoryTwo = getTestData("0.4", "/testData/repositoryListener/oldBundleDirectoryTwo");
-
-		// copy the test bundles over to where we will be watching in the repo listener
-		File folder = getTempFolder();
-		toRemove.add(folder);
-		copy("1.0", oldBundleJAR, new File(folder, oldBundleJAR.getName()));
-		copy("1.1", oldBundleJARTwo, new File(folder, oldBundleJARTwo.getName()));
-		copy("1.2", oldBundleDirectory, new File(folder, oldBundleDirectory.getName()));
-		copy("1.3", oldBundleDirectoryTwo, new File(folder, oldBundleDirectoryTwo.getName()));
-
-		// We should have an empty repository because we haven't done anything yet
-		TestRepositoryWatcher watcher = TestRepositoryWatcher.createWatcher(folder);
-		assertEquals("2.0", 0, watcher.getInstallableUnits().length);
-		assertEquals("2.1", 0, watcher.getArtifactKeys().length);
-
-		watcher.poll();
-		// the repo should have added all 4 bundles
-		assertEquals("3.0", 4, watcher.getInstallableUnits().length);
-		assertEquals("3.1", 4, watcher.getArtifactKeys().length);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/TestRepositoryWatcher.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/TestRepositoryWatcher.java
deleted file mode 100644
index 189da70..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/directorywatcher/TestRepositoryWatcher.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.directorywatcher;
-
-import java.io.File;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher;
-import org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * Helper test class which wraps a repository listener.
- */
-class TestRepositoryWatcher extends DirectoryWatcher {
-
-	private RepositoryListener listener;
-
-	/*
-	 * Create and return a new test directory watcher class which will listen on the given folder.
-	 */
-	public static TestRepositoryWatcher createWatcher(File folder) {
-		RepositoryListener listener = new RepositoryListener(TestActivator.getContext(), AbstractProvisioningTest.getUniqueString());
-		Dictionary props = new Hashtable();
-		props.put(DirectoryWatcher.DIR, folder.getAbsolutePath());
-		props.put(DirectoryWatcher.POLL, "500");
-		TestRepositoryWatcher result = new TestRepositoryWatcher(props, TestActivator.getContext());
-		result.addListener(listener);
-		return result;
-	}
-
-	/*
-	 * Constructor for the class.
-	 */
-	private TestRepositoryWatcher(Dictionary props, BundleContext context) {
-		super(props, context);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher#addListener(org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryChangeListener)
-	 */
-	public synchronized void addListener(RepositoryListener repoListener) {
-		super.addListener(repoListener);
-		this.listener = repoListener;
-	}
-
-	/*
-	 * Return the list of all the IUs known to the metadata repository this watcher's listener.
-	 */
-	public IInstallableUnit[] getInstallableUnits() {
-		return (IInstallableUnit[]) listener.getMetadataRepository().query(InstallableUnitQuery.ANY, new Collector(), null).toArray(IInstallableUnit.class);
-	}
-
-	/*
-	 * Return the list of artifact keys known to this listener's repository.
-	 */
-	public IArtifactKey[] getArtifactKeys() {
-		return listener.getArtifactRepository().getArtifactKeys();
-	}
-
-	/*
-	 * Return the file associated with the given artifact key.
-	 */
-	public File getArtifactFile(IArtifactKey key) {
-		return ((IFileArtifactRepository) listener.getArtifactRepository()).getArtifactFile(key);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/AllTests.java
deleted file mode 100644
index 2c5e052..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/AllTests.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.download;
-
-import junit.framework.*;
-
-/**
- * Performs all automated download manager tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(DownloadManagerTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/DownloadManagerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/DownloadManagerTest.java
deleted file mode 100644
index 1c18e7c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/download/DownloadManagerTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.download;
-
-import junit.framework.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.engine.DownloadManager;
-
-/**
- * Simple tests of {@link DownloadManager} API.
- */
-public class DownloadManagerTest extends TestCase {
-	public static Test suite() {
-		return new TestSuite(DownloadManagerTest.class);
-	}
-
-	/**
-	 * Tests invocation of DownloadManager when there is nothing to download.
-	 */
-	public void testEmpty() {
-		DownloadManager manager = new DownloadManager();
-		IStatus result = manager.start(null);
-		assertTrue("1.0", result.isOK());
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/embeddedequinox/EmbeddedEquinox.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/embeddedequinox/EmbeddedEquinox.java
deleted file mode 100644
index 05fff16..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/embeddedequinox/EmbeddedEquinox.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.embeddedequinox;
-
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Enumeration;
-import java.util.Map;
-import org.osgi.framework.BundleContext;
-
-/*
- * This class assumes the bundle's classloader only has access to org.osgi.framework
- * from the hosting framework.  Any more access could result in ClassVerifier errors.
- */
-public class EmbeddedEquinox {
-	private final Map frameworkProperties;
-	private final String[] frameworkArgs;
-	private Class eclipseStarterClazz;
-	private BundleContext context;
-	private URL[] frameworkClassPath;
-
-	public EmbeddedEquinox(Map frameworkProperties, String[] frameworkArgs, URL[] frameworkClassPath) {
-		this.frameworkProperties = frameworkProperties;
-		this.frameworkArgs = frameworkArgs;
-		this.frameworkClassPath = frameworkClassPath;
-	}
-
-	public BundleContext startFramework() {
-		System.setProperty("osgi.framework.useSystemProperties", "false");
-		try {
-			URLClassLoader frameworkLoader = new FrameworkClassLoader(frameworkClassPath, this.getClass().getClassLoader());
-			eclipseStarterClazz = frameworkLoader.loadClass("org.eclipse.core.runtime.adaptor.EclipseStarter");
-
-			Method setInitialProperties = eclipseStarterClazz.getMethod("setInitialProperties", new Class[] {Map.class}); //$NON-NLS-1$
-			setInitialProperties.invoke(null, new Object[] {frameworkProperties});
-
-			Method runMethod = eclipseStarterClazz.getMethod("startup", new Class[] {String[].class, Runnable.class}); //$NON-NLS-1$
-			context = (BundleContext) runMethod.invoke(null, new Object[] {frameworkArgs, null});
-		} catch (Throwable t) {
-			if (t instanceof RuntimeException)
-				throw (RuntimeException) t;
-			throw new RuntimeException(t);
-		}
-		return context;
-	}
-
-	public void shutdown() {
-		try {
-			Method shutdownMethod = eclipseStarterClazz.getMethod("shutdown", null); //$NON-NLS-1$
-			shutdownMethod.invoke(null, null);
-
-		} catch (Throwable t) {
-			if (t instanceof RuntimeException)
-				throw (RuntimeException) t;
-			throw new RuntimeException(t);
-		}
-	}
-
-	public class FrameworkClassLoader extends URLClassLoader {
-		ClassLoader embeddedBundleLoader;
-
-		public FrameworkClassLoader(URL[] urls, ClassLoader parent) {
-			super(urls, null);
-			this.embeddedBundleLoader = parent;
-		}
-
-		protected Class findClass(String name) throws ClassNotFoundException {
-			if (name.startsWith("org.osgi.framework."))
-				// TODO this should call findClass; but then have to use reflection!!
-				return embeddedBundleLoader.loadClass(name);
-			return super.findClass(name);
-		}
-
-		public URL findResource(String name) {
-			if (name.startsWith("org/osgi/framework/"))
-				// TODO this should call findResource; but then have to use reflection!!
-				return embeddedBundleLoader.getResource(name);
-			return super.findResource(name);
-		}
-
-		public Enumeration findResources(String name) throws IOException {
-			if (name.startsWith("org/osgi/framework/"))
-				// TODO this should call findResources; but then have to use reflection!!
-				return embeddedBundleLoader.getResources(name);
-			return super.findResources(name);
-		}
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/AllTests.java
deleted file mode 100644
index 22ddb57..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/AllTests.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import junit.framework.*;
-
-/**
- * Performs all engine tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(EngineTest.class);
-		suite.addTestSuite(PhaseSetTest.class);
-		suite.addTestSuite(PhaseTest.class);
-		suite.addTestSuite(ProfileTest.class);
-		suite.addTestSuite(ProfileRegistryTest.class);
-		suite.addTestSuite(TouchpointTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/EngineTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/EngineTest.java
deleted file mode 100644
index 83964ad..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/EngineTest.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import java.io.File;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-/**
- * Simple test of the engine API.
- * 
- * Note:
- * Currently you MUST have previously generated metadata from a 3.3.1 install.
- * There are ordering dependencies for the tests temporarily 
- */
-public class EngineTest extends AbstractProvisioningTest {
-	private ServiceReference engineRef;
-	private IEngine engine;
-	private File testProvisioning;
-
-	public EngineTest(String name) {
-		super(name);
-		testProvisioning = new File(System.getProperty("java.io.tmpdir"), "testProvisioining");
-		deleteDirectory(testProvisioning);
-		testProvisioning.mkdir();
-	}
-
-	public EngineTest() {
-		this("");
-	}
-
-	private static boolean deleteDirectory(File directory) {
-		if (directory.exists() && directory.isDirectory()) {
-			File[] files = directory.listFiles();
-			for (int i = 0; i < files.length; i++) {
-				if (files[i].isDirectory()) {
-					deleteDirectory(files[i]);
-				} else {
-					files[i].delete();
-				}
-			}
-		}
-		return directory.delete();
-	}
-
-	protected void setUp() throws Exception {
-		engineRef = TestActivator.getContext().getServiceReference(IEngine.SERVICE_NAME);
-		engine = (IEngine) TestActivator.getContext().getService(engineRef);
-	}
-
-	protected void tearDown() throws Exception {
-		engine = null;
-		TestActivator.getContext().ungetService(engineRef);
-	}
-
-	public void testNullProfile() {
-
-		IProfile profile = null;
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {};
-		try {
-			engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNullPhaseSet() {
-
-		IProfile profile = createProfile("test");
-		PhaseSet phaseSet = null;
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {};
-		try {
-			engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNullOperands() {
-
-		IProfile profile = createProfile("test");
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		InstallableUnitOperand[] operands = null;
-		try {
-			engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-			fail();
-		} catch (IllegalArgumentException expected) {
-			//expected
-		}
-	}
-
-	public void testEmptyOperands() {
-
-		IProfile profile = createProfile("test");
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {};
-		IStatus result = engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		assertTrue(result.isOK());
-	}
-
-	public void testEmptyPhaseSet() {
-
-		IProfile profile = createProfile("testEmptyPhaseSet");
-		PhaseSet phaseSet = new PhaseSet(new Phase[] {}) {
-			// empty PhaseSet
-		};
-		InstallableUnitOperand op = new InstallableUnitOperand(createResolvedIU(createIU("name")), null);
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {op};
-		IStatus result = engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		assertTrue(result.isOK());
-	}
-
-	public void testPerformSingleNullOperand() {
-		try {
-			new InstallableUnitOperand(null, null);
-			fail("Should not allow null operand");
-		} catch (RuntimeException e) {
-			//expected
-		}
-	}
-
-	public void testPerformInstallOSGiFramework() {
-		Map properties = new HashMap();
-		properties.put(IProfile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-
-		IProfile profile = createProfile("testPerformInstallOSGiFramework", null, properties);
-		for (Iterator it = getInstallableUnits(profile); it.hasNext();) {
-			PhaseSet phaseSet = new DefaultPhaseSet();
-			IInstallableUnit doomed = (IInstallableUnit) it.next();
-			InstallableUnitOperand[] operands = new InstallableUnitOperand[] {new InstallableUnitOperand(createResolvedIU(doomed), null)};
-			engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		}
-		PhaseSet phaseSet = new DefaultPhaseSet();
-
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {new InstallableUnitOperand(null, createOSGiIU())};
-		IStatus result = engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		assertTrue(result.isOK());
-		Iterator ius = getInstallableUnits(profile);
-		assertTrue(ius.hasNext());
-	}
-
-	public void testPerformUpdateOSGiFramework() {
-
-		Map properties = new HashMap();
-		properties.put(IProfile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-		IProfile profile = createProfile("testPerformUpdateOSGiFramework", null, properties);
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {new InstallableUnitOperand(createOSGiIU(), createOSGiIU())};
-		IStatus result = engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		assertTrue(result.isOK());
-		Iterator ius = getInstallableUnits(profile);
-		assertTrue(ius.hasNext());
-	}
-
-	public void testPerformUninstallOSGiFramework() {
-
-		Map properties = new HashMap();
-		properties.put(IProfile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-
-		IProfile profile = createProfile("testPerformUninstallOSGiFramework", null, properties);
-		PhaseSet phaseSet = new DefaultPhaseSet();
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {new InstallableUnitOperand(createOSGiIU(), null)};
-		IStatus result = engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		assertTrue(result.isOK());
-		assertEmptyProfile(profile);
-	}
-
-	public void testPerformRollback() {
-
-		Map properties = new HashMap();
-		properties.put(IProfile.PROP_INSTALL_FOLDER, testProvisioning.getAbsolutePath());
-		IProfile profile = createProfile("testPerformRollback", null, properties);
-		PhaseSet phaseSet = new DefaultPhaseSet();
-
-		Iterator ius = getInstallableUnits(profile);
-		assertFalse(ius.hasNext());
-
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {new InstallableUnitOperand(null, createOSGiIU()), new InstallableUnitOperand(null, createBadIU())};
-		IStatus result = engine.perform(profile, phaseSet, operands, null, new NullProgressMonitor());
-		assertFalse(result.isOK());
-		ius = getInstallableUnits(profile);
-		//TODO Currently this test is failing. See bug 212058
-		//		assertFalse(ius.hasNext());
-	}
-
-	private IInstallableUnit createOSGiIU() {
-		InstallableUnitDescription description = new MetadataFactory.InstallableUnitDescription();
-		description.setId("org.eclipse.osgi");
-		description.setVersion(new Version("3.3.1.R33x_v20070828"));
-		description.setTouchpointType(AbstractProvisioningTest.TOUCHPOINT_OSGI);
-		Map touchpointData = new HashMap();
-		String manifest = "Manifest-Version: 1.0\r\n" + "Bundle-Activator: org.eclipse.osgi.framework.internal.core.SystemBundl\r\n" + " eActivator\r\n" + "Bundle-RequiredExecutionEnvironment: J2SE-1.4,OSGi/Minimum-1.0\r\n" + "Export-Package: org.eclipse.osgi.event;version=\"1.0\",org.eclipse.osgi.\r\n" + " framework.console;version=\"1.0\",org.eclipse.osgi.framework.eventmgr;v\r\n" + " ersion=\"1.0\",org.eclipse.osgi.framework.log;version=\"1.0\",org.eclipse\r\n" + " .osgi.service.datalocation;version=\"1.0\",org.eclipse.osgi.service.deb\r\n" + " ug;version=\"1.0\",org.eclipse.osgi.service.environment;version=\"1.0\",o\r\n" + " rg.eclipse.osgi.service.localization;version=\"1.0\",org.eclipse.osgi.s\r\n" + " ervice.pluginconversion;version=\"1.0\",org.eclipse.osgi.service.resolv\r\n"
-				+ " er;version=\"1.1\",org.eclipse.osgi.service.runnable;version=\"1.0\",org.\r\n" + " eclipse.osgi.service.urlconversion;version=\"1.0\",org.eclipse.osgi.sto\r\n" + " ragemanager;version=\"1.0\",org.eclipse.osgi.util;version=\"1.0\",org.osg\r\n" + " i.framework;version=\"1.3\",org.osgi.service.condpermadmin;version=\"1.0\r\n" + " \",org.osgi.service.packageadmin;version=\"1.2\",org.osgi.service.permis\r\n" + " sionadmin;version=\"1.2\",org.osgi.service.startlevel;version=\"1.0\",org\r\n" + " .osgi.service.url;version=\"1.0\",org.osgi.util.tracker;version=\"1.3.2\"\r\n" + " ,org.eclipse.core.runtime.adaptor;x-friends:=\"org.eclipse.core.runtim\r\n" + " e\",org.eclipse.core.runtime.internal.adaptor;x-internal:=true,org.ecl\r\n"
-				+ " ipse.core.runtime.internal.stats;x-friends:=\"org.eclipse.core.runtime\r\n" + " \",org.eclipse.osgi.baseadaptor;x-internal:=true,org.eclipse.osgi.base\r\n" + " adaptor.bundlefile;x-internal:=true,org.eclipse.osgi.baseadaptor.hook\r\n" + " s;x-internal:=true,org.eclipse.osgi.baseadaptor.loader;x-internal:=tr\r\n" + " ue,org.eclipse.osgi.framework.adaptor;x-internal:=true,org.eclipse.os\r\n" + " gi.framework.debug;x-internal:=true,org.eclipse.osgi.framework.intern\r\n" + " al.core;x-internal:=true,org.eclipse.osgi.framework.internal.protocol\r\n" + " ;x-internal:=true,org.eclipse.osgi.framework.internal.protocol.bundle\r\n" + " entry;x-internal:=true,org.eclipse.osgi.framework.internal.protocol.b\r\n"
-				+ " undleresource;x-internal:=true,org.eclipse.osgi.framework.internal.pr\r\n" + " otocol.reference;x-internal:=true,org.eclipse.osgi.framework.internal\r\n" + " .reliablefile;x-internal:=true,org.eclipse.osgi.framework.launcher;x-\r\n" + " internal:=true,org.eclipse.osgi.framework.util;x-internal:=true,org.e\r\n" + " clipse.osgi.internal.baseadaptor;x-internal:=true,org.eclipse.osgi.in\r\n" + " ternal.module;x-internal:=true,org.eclipse.osgi.internal.profile;x-in\r\n" + " ternal:=true,org.eclipse.osgi.internal.resolver;x-internal:=true,org.\r\n" + " eclipse.osgi.internal.verifier;x-internal:=true,org.eclipse.osgi.inte\r\n" + " rnal.provisional.verifier;x-friends:=\"org.eclipse.update.core,org.ecl\r\n" + " ipse.ui.workbench\"\r\n" + "Bundle-Version: 3.3.0.v20060925\r\n"
-				+ "Eclipse-SystemBundle: true\r\n" + "Bundle-Copyright: %copyright\r\n" + "Bundle-Name: %systemBundle\r\n" + "Bundle-Description: %systemBundle\r\n" + "Bundle-DocUrl: http://www.eclipse.org\r\n" + "Bundle-ManifestVersion: 2\r\n" + "Export-Service: org.osgi.service.packageadmin.PackageAdmin,org.osgi.se\r\n" + " rvice.permissionadmin.PermissionAdmin,org.osgi.service.startlevel.Sta\r\n" + " rtLevel,org.eclipse.osgi.service.debug.DebugOptions\r\n" + "Bundle-Vendor: %eclipse.org\r\n" + "Main-Class: org.eclipse.core.runtime.adaptor.EclipseStarter\r\n" + "Bundle-SymbolicName: org.eclipse.osgi; singleton:=true\r\n" + "Bundle-Localization: systembundle\r\n" + "Eclipse-ExtensibleAPI: true\r\n" + "\r\n" + "";
-		touchpointData.put("manifest", manifest);
-		//touchpointData.put("install", "installBundle(bundle:${artifact});");
-		//touchpointData.put("uninstall", "uninstallBundle(bundle:${artifact});");
-
-		IInstallableUnitFragment[] cus = new IInstallableUnitFragment[1];
-		InstallableUnitFragmentDescription desc = new InstallableUnitFragmentDescription();
-		desc.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		IInstallableUnitFragment fragment = MetadataFactory.createInstallableUnitFragment(desc);
-		cus[0] = fragment;
-
-		//IArtifactKey key = new ArtifactKey("eclipse", "plugin", "org.eclipse.osgi", new Version("3.3.1.R33x_v20070828"));
-		//iu.setArtifacts(new IArtifactKey[] {key});
-
-		IInstallableUnit iu = MetadataFactory.createInstallableUnit(description);
-		return MetadataFactory.createResolvedInstallableUnit(iu, cus);
-	}
-
-	private IInstallableUnit createBadIU() {
-		InstallableUnitDescription description = new MetadataFactory.InstallableUnitDescription();
-		description.setId("org.eclipse.osgi.bad");
-		description.setVersion(new Version("3.3.1.R33x_v20070828"));
-		description.setTouchpointType(AbstractProvisioningTest.TOUCHPOINT_OSGI);
-		Map touchpointData = new HashMap();
-		String manifest = "Manifest-Version: 1.0\r\n" + "Bundle-Activator: org.eclipse.osgi.framework.internal.core.SystemBundl\r\n" + " eActivator\r\n" + "Bundle-RequiredExecutionEnvironment: J2SE-1.4,OSGi/Minimum-1.0\r\n" + "Export-Package: org.eclipse.osgi.event;version=\"1.0\",org.eclipse.osgi.\r\n" + " framework.console;version=\"1.0\",org.eclipse.osgi.framework.eventmgr;v\r\n" + " ersion=\"1.0\",org.eclipse.osgi.framework.log;version=\"1.0\",org.eclipse\r\n" + " .osgi.service.datalocation;version=\"1.0\",org.eclipse.osgi.service.deb\r\n" + " ug;version=\"1.0\",org.eclipse.osgi.service.environment;version=\"1.0\",o\r\n" + " rg.eclipse.osgi.service.localization;version=\"1.0\",org.eclipse.osgi.s\r\n" + " ervice.pluginconversion;version=\"1.0\",org.eclipse.osgi.service.resolv\r\n"
-				+ " er;version=\"1.1\",org.eclipse.osgi.service.runnable;version=\"1.0\",org.\r\n" + " eclipse.osgi.service.urlconversion;version=\"1.0\",org.eclipse.osgi.sto\r\n" + " ragemanager;version=\"1.0\",org.eclipse.osgi.util;version=\"1.0\",org.osg\r\n" + " i.framework;version=\"1.3\",org.osgi.service.condpermadmin;version=\"1.0\r\n" + " \",org.osgi.service.packageadmin;version=\"1.2\",org.osgi.service.permis\r\n" + " sionadmin;version=\"1.2\",org.osgi.service.startlevel;version=\"1.0\",org\r\n" + " .osgi.service.url;version=\"1.0\",org.osgi.util.tracker;version=\"1.3.2\"\r\n" + " ,org.eclipse.core.runtime.adaptor;x-friends:=\"org.eclipse.core.runtim\r\n" + " e\",org.eclipse.core.runtime.internal.adaptor;x-internal:=true,org.ecl\r\n"
-				+ " ipse.core.runtime.internal.stats;x-friends:=\"org.eclipse.core.runtime\r\n" + " \",org.eclipse.osgi.baseadaptor;x-internal:=true,org.eclipse.osgi.base\r\n" + " adaptor.bundlefile;x-internal:=true,org.eclipse.osgi.baseadaptor.hook\r\n" + " s;x-internal:=true,org.eclipse.osgi.baseadaptor.loader;x-internal:=tr\r\n" + " ue,org.eclipse.osgi.framework.adaptor;x-internal:=true,org.eclipse.os\r\n" + " gi.framework.debug;x-internal:=true,org.eclipse.osgi.framework.intern\r\n" + " al.core;x-internal:=true,org.eclipse.osgi.framework.internal.protocol\r\n" + " ;x-internal:=true,org.eclipse.osgi.framework.internal.protocol.bundle\r\n" + " entry;x-internal:=true,org.eclipse.osgi.framework.internal.protocol.b\r\n"
-				+ " undleresource;x-internal:=true,org.eclipse.osgi.framework.internal.pr\r\n" + " otocol.reference;x-internal:=true,org.eclipse.osgi.framework.internal\r\n" + " .reliablefile;x-internal:=true,org.eclipse.osgi.framework.launcher;x-\r\n" + " internal:=true,org.eclipse.osgi.framework.util;x-internal:=true,org.e\r\n" + " clipse.osgi.internal.baseadaptor;x-internal:=true,org.eclipse.osgi.in\r\n" + " ternal.module;x-internal:=true,org.eclipse.osgi.internal.profile;x-in\r\n" + " ternal:=true,org.eclipse.osgi.internal.resolver;x-internal:=true,org.\r\n" + " eclipse.osgi.internal.verifier;x-internal:=true,org.eclipse.osgi.inte\r\n" + " rnal.provisional.verifier;x-friends:=\"org.eclipse.update.core,org.ecl\r\n" + " ipse.ui.workbench\"\r\n" + "Bundle-Version: 3.3.0.v20060925\r\n"
-				+ "Eclipse-SystemBundle: true\r\n" + "Bundle-Copyright: %copyright\r\n" + "Bundle-Name: %systemBundle\r\n" + "Bundle-Description: %systemBundle\r\n" + "Bundle-DocUrl: http://www.eclipse.org\r\n" + "Bundle-ManifestVersion: 2\r\n" + "Export-Service: org.osgi.service.packageadmin.PackageAdmin,org.osgi.se\r\n" + " rvice.permissionadmin.PermissionAdmin,org.osgi.service.startlevel.Sta\r\n" + " rtLevel,org.eclipse.osgi.service.debug.DebugOptions\r\n" + "Bundle-Vendor: %eclipse.org\r\n" + "Main-Class: org.eclipse.core.runtime.adaptor.EclipseStarter\r\n" + "Bundle-SymbolicName: org.eclipse.osgi; singleton:=true\r\n" + "Bundle-Localization: systembundle\r\n" + "Eclipse-ExtensibleAPI: true\r\n" + "\r\n" + "";
-		touchpointData.put("manifest", manifest);
-		touchpointData.put("install", "BAD");
-
-		IInstallableUnitFragment[] cus = new IInstallableUnitFragment[1];
-		InstallableUnitFragmentDescription desc = new InstallableUnitFragmentDescription();
-		desc.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
-		cus[0] = MetadataFactory.createInstallableUnitFragment(desc);
-
-		//IArtifactKey key = new ArtifactKey("eclipse", "plugin", "org.eclipse.osgi", new Version("3.3.1.R33x_v20070828"));
-		//iu.setArtifacts(new IArtifactKey[] {key});
-
-		IInstallableUnit iu = MetadataFactory.createInstallableUnit(description);
-		return MetadataFactory.createResolvedInstallableUnit(iu, cus);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseSetTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseSetTest.java
deleted file mode 100644
index 66f7856..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseSetTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-/**
- * Simple test of the engine API.
- */
-public class PhaseSetTest extends AbstractProvisioningTest {
-	public PhaseSetTest(String name) {
-		super(name);
-	}
-
-	public PhaseSetTest() {
-		super("");
-	}
-
-	public void testNullPhases() {
-		try {
-			new PhaseSet(null) {
-				// empty PhaseSet
-			};
-		} catch (IllegalArgumentException exepcted) {
-			return;
-		}
-		fail();
-	}
-
-	public void testEmptyPhases() {
-		IProfile profile = createProfile("PhaseSetTest");
-		PhaseSet phaseSet = new PhaseSet(new Phase[] {}) {
-			// empty PhaseSet
-		};
-		InstallableUnitOperand op = new InstallableUnitOperand(createResolvedIU(createIU("iu")), null);
-		InstallableUnitOperand[] operands = new InstallableUnitOperand[] {op};
-
-		ProvisioningContext context = new ProvisioningContext();
-		IStatus result = phaseSet.perform(new EngineSession(profile, context), profile, operands, context, new NullProgressMonitor());
-		assertTrue(result.isOK());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseTest.java
deleted file mode 100644
index cabd2f4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/PhaseTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import java.util.Map;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Simple test of the engine API.
- */
-public class PhaseTest extends AbstractProvisioningTest {
-	public static class TestPhaseSet extends PhaseSet {
-
-		public TestPhaseSet() {
-			super(new Phase[] {new TestPhase()});
-		}
-
-		public TestPhaseSet(Phase phase) {
-			super(new Phase[] {phase});
-		}
-
-		public TestPhaseSet(Phase[] phases) {
-			super(phases);
-		}
-	}
-
-	public static class TestPhase extends InstallableUnitPhase {
-
-		boolean completeOperand;
-		boolean getAction;
-		boolean initializeOperand;
-		boolean completePhase;
-		boolean initializePhase;
-
-		protected TestPhase() {
-			super("test", 1);
-		}
-
-		protected TestPhase(String phaseId, int weight) {
-			super(phaseId, weight);
-		}
-
-		protected IStatus completeOperand(IProfile profile, InstallableUnitOperand operand, Map parameters, IProgressMonitor monitor) {
-			completeOperand = true;
-			return super.completeOperand(profile, operand, parameters, monitor);
-		}
-
-		protected IStatus initializeOperand(IProfile profile, InstallableUnitOperand operand, Map parameters, IProgressMonitor monitor) {
-			initializeOperand = true;
-			return super.initializeOperand(profile, operand, parameters, monitor);
-		}
-
-		protected IStatus completeInstallableUnitPhase(IProgressMonitor monitor, IProfile profile, Map parameters) {
-			completePhase = true;
-			return super.completeInstallableUnitPhase(monitor, profile, parameters);
-		}
-
-		protected IStatus initializeInstallableUnitPhase(IProgressMonitor monitor, IProfile profile, Map parameters) {
-			initializePhase = true;
-			return super.initializeInstallableUnitPhase(monitor, profile, parameters);
-		}
-
-		protected ProvisioningAction[] getActions(InstallableUnitOperand operand) {
-			return null;
-		}
-	}
-
-	private ServiceReference engineRef;
-	private IEngine engine;
-
-	public PhaseTest(String name) {
-		super(name);
-	}
-
-	public PhaseTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		engineRef = TestActivator.getContext().getServiceReference(IEngine.SERVICE_NAME);
-		engine = (IEngine) TestActivator.getContext().getService(engineRef);
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		engine = null;
-		TestActivator.getContext().ungetService(engineRef);
-	}
-
-	public void testNullPhaseId() {
-		try {
-			new TestPhase(null, 1);
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testEmptyPhaseId() {
-		try {
-			new TestPhase("", 1);
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNegativeWeight() {
-		try {
-			new TestPhase("xyz", -1);
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testZeroWeight() {
-		try {
-			new TestPhase("xyz", 0);
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testPerform() {
-		PhaseSet phaseSet = new TestPhaseSet();
-		IProfile profile = createProfile("PhaseTest");
-
-		engine.perform(profile, phaseSet, new InstallableUnitOperand[0], null, new NullProgressMonitor());
-	}
-
-	public void testInitCompletePhase() {
-		TestPhase phase = new TestPhase() {
-			protected IStatus initializePhase(IProgressMonitor monitor, IProfile profile, Map parameters) {
-				assertFalse(initializePhase);
-				assertFalse(completePhase);
-				super.initializePhase(monitor, profile, parameters);
-				assertTrue(initializePhase);
-				assertFalse(completePhase);
-				return null;
-			}
-
-			protected IStatus completePhase(IProgressMonitor monitor, IProfile profile, Map parameters) {
-				assertTrue(initializePhase);
-				assertFalse(completePhase);
-				super.completePhase(monitor, profile, parameters);
-				assertTrue(initializePhase);
-				assertTrue(completePhase);
-				return null;
-			}
-		};
-		PhaseSet phaseSet = new TestPhaseSet(phase);
-		IProfile profile = createProfile("PhaseTest");
-		IInstallableUnit unit = createIU("unit");
-		engine.perform(profile, phaseSet, new InstallableUnitOperand[] {new InstallableUnitOperand(null, unit)}, null, new NullProgressMonitor());
-		assertTrue(phase.initializePhase);
-		assertTrue(phase.completePhase);
-	}
-
-	public void testInitCompleteOperand() {
-		TestPhase phase = new TestPhase() {
-			protected IStatus completeOperand(IProfile profile, Operand operand, Map parameters, IProgressMonitor monitor) {
-				assertTrue(initializeOperand);
-				assertFalse(completeOperand);
-				super.completeOperand(profile, operand, parameters, monitor);
-				assertTrue(initializeOperand);
-				assertTrue(completeOperand);
-				return null;
-			}
-
-			protected IStatus initializeOperand(IProfile profile, Operand operand, Map parameters, IProgressMonitor monitor) {
-				assertFalse(initializeOperand);
-				assertFalse(completeOperand);
-				super.initializeOperand(profile, operand, parameters, monitor);
-				assertTrue(initializeOperand);
-				assertFalse(completeOperand);
-				return null;
-			}
-		};
-		PhaseSet phaseSet = new TestPhaseSet(phase);
-		IProfile profile = createProfile("PhaseTest");
-		IInstallableUnit unit = createIU("testInitCompleteOperand");
-
-		engine.perform(profile, phaseSet, new InstallableUnitOperand[] {new InstallableUnitOperand(null, unit)}, null, new NullProgressMonitor());
-		assertTrue(phase.initializeOperand);
-		assertTrue(phase.completeOperand);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileRegistryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileRegistryTest.java
deleted file mode 100644
index 224e843..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileRegistryTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-
-/**
- * Simple test of the engine API.
- */
-public class ProfileRegistryTest extends AbstractProvisioningTest {
-	private static final String PROFILE_NAME = "ProfileRegistryTest.profile";
-	private IProfileRegistry registry;
-	private ServiceReference registryRef;
-
-	public ProfileRegistryTest() {
-		super("");
-	}
-
-	public ProfileRegistryTest(String name) {
-		super(name);
-	}
-
-	protected void getServices() {
-		registryRef = TestActivator.getContext().getServiceReference(IProfileRegistry.class.getName());
-		registry = (IProfileRegistry) TestActivator.getContext().getService(registryRef);
-	}
-
-	private void restart() {
-		try {
-			ungetServices();
-			TestActivator.getBundle("org.eclipse.equinox.p2.exemplarysetup").stop();
-			TestActivator.getBundle("org.eclipse.equinox.p2.exemplarysetup").start();
-			getServices();
-		} catch (Exception e) {
-			fail();
-			e.printStackTrace();
-		}
-	}
-
-	protected void setUp() throws Exception {
-		getServices();
-		//ensure we start in a clean state
-		registry.removeProfile(PROFILE_NAME);
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		ungetServices();
-	}
-
-	public void testAddRemoveProfile() {
-		assertNull(registry.getProfile(PROFILE_NAME));
-		IProfile test = createProfile(PROFILE_NAME);
-		assertEquals(test.getProfileId(), registry.getProfile(PROFILE_NAME).getProfileId());
-		registry.removeProfile(PROFILE_NAME);
-		assertNull(registry.getProfile(PROFILE_NAME));
-	}
-
-	public void testPeristence() {
-		assertNull(registry.getProfile(PROFILE_NAME));
-		IProfile test = createProfile(PROFILE_NAME);
-		assertEquals(test.getProfileId(), registry.getProfile(PROFILE_NAME).getProfileId());
-
-		restart();
-		test = registry.getProfile(PROFILE_NAME);
-		assertNotNull(test);
-		registry.removeProfile(PROFILE_NAME);
-
-		restart();
-		assertNull(registry.getProfile(PROFILE_NAME));
-	}
-
-	private void ungetServices() {
-		registry = null;
-		TestActivator.getContext().ungetService(registryRef);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileTest.java
deleted file mode 100644
index a09a825..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/ProfileTest.java
+++ /dev/null
@@ -1,461 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import java.io.*;
-import java.util.*;
-import java.util.Map.Entry;
-import javax.xml.parsers.ParserConfigurationException;
-import org.eclipse.equinox.internal.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-import org.xml.sax.*;
-
-/**
- * Simple test of the engine API.
- */
-public class ProfileTest extends AbstractProvisioningTest {
-
-	public ProfileTest(String name) {
-		super(name);
-	}
-
-	public ProfileTest() {
-		super("");
-	}
-
-	public void testNullProfile() {
-		try {
-			createProfile(null);
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testEmptyProfile() {
-		try {
-			createProfile("");
-		} catch (IllegalArgumentException expected) {
-			return;
-		}
-		fail();
-	}
-
-	public void testNestedProfileStructure() {
-		IProfile parent = createProfile("parent");
-		IProfile child = createProfile("child", "parent");
-		parent = getProfile("parent");
-		assertTrue("Parentless profile should be a root.", parent.isRootProfile());
-		assertFalse("Child profile should not be a root.", child.isRootProfile());
-		assertTrue("Parent should be parent of child", child.getParentProfile().getProfileId().equals(parent.getProfileId()));
-		assertTrue("Parent should have one child.", parent.getSubProfileIds().length == 1);
-		assertTrue("Child should have no children.", child.getSubProfileIds().length == 0);
-
-		IProfile grandchild = createProfile("grand", "child");
-		child = getProfile("child");
-		assertFalse("Grandchild profile should not be a root.", grandchild.isRootProfile());
-		assertTrue("Parent should have one child.", parent.getSubProfileIds().length == 1);
-		assertTrue("Child should have one child.", child.getSubProfileIds().length == 1);
-		assertTrue("Grandparent of grandchild should be parent of child.", grandchild.getParentProfile().getParentProfile().getProfileId().equals(parent.getProfileId()));
-	}
-
-	/*	The test profile has the following structure and properties where
-	 *  	id{x,y}  indicates a profile with id "id" and properties defined
-	 *				 with keys "x" and "y"
-	 *
-	 *                                    grandchild00{foo}
-	 *                                   /
-	 *                                  /
-	 *                      child0{foo} | --- grandchild01{}
-	 *                     /             \
-	 *					  /               \
-	 *                   /                 grandchild01{bar}
-	 *	parent{foo,bar} |				   
-	 *                   \            grandchild10{foo}
-	 *                    \          /
-	 *                     child1{} |
-	 *								 \
-	 *                                grandchild11{}
-	 *
-	 */
-	private static String parentId = "parent";
-	private static String child0Id = "child0";
-	private static String grandchild00Id = "grand00";
-	private static String grandchild01Id = "grand01";
-	private static String grandchild02Id = "grand02";
-	private static String child1Id = "child1";
-	private static String grandchild10Id = "grand10";
-	private static String grandchild11Id = "grand11";
-
-	private static String key = "org.eclipse.p2.foo";
-	private static String parentValue = "parent";
-	private static String child0Value = "child0";
-	private static String grandchild00Value = "grandchild00";
-	private static String grandchild02Value = "grandchild02";
-	private static String grandchild10Value = "grandchild10";
-	private static String otherKey = "org.eclipse.p2.bar";
-	private static String otherValue = "other";
-
-	// Create the profiles and test get after set
-	// for associated properties.
-	private IProfile[] createTestProfiles() {
-
-		Map properties = new HashMap();
-
-		properties.put(key, parentValue);
-		properties.put(otherKey, otherValue);
-		IProfile parent = createProfile(parentId, null, properties);
-		properties.clear();
-		assertTrue(parentValue.equals(parent.getProperty(key)));
-		assertTrue(otherValue.equals(parent.getProperty(otherKey)));
-
-		properties.put(key, child0Value);
-		IProfile child0 = createProfile(child0Id, parentId, properties);
-		properties.clear();
-		assertTrue(child0Value.equals(child0.getProperty(key)));
-
-		IProfile child1 = createProfile(child1Id, parentId, properties);
-		// no value in child1
-
-		properties.put(key, grandchild00Value);
-		IProfile grandchild00 = createProfile(grandchild00Id, child0Id, properties);
-		properties.clear();
-		assertTrue(grandchild00Value.equals(grandchild00.getProperty(key)));
-
-		IProfile grandchild01 = createProfile(grandchild01Id, child0Id);
-		// no value in grandchild01
-
-		properties.put(otherKey, grandchild02Value);
-		IProfile grandchild02 = createProfile(grandchild02Id, child0Id, properties);
-		properties.clear();
-		assertTrue(grandchild02Value.equals(grandchild02.getProperty(otherKey)));
-
-		properties.put(key, grandchild10Value);
-		IProfile grandchild10 = createProfile(grandchild10Id, child1Id, properties);
-		properties.clear();
-		assertTrue(grandchild10Value.equals(grandchild10.getProperty(key)));
-
-		IProfile grandchild11 = createProfile(grandchild11Id, child1Id);
-		// no value in grandchild11
-
-		parent = getProfile(parentId);
-		child0 = getProfile(child0Id);
-		child1 = getProfile(child1Id);
-		grandchild00 = getProfile(grandchild00Id);
-		grandchild01 = getProfile(grandchild01Id);
-		grandchild02 = getProfile(grandchild02Id);
-		grandchild10 = getProfile(grandchild10Id);
-		grandchild11 = getProfile(grandchild11Id);
-
-		IProfile[] profiles = {parent, child0, child1, grandchild00, grandchild01, grandchild02, grandchild10, grandchild11};
-		return profiles;
-	}
-
-	public void testNestedProfileProperties() {
-		validateProfiles(createTestProfiles());
-	}
-
-	public void validateProfiles(IProfile[] profiles) {
-		IProfile parent = profiles[0];
-		IProfile child0 = profiles[1];
-		IProfile child1 = profiles[2];
-		IProfile grandchild00 = profiles[3];
-		IProfile grandchild01 = profiles[4];
-		IProfile grandchild02 = profiles[5];
-		IProfile grandchild10 = profiles[6];
-		IProfile grandchild11 = profiles[7];
-
-		assertTrue(parentId.equals(parent.getProfileId()));
-		assertTrue("Profile should have 3 local properties", parent.getLocalProperties().size() == 2);
-		assertTrue(parentValue.equals(parent.getProperty(key)));
-		assertTrue(otherValue.equals(parent.getProperty(otherKey)));
-		assertTrue("Parent should have 2 children.", parent.getSubProfileIds().length == 2);
-
-		assertTrue(child0Id.equals(child0.getProfileId()));
-		assertTrue("First Child should have 1 local properties.", child0.getLocalProperties().size() == 1);
-		assertTrue(child0Value.equals(child0.getProperty(key)));
-		assertTrue(otherValue.equals(child0.getProperty(otherKey)));
-		assertTrue("First Child should have 3 children.", child0.getSubProfileIds().length == 3);
-
-		assertTrue(child1Id.equals(child1.getProfileId()));
-		assertTrue("Second Child should have 0 local properties.", child1.getLocalProperties().size() == 0);
-		assertTrue(parentValue.equals(child1.getProperty(key)));
-		assertTrue(otherValue.equals(child1.getProperty(otherKey)));
-		assertTrue("Second Child should have 2 children.", child1.getSubProfileIds().length == 2);
-
-		assertTrue(grandchild00Id.equals(grandchild00.getProfileId()));
-		assertTrue("First Grandchild of first Child should have 1 property.", grandchild00.getLocalProperties().size() == 1);
-		assertTrue(grandchild00Value.equals(grandchild00.getProperty(key)));
-		assertTrue(otherValue.equals(grandchild00.getProperty(otherKey)));
-
-		assertTrue(grandchild01Id.equals(grandchild01.getProfileId()));
-		assertTrue("Second Grandchild of first Child should have 0 properties.", grandchild01.getLocalProperties().size() == 0);
-		assertTrue(child0Value.equals(grandchild01.getProperty(key)));
-		assertTrue(otherValue.equals(grandchild01.getProperty(otherKey)));
-
-		assertTrue(grandchild02Id.equals(grandchild02.getProfileId()));
-		assertTrue("Third Grandchild of first Child should have 1 property.", grandchild02.getLocalProperties().size() == 1);
-		assertTrue(child0Value.equals(grandchild02.getProperty(key)));
-		assertTrue(grandchild02Value.equals(grandchild02.getProperty(otherKey)));
-
-		assertTrue(grandchild10Id.equals(grandchild10.getProfileId()));
-		assertTrue("First Grandchild of second Child should have 1 property.", grandchild10.getLocalProperties().size() == 1);
-		assertTrue(grandchild10Value.equals(grandchild10.getProperty(key)));
-		assertTrue(otherValue.equals(grandchild10.getProperty(otherKey)));
-
-		assertTrue(grandchild11Id.equals(grandchild11.getProfileId()));
-		assertTrue("Second Grandchild of second Child should have 0 properties.", grandchild11.getLocalProperties().size() == 0);
-		assertTrue(parentValue.equals(grandchild11.getProperty(key)));
-		assertTrue(otherValue.equals(grandchild11.getProperty(otherKey)));
-	}
-
-	private static String PROFILE_TEST_TARGET = "profileTest";
-	private static Version PROFILE_TEST_VERSION = new Version("0.0.1");
-
-	private static String PROFILE_TEST_ELEMENT = "test";
-	public static final String PROFILES_ELEMENT = "profiles"; //$NON-NLS-1$
-
-	class ProfileStringWriter extends ProfileWriter {
-
-		public ProfileStringWriter(ByteArrayOutputStream stream) throws IOException {
-			super(stream, new ProcessingInstruction[] {ProcessingInstruction.makeClassVersionInstruction(PROFILE_TEST_TARGET, Profile.class, PROFILE_TEST_VERSION)});
-		}
-
-		public void writeTest(IProfile[] profiles) {
-			start(PROFILE_TEST_ELEMENT);
-			writeProfiles(profiles);
-			end(PROFILE_TEST_ELEMENT);
-		}
-
-		public void writeProfiles(IProfile[] profiles) {
-			if (profiles.length > 0) {
-				start(PROFILES_ELEMENT);
-				attribute(COLLECTION_SIZE_ATTRIBUTE, profiles.length);
-				for (int i = 0; i < profiles.length; i++) {
-					writeProfile(profiles[i]);
-				}
-				end(PROFILES_ELEMENT);
-			}
-		}
-	}
-
-	class ProfileStringParser extends ProfileParser {
-
-		private IProfile[] profiles = null;
-
-		public ProfileStringParser(BundleContext context, String bundleId) {
-			super(context, bundleId);
-		}
-
-		public void parse(String profileString) throws IOException {
-			this.status = null;
-			try {
-				getParser();
-				TestHandler testHandler = new TestHandler();
-				xmlReader.setContentHandler(new ProfileDocHandler(PROFILE_TEST_ELEMENT, testHandler));
-				xmlReader.parse(new InputSource(new StringReader(profileString)));
-				if (isValidXML()) {
-					profiles = testHandler.profiles;
-				}
-			} catch (SAXException e) {
-				throw new IOException(e.getMessage());
-			} catch (ParserConfigurationException e) {
-				fail();
-			}
-		}
-
-		private final class ProfileDocHandler extends DocHandler {
-
-			public ProfileDocHandler(String rootName, RootHandler rootHandler) {
-				super(rootName, rootHandler);
-			}
-
-			public void processingInstruction(String target, String data) throws SAXException {
-				if (PROFILE_TEST_TARGET.equals(target)) {
-					String clazz = extractPIClass(data);
-					try {
-						if (!Class.forName(clazz).equals(Profile.class)) {
-							throw new SAXException("Wrong class '" + clazz + "' in processing instruction"); //$NON-NLS-1$//$NON-NLS-2$
-						}
-					} catch (ClassNotFoundException e) {
-						throw new SAXException("Profile class '" + clazz + "' not found"); //$NON-NLS-1$//$NON-NLS-2$
-					}
-
-					Version profileTestVersion = extractPIVersion(target, data);
-					if (!PROFILE_TEST_VERSION.equals(profileTestVersion)) {
-						throw new SAXException("Bad profile test version.");
-					}
-				}
-			}
-		}
-
-		private final class TestHandler extends RootHandler {
-
-			private ProfilesHandler profilesHandler;
-			IProfile[] profiles;
-
-			protected void handleRootAttributes(Attributes attributes) {
-			}
-
-			public void startElement(String name, Attributes attributes) throws SAXException {
-				if (PROFILES_ELEMENT.equals(name)) {
-					if (profilesHandler == null) {
-						profilesHandler = new ProfilesHandler(this, attributes);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-
-			protected void finished() {
-				if (isValidXML()) {
-					if (profilesHandler != null) {
-						profiles = profilesHandler.getProfiles();
-					}
-				}
-			}
-
-		}
-
-		protected class ProfilesHandler extends AbstractHandler {
-
-			private final Map profileHandlers;
-
-			public ProfilesHandler(AbstractHandler parentHandler, Attributes attributes) {
-				super(parentHandler, PROFILES_ELEMENT);
-				String size = parseOptionalAttribute(attributes, COLLECTION_SIZE_ATTRIBUTE);
-				profileHandlers = (size != null ? new HashMap(new Integer(size).intValue()) : new HashMap(4));
-			}
-
-			public IProfile[] getProfiles() {
-				if (profileHandlers.isEmpty())
-					return new IProfile[0];
-
-				Map profileMap = new LinkedHashMap();
-				for (Iterator it = profileHandlers.keySet().iterator(); it.hasNext();) {
-					String profileId = (String) it.next();
-					addProfile(profileId, profileMap);
-				}
-
-				return (IProfile[]) profileMap.values().toArray(new IProfile[profileMap.size()]);
-			}
-
-			private void addProfile(String profileId, Map profileMap) {
-				if (profileMap.containsKey(profileId))
-					return;
-
-				ProfileHandler profileHandler = (ProfileHandler) profileHandlers.get(profileId);
-				Profile parentProfile = null;
-
-				String parentId = profileHandler.getParentId();
-				if (parentId != null) {
-					addProfile(parentId, profileMap);
-					parentProfile = (Profile) profileMap.get(parentId);
-				}
-
-				Profile profile = new Profile(profileId, parentProfile, profileHandler.getProperties());
-				profile.setTimestamp(profileHandler.getTimestamp());
-				IInstallableUnit[] ius = profileHandler.getInstallableUnits();
-				if (ius != null) {
-					for (int i = 0; i < ius.length; i++) {
-						IInstallableUnit iu = ius[i];
-						profile.addInstallableUnit(iu);
-						Map iuProperties = profileHandler.getIUProperties(iu);
-						if (iuProperties != null) {
-							for (Iterator it = iuProperties.entrySet().iterator(); it.hasNext();) {
-								Entry entry = (Entry) it.next();
-								String key = (String) entry.getKey();
-								String value = (String) entry.getValue();
-								profile.setInstallableUnitProperty(iu, key, value);
-							}
-						}
-					}
-				}
-				profileMap.put(profileId, profile);
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (name.equals(PROFILE_ELEMENT)) {
-					new ProfilesProfileHandler(this, attributes, profileHandlers);
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-		}
-
-		public class ProfilesProfileHandler extends ProfileHandler {
-			private final Map profileHandlers;
-
-			public ProfilesProfileHandler(ProfilesHandler profilesHandler, Attributes attributes, Map profileHandlers) {
-				this.profileHandlers = profileHandlers;
-				this.parentHandler = profilesHandler;
-				xmlReader.setContentHandler(this);
-				handleRootAttributes(attributes);
-			}
-
-			protected void finished() {
-				if (isValidXML()) {
-					profileHandlers.put(getProfileId(), this);
-				}
-			}
-		}
-
-		protected String getErrorMessage() {
-			return "Error parsing profile string";
-		}
-
-		protected Object getRootObject() {
-			Map result = new HashMap();
-			for (int i = 0; i < profiles.length; i++) {
-				result.put(profiles[i].getProfileId(), profiles[i]);
-			}
-			return result;
-		}
-	}
-
-	public void testProfilePersistence() throws IOException {
-		IProfile[] testProfiles = createTestProfiles();
-		ByteArrayOutputStream output0 = new ByteArrayOutputStream(1492);
-		ProfileStringWriter writer0 = new ProfileStringWriter(output0);
-		writer0.writeTest(testProfiles);
-		String profileText0 = output0.toString();
-		output0.close();
-
-		ProfileStringParser parser = new ProfileStringParser(TestActivator.context, TestActivator.PI_PROV_TESTS);
-		parser.parse(profileText0);
-		assertTrue("Error parsing test profile: " + parser.getStatus().getMessage(), parser.getStatus().isOK());
-		Map profileMap = (Map) parser.getRootObject();
-		IProfile parent = (IProfile) profileMap.get(parentId);
-		IProfile child0 = (IProfile) profileMap.get(child0Id);
-		IProfile child1 = (IProfile) profileMap.get(child1Id);
-		IProfile grandchild00 = (IProfile) profileMap.get(grandchild00Id);
-		IProfile grandchild01 = (IProfile) profileMap.get(grandchild01Id);
-		IProfile grandchild02 = (IProfile) profileMap.get(grandchild02Id);
-		IProfile grandchild10 = (IProfile) profileMap.get(grandchild10Id);
-		IProfile grandchild11 = (IProfile) profileMap.get(grandchild11Id);
-		IProfile[] profiles = {parent, child0, child1, grandchild00, grandchild01, grandchild02, grandchild10, grandchild11};
-		validateProfiles(profiles);
-		ByteArrayOutputStream output1 = new ByteArrayOutputStream(1492);
-		ProfileStringWriter writer = new ProfileStringWriter(output1);
-
-		writer.writeTest(profiles);
-		String profileText1 = output1.toString();
-		output1.close();
-		assertTrue("Profile write after read after write produced different XML", profileText1.equals(profileText0));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/TouchpointTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/TouchpointTest.java
deleted file mode 100644
index 34bed86..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/TouchpointTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.engine;
-
-import java.util.Map;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.eclipse.equinox.p2.tests.engine.PhaseTest.TestPhaseSet;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-/**
- * Simple test of the engine API.
- */
-public class TouchpointTest extends AbstractProvisioningTest {
-
-	static volatile TestTouchpoint testTouchpoint;
-
-	abstract static class TestTouchpoint extends Touchpoint {
-		int completeOperand;
-		int completePhase;
-		int initializeOperand;
-		int initializePhase;
-
-		public TestTouchpoint() {
-			testTouchpoint = this;
-		}
-
-		public IStatus completeOperand(IProfile profile, String phaseId, InstallableUnitOperand operand, Map parameters) {
-			completeOperand++;
-			return super.completeOperand(profile, phaseId, operand, parameters);
-		}
-
-		public IStatus completePhase(IProgressMonitor monitor, IProfile profile, String phaseId, Map touchpointParameters) {
-			completePhase++;
-			return super.completePhase(monitor, profile, phaseId, touchpointParameters);
-		}
-
-		public IStatus initializeOperand(IProfile profile, String phaseId, InstallableUnitOperand operand, Map parameters) {
-			initializeOperand++;
-			return super.initializeOperand(profile, phaseId, operand, parameters);
-		}
-
-		public IStatus initializePhase(IProgressMonitor monitor, IProfile profile, String phaseId, Map touchpointParameters) {
-			initializePhase++;
-			return super.initializePhase(monitor, profile, phaseId, touchpointParameters);
-		}
-
-		public ProvisioningAction getAction(String actionId) {
-			return null;
-		}
-
-		public TouchpointType getTouchpointType() {
-			return MetadataFactory.createTouchpointType("test", new Version("1.0.0"));
-		}
-	}
-
-	public static class OperandTestTouchpoint extends TestTouchpoint {
-		public IStatus completeOperand(IProfile profile, String phaseId, InstallableUnitOperand operand, Map parameters) {
-			assertEquals(1, initializeOperand);
-			assertEquals(0, completeOperand);
-			super.completeOperand(profile, phaseId, operand, parameters);
-			assertEquals(1, initializeOperand);
-			assertEquals(1, completeOperand);
-			return null;
-		}
-
-		public IStatus initializeOperand(IProfile profile, String phaseId, InstallableUnitOperand operand, Map parameters) {
-			assertEquals(0, initializeOperand);
-			assertEquals(0, completeOperand);
-			super.initializeOperand(profile, phaseId, operand, parameters);
-			assertEquals(1, initializeOperand);
-			assertEquals(0, completeOperand);
-			return null;
-		}
-	}
-
-	public static class PhaseTestTouchpoint extends TestTouchpoint {
-		public IStatus completePhase(IProgressMonitor monitor, IProfile profile, String phaseId, Map parameters) {
-			assertEquals(1, initializePhase);
-			assertEquals(0, completePhase);
-			super.completePhase(monitor, profile, phaseId, parameters);
-			assertEquals(1, initializePhase);
-			assertEquals(1, completePhase);
-			return null;
-		}
-
-		public IStatus initializePhase(IProgressMonitor monitor, IProfile profile, String phaseId, Map parameters) {
-			assertEquals(0, initializePhase);
-			assertEquals(0, completePhase);
-			super.initializePhase(monitor, profile, phaseId, parameters);
-			assertEquals(1, initializePhase);
-			assertEquals(0, completePhase);
-			return null;
-		}
-	}
-
-	private ServiceReference engineRef;
-	private IEngine engine;
-
-	public TouchpointTest(String name) {
-		super(name);
-	}
-
-	public TouchpointTest() {
-		super("");
-	}
-
-	protected void setUp() throws Exception {
-		engineRef = TestActivator.getContext().getServiceReference(IEngine.SERVICE_NAME);
-		engine = (IEngine) TestActivator.getContext().getService(engineRef);
-	}
-
-	protected void tearDown() throws Exception {
-		engine = null;
-		TestActivator.getContext().ungetService(engineRef);
-	}
-
-	public void testInitCompleteOperand() {
-		PhaseSet phaseSet = new TestPhaseSet();
-		IProfile profile = createProfile("testProfile");
-		engine.perform(profile, phaseSet, new InstallableUnitOperand[] {new InstallableUnitOperand(null, createTestIU("operandTest"))}, null, new NullProgressMonitor());
-		assertEquals(1, testTouchpoint.initializeOperand);
-		assertEquals(1, testTouchpoint.completeOperand);
-	}
-
-	public void testInitCompletePhase() {
-		PhaseSet phaseSet = new TestPhaseSet();
-		IProfile profile = createProfile("testProfile");
-		engine.perform(profile, phaseSet, new InstallableUnitOperand[] {new InstallableUnitOperand(null, createTestIU("phaseTest"))}, null, new NullProgressMonitor());
-		assertEquals(1, testTouchpoint.initializeOperand);
-		assertEquals(1, testTouchpoint.completeOperand);
-	}
-
-	private IInstallableUnit createTestIU(String touchpointName) {
-		InstallableUnitDescription description = new MetadataFactory.InstallableUnitDescription();
-		description.setId("org.eclipse.test");
-		description.setVersion(new Version("1.0.0"));
-		description.setTouchpointType(MetadataFactory.createTouchpointType(touchpointName, new Version("1.0.0")));
-		IInstallableUnit unit = MetadataFactory.createInstallableUnit(description);
-		return createResolvedIU(unit);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/DirectorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/DirectorTest.java
deleted file mode 100644
index 816f091..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/DirectorTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.full;
-
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.ServiceReference;
-
-/**
- * This test installs or uninstalls the IU defined by the property "eclipse.p2.autoInstall".
- * Metadata for the IUs to install must be generated separately before running this test.
- */
-public class DirectorTest extends AbstractProvisioningTest {
-
-	public void testInstallIU() throws ProvisionException {
-		ServiceReference sr = TestActivator.context.getServiceReference(IDirector.class.getName());
-		if (sr == null) {
-			throw new RuntimeException("Director service not available");
-		}
-		IDirector director = (IDirector) TestActivator.context.getService(sr);
-		if (director == null) {
-			throw new RuntimeException("Director could not be loaded");
-		}
-
-		ServiceReference sr2 = TestActivator.context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		IMetadataRepositoryManager mgr = (IMetadataRepositoryManager) TestActivator.context.getService(sr2);
-		if (mgr == null) {
-			throw new RuntimeException("Repository manager could not be loaded");
-		}
-
-		String autoInstall = System.getProperty("eclipse.p2.autoInstall");
-		Collector allJobs = mgr.query(new InstallableUnitQuery(autoInstall, VersionRange.emptyRange), new Collector(), null);
-
-		String installFolder = System.getProperty(IProfile.PROP_INSTALL_FOLDER);
-		ServiceReference profileRegSr = TestActivator.context.getServiceReference(IProfileRegistry.class.getName());
-		IProfileRegistry profileRegistry = (IProfileRegistry) TestActivator.context.getService(profileRegSr);
-		if (profileRegistry == null) {
-			throw new RuntimeException("Profile registry service not available");
-		}
-
-		String newFlavor = System.getProperty("eclipse.p2.configurationFlavor");
-		boolean doUninstall = (Boolean.TRUE.equals(Boolean.valueOf(System.getProperty("eclipse.p2.doUninstall"))));
-
-		IProfile p = null;
-		if (doUninstall) {
-			p = profileRegistry.getProfile(installFolder);
-			if (p == null)
-				throw new RuntimeException("Uninstalling from a nonexistent profile");
-		} else {
-			Map properties = new HashMap();
-			properties.put(IProfile.PROP_INSTALL_FOLDER, installFolder);
-			properties.put(IProfile.PROP_FLAVOR, newFlavor);
-			EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(TestActivator.getContext(), EnvironmentInfo.class.getName());
-			if (info != null)
-				properties.put(IProfile.PROP_ENVIRONMENTS, "osgi.os=" + info.getOS() + ",osgi.ws=" + info.getWS() + ",osgi.arch=" + info.getOSArch());
-
-			p = createProfile(installFolder, null, properties);
-		}
-
-		IInstallableUnit[] allRoots = new IInstallableUnit[1];
-		IStatus operationStatus = null;
-		if (!allJobs.isEmpty()) {
-			allRoots[0] = (IInstallableUnit) allJobs.iterator().next();
-			ProfileChangeRequest request = new ProfileChangeRequest(p);
-			if (!doUninstall)
-				request.addInstallableUnits(allRoots);
-			else
-				request.removeInstallableUnits(allRoots);
-			operationStatus = director.provision(request, null, null);
-		} else {
-			operationStatus = new Status(IStatus.INFO, "org.eclipse.equinox.internal.provisional.p2.director.test", "The installable unit '" + System.getProperty("eclipse.p2.autoInstall") + "' has not been found");
-		}
-
-		if (!operationStatus.isOK())
-			fail("The installation has failed");
-
-		IInstallableUnit[] result = (IInstallableUnit[]) p.query(new InstallableUnitQuery(allRoots[0].getId(), VersionRange.emptyRange), new Collector(), null).toArray(IInstallableUnit.class);
-		assertEquals(result.length, (!doUninstall ? 1 : 0));
-		result = (IInstallableUnit[]) p.query(new InstallableUnitQuery("toolingdefault", VersionRange.emptyRange), new Collector(), null).toArray(IInstallableUnit.class);
-
-		ensureFragmentAssociationIsNotPersisted(mgr);
-	}
-
-	private void ensureFragmentAssociationIsNotPersisted(IMetadataRepositoryManager mgr) throws ProvisionException {
-		//Test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=177661
-		AgentLocation location = (AgentLocation) ServiceHelper.getService(TestActivator.getContext(), AgentLocation.class.getName());
-		mgr.removeRepository(location.getMetadataRepositoryURL());
-		IMetadataRepository repo = null;
-		repo = mgr.loadRepository(location.getMetadataRepositoryURL(), null);
-		Iterator it = repo.query(new InstallableUnitQuery("org.eclipse.equinox.simpleconfigurator", VersionRange.emptyRange), new Collector(), null).iterator();
-		if (!it.hasNext())
-			return;
-		IInstallableUnit sc = (IInstallableUnit) it.next();
-		if (sc.isResolved())
-			fail("The repository should not store resolved installable units");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/End2EndTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/End2EndTest.java
deleted file mode 100644
index 2ba85e1..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/End2EndTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.full;
-
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-public class End2EndTest extends AbstractProvisioningTest {
-
-	private IMetadataRepositoryManager repoManager;
-	private IDirector director;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		ServiceReference sr = TestActivator.context.getServiceReference(IDirector.class.getName());
-		if (sr == null)
-			throw new RuntimeException("Director service not available");
-		director = createDirector();
-		planner = createPlanner();
-		ServiceReference sr2 = TestActivator.context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		repoManager = (IMetadataRepositoryManager) TestActivator.context.getService(sr2);
-		if (repoManager == null)
-			throw new RuntimeException("Repository manager could not be loaded");
-	}
-
-	protected IProfile createProfile(String profileId) {
-		String installFolder = System.getProperty(IProfile.PROP_INSTALL_FOLDER);
-		ServiceReference profileRegSr = TestActivator.context.getServiceReference(IProfileRegistry.class.getName());
-		IProfileRegistry profileRegistry = (IProfileRegistry) TestActivator.context.getService(profileRegSr);
-		if (profileRegistry == null) {
-			throw new RuntimeException("Profile registry service not available");
-		}
-
-		String newFlavor = System.getProperty("eclipse.p2.configurationFlavor");
-		boolean doUninstall = (Boolean.TRUE.equals(Boolean.valueOf(System.getProperty("eclipse.p2.doUninstall"))));
-
-		IProfile p = null;
-		if (doUninstall) {
-			p = profileRegistry.getProfile(profileId);
-			if (p == null)
-				throw new RuntimeException("Uninstalling from a nonexistent profile");
-		} else {
-			Map properties = new HashMap();
-			properties.put(IProfile.PROP_INSTALL_FOLDER, installFolder + '/' + profileId);
-			properties.put(IProfile.PROP_FLAVOR, newFlavor);
-			EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(TestActivator.getContext(), EnvironmentInfo.class.getName());
-			if (info != null)
-				properties.put(IProfile.PROP_ENVIRONMENTS, "osgi.os=" + info.getOS() + ",osgi.ws=" + info.getWS() + ",osgi.arch=" + info.getOSArch());
-
-			p = createProfile(profileId, null, properties);
-		}
-		return p;
-	}
-
-	public void testInstallSDK() {
-		IProfile profile2 = createProfile("profile2");
-		//First we install the sdk
-		ProfileChangeRequest request = new ProfileChangeRequest(profile2);
-		request.addInstallableUnits(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))});
-		IStatus s = director.provision(request, null, new NullProgressMonitor());
-		if (!s.isOK())
-			fail("Installation failed");
-		IInstallableUnit firstSnapshot = getIU("profile2"); //This should represent the empty profile
-		assertNotNull(firstSnapshot);
-		assertNotNull(firstSnapshot.getProperty("profileIU"));
-
-		//Uninstall the SDK
-		request = new ProfileChangeRequest(profile2);
-		request.removeInstallableUnits(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))});
-		s = director.provision(request, null, new NullProgressMonitor());
-		if (!s.isOK())
-			fail("The uninstallation has failed and it was not expected");
-
-		assertEquals(false, getInstallableUnits(profile2).hasNext()); //the profile should be empty since we uninstalled everything
-		IInstallableUnit[] snapshots = getIUs("profile2");
-		assertTrue("snap" + snapshots.length, snapshots.length >= 2);//TODO Normally here it should be 2!!!
-		assertTrue(profile2.query(new InstallableUnitQuery("sdk", VersionRange.emptyRange), new Collector(), null).isEmpty());
-
-		// Now test the rollback to a previous state, in this case we reinstall the SDK
-		s = director.revert(snapshots[0].equals(firstSnapshot) ? snapshots[1] : snapshots[0], profile2, new ProvisioningContext(), new NullProgressMonitor());
-		if (!s.isOK())
-			fail("The become operation failed");
-
-		assertNotNull(getIU("sdk"));
-
-		//Test replace
-		request = new ProfileChangeRequest(profile2);
-		request.addInstallableUnits(planner.updatesFor(getIU("sdk", new Version("3.3.0")), null, null));
-		request.removeInstallableUnits(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))});
-		assertOK(director.provision(request, null, null));
-		assertProfileContainsAll("", profile2, new IInstallableUnit[] {getIU("sdk", new Version("3.4.0"))});
-		assertNotIUs(new IInstallableUnit[] {getIU("sdk", new Version("3.3.0"))}, getInstallableUnits(profile2));
-
-		//Remove everything from the profile by becoming an empty profile
-		s = director.revert(firstSnapshot, profile2, new ProvisioningContext(), new NullProgressMonitor());
-		assertOK(s);
-		//		assertEmptyProfile(profile2);
-	}
-
-	public IInstallableUnit[] getIUs(String id) {
-		return (IInstallableUnit[]) repoManager.query(new InstallableUnitQuery(id, VersionRange.emptyRange), new Collector(), null).toArray(IInstallableUnit.class);
-	}
-
-	public IInstallableUnit getIU(String id) {
-		Iterator it = repoManager.query(new InstallableUnitQuery(id, VersionRange.emptyRange), new Collector(), null).iterator();
-		if (it.hasNext())
-			return (IInstallableUnit) it.next();
-		return null;
-	}
-
-	public IInstallableUnit getIU(String id, Version v) {
-		Iterator it = repoManager.query(new InstallableUnitQuery(id, v), new Collector(), null).iterator();
-		if (it.hasNext())
-			return (IInstallableUnit) it.next();
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/RepoValidator.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/RepoValidator.java
deleted file mode 100644
index 95b67f3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/full/RepoValidator.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.equinox.p2.tests.full;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-
-public class RepoValidator extends AbstractProvisioningTest {
-	public void testValidate() throws ProvisionException, MalformedURLException {
-		URL repoLoc = new URL("file:d:/ganymedeM5");
-		ServiceReference sr = TestActivator.context.getServiceReference(IPlanner.class.getName());
-		if (sr == null) {
-			throw new RuntimeException("Planner service not available");
-		}
-		IPlanner planner = (IPlanner) TestActivator.context.getService(sr);
-		if (planner == null) {
-			throw new RuntimeException("Planner could not be loaded");
-		}
-
-		ServiceReference sr2 = TestActivator.context.getServiceReference(IMetadataRepositoryManager.class.getName());
-		IMetadataRepositoryManager mgr = (IMetadataRepositoryManager) TestActivator.context.getService(sr2);
-		if (mgr == null) {
-			throw new RuntimeException("Repository manager could not be loaded");
-		}
-		IMetadataRepository validatedRepo = mgr.loadRepository(repoLoc, null);
-
-		Map properties = new HashMap();
-		properties.put(IInstallableUnit.NAMESPACE_FLAVOR, "tooling");
-		IProfile p = createProfile("repoValidator", null, properties);
-
-		Query q;
-		//		q = new Query() {
-		//			public boolean isMatch(Object object) {
-		//				if (!(object instanceof IInstallableUnit))
-		//					return false;
-		//				IInstallableUnit candidate = (IInstallableUnit) object;
-		//				if (candidate.getId().startsWith("org.eclipse.jst") || candidate.getId().startsWith("org.eclipse.wst"))
-		//					return true;
-		//				return false;
-		//			}
-		//		};
-
-		//		q = new InstallableUnitQuery("org.eclipse.wst.ws.parser");
-
-		q = InstallableUnitQuery.ANY;
-		Collector iusToTest = validatedRepo.query(q, new Collector(), null);
-
-		ProvisioningContext pc = new ProvisioningContext(new URL[] {repoLoc});
-		for (Iterator iterator = iusToTest.iterator(); iterator.hasNext();) {
-			try {
-				IInstallableUnit isInstallable = (IInstallableUnit) iterator.next();
-				ProfileChangeRequest req = new ProfileChangeRequest(p);
-				req.setProfileProperty("eclipse.p2.install.features", "true");
-				req.addInstallableUnits(new IInstallableUnit[] {isInstallable});
-				//				System.out.println("Working on: " + isInstallable);
-				IStatus s = planner.getProvisioningPlan(req, pc, null).getStatus();
-				if (!s.isOK()) {
-					System.err.println("Can't resolve: " + isInstallable);
-				}
-			} catch (ArrayIndexOutOfBoundsException e) {
-				//ignore
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/AllTests.java
deleted file mode 100644
index f8f63bd..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/AllTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.generator;
-
-import junit.framework.*;
-
-/**
- * Performs all engine tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(EclipseSDK33Test.class);
-		suite.addTestSuite(SiteParserTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/EclipseSDK33Test.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/EclipseSDK33Test.java
deleted file mode 100644
index 030c879..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/EclipseSDK33Test.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.generator;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Generator;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.IGeneratorInfo;
-import org.eclipse.equinox.p2.tests.*;
-import org.osgi.framework.Bundle;
-
-/**
- * Tests running the metadata generator against Eclipse 3.3 features.
- */
-public class EclipseSDK33Test extends AbstractProvisioningTest {
-	public static Test suite() {
-		return new TestSuite(EclipseSDK33Test.class);
-	}
-
-	public EclipseSDK33Test() {
-		super("");
-	}
-
-	public EclipseSDK33Test(String name) {
-		super(name);
-	}
-
-	public void testGeneration() {
-		IGeneratorInfo generatorInfo = createGeneratorInfo();
-		Generator generator = new Generator(generatorInfo);
-		generator.generate();
-
-		TestMetadataRepository repo = (TestMetadataRepository) generatorInfo.getMetadataRepository();
-		IInstallableUnit unit = repo.find("org.eclipse.cvs.source.feature.group", "1.0.0.v20070606-7C79_79EI99g_Y9e");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.rcp.feature.group", "3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.jdt.feature.group", "3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.cvs.feature.group", "1.0.0.v20070606-7C79_79EI99g_Y9e");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.pde.source.feature.group", "3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.sdk.feature.group", "3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.platform.feature.group", "3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.platform.source.feature.group", "3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.jdt.source.feature.group", "3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.pde.feature.group", "3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC");
-		assertNotNull(unit);
-		assertGroup(unit);
-		unit = repo.find("org.eclipse.rcp.source.feature.group", "3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG");
-		assertNotNull(unit);
-		assertGroup(unit);
-
-		IArtifactRepository artifactRepo = (TestArtifactRepository) generatorInfo.getArtifactRepository();
-		IArtifactKey[] keys = artifactRepo.getArtifactKeys();
-		assertTrue(keys.length == 11);
-	}
-
-	/**
-	 * Asserts that the given IU represents a group.
-	 */
-	private void assertGroup(IInstallableUnit unit) {
-		assertEquals("IU is not a group", Boolean.TRUE.toString(), unit.getProperty(IInstallableUnit.PROP_TYPE_GROUP));
-	}
-
-	private IGeneratorInfo createGeneratorInfo() {
-		Bundle myBundle = TestActivator.getContext().getBundle();
-		URL root = FileLocator.find(myBundle, new Path("testData/generator/eclipse3.3"), null);
-		File rootFile = null;
-		try {
-			root = FileLocator.toFileURL(root);
-			rootFile = new File(root.getPath());
-		} catch (IOException e) {
-			fail("4.99", e);
-		}
-		TestGeneratorInfo info = new TestGeneratorInfo(rootFile);
-		return info;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/SiteParserTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/SiteParserTest.java
deleted file mode 100644
index f4b71bd..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/SiteParserTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.generator;
-
-import java.io.IOException;
-import org.eclipse.equinox.internal.p2.metadata.generator.features.DefaultSiteParser;
-import org.eclipse.equinox.internal.p2.metadata.generator.features.SiteModel;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestData;
-import org.xml.sax.SAXException;
-
-/**
- * Test the site.xml parser included in the generator.
- */
-public class SiteParserTest extends AbstractProvisioningTest {
-	public void testEuropaSite() {
-		DefaultSiteParser parser = new DefaultSiteParser();
-		try {
-			SiteModel site = parser.parse(TestData.get("generator", "Europa/site.xml"));
-			System.out.println(site);
-		} catch (SAXException e) {
-			fail("4.99", e);
-		} catch (IOException e) {
-			fail("4.99", e);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/TestGeneratorInfo.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/TestGeneratorInfo.java
deleted file mode 100644
index def32fb..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/generator/TestGeneratorInfo.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.generator;
-
-import java.io.File;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.ConfigData;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.LauncherData;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.IGeneratorInfo;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.p2.tests.TestArtifactRepository;
-import org.eclipse.equinox.p2.tests.TestMetadataRepository;
-
-/**
- * Simple implementation of IGeneratorInfo used for testing purposes.
- */
-public class TestGeneratorInfo implements IGeneratorInfo {
-
-	private IArtifactRepository artifactRepo;
-	private File baseLocation;
-	private String flavor;
-	private IMetadataRepository metadataRepo;
-	private String rootId;
-	private String rootVersion;
-	private String launcherConfig;
-	private URL siteLocation;
-	private boolean updateCompatibilty = false;
-
-	public TestGeneratorInfo(File baseLocation) {
-		this.baseLocation = baseLocation;
-	}
-
-	public boolean addDefaultIUs() {
-		return false;
-	}
-
-	public boolean append() {
-		return false;
-	}
-
-	public IArtifactRepository getArtifactRepository() {
-		if (artifactRepo == null)
-			artifactRepo = new TestArtifactRepository();
-		return artifactRepo;
-	}
-
-	public File[] getBundleLocations() {
-		File[] children = new File(baseLocation, "plugins").listFiles();
-		return children == null ? new File[0] : children;
-	}
-
-	public ConfigData getConfigData() {
-		return null;
-	}
-
-	public File getConfigurationLocation() {
-		return new File(baseLocation, "configuration");
-	}
-
-	public ArrayList getDefaultIUs(Set ius) {
-		return null;
-	}
-
-	public File getExecutableLocation() {
-		return null;
-	}
-
-	public File getFeaturesLocation() {
-		return new File(baseLocation, "features");
-	}
-
-	public String getFlavor() {
-		return flavor;
-	}
-
-	public File getJRELocation() {
-		return null;
-	}
-
-	public LauncherData getLauncherData() {
-		return null;
-	}
-
-	public String[][] getMappingRules() {
-		return null;
-	}
-
-	public IMetadataRepository getMetadataRepository() {
-		if (metadataRepo == null)
-			metadataRepo = new TestMetadataRepository(new IInstallableUnit[0]);
-		return metadataRepo;
-	}
-
-	public String getRootId() {
-		return rootId;
-	}
-
-	public String getRootVersion() {
-		return rootVersion;
-	}
-
-	public URL getSiteLocation() {
-		return siteLocation;
-	}
-
-	public String getLauncherConfig() {
-		return launcherConfig;
-	}
-
-	public boolean publishArtifactRepository() {
-		return false;
-	}
-
-	public boolean publishArtifacts() {
-		return false;
-	}
-
-	public void setArtifactRepository(IArtifactRepository value) {
-		this.artifactRepo = value;
-	}
-
-	public void setFlavor(String value) {
-		this.flavor = value;
-	}
-
-	public void setMetadataRepository(IMetadataRepository value) {
-		this.metadataRepo = value;
-	}
-
-	public void setPublishArtifacts(boolean value) {
-	}
-
-	public void setRootId(String value) {
-		this.rootId = value;
-	}
-
-	public void setSiteLocation(URL location) {
-		this.siteLocation = location;
-	}
-
-	public void setLauncherConfig(String launcherConfig) {
-		this.launcherConfig = launcherConfig;
-	}
-
-	public boolean getIsUpdateCompatible() {
-		return this.updateCompatibilty;
-	}
-
-	public void setIsUpdateCompatible(boolean isCompatible) {
-		this.updateCompatibilty = isCompatible;
-	}
-
-	public boolean reuseExistingPack200Files() {
-		return false;
-	}
-
-	public void reuseExistingPack200Files(boolean publishPack) {
-		//
-	}
-
-	public String getProductFile() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public Collection getOtherIUs() {
-		return Collections.EMPTY_LIST;
-	}
-
-	public String getVersionAdvice() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void setVersionAdvice(String advice) {
-		// TODO Auto-generated method stub
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java
deleted file mode 100644
index 99105a2..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata;
-
-import junit.framework.*;
-
-/**
- * Performs all metadata tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(ArtifactKeyParsingTest.class);
-		suite.addTestSuite(FragmentMethodTest.class);
-		suite.addTestSuite(FragmentTest.class);
-		suite.addTestSuite(IUPersistenceTest.class);
-		suite.addTestSuite(LicenseTest.class);
-		suite.addTestSuite(MultipleIUAndFragmentTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java
deleted file mode 100644
index e5b5015..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata;
-
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.metadata.ArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.osgi.framework.Version;
-
-/**
- * Test <code>ArtifactkeyDeSerializer</code>
- */
-public class ArtifactKeyParsingTest extends TestCase {
-
-	public void testSerialize() {
-		IArtifactKey key = new ArtifactKey("classifier", "identifier", new Version("1.0"));
-		assertEquals("classifier,identifier,1.0.0", key.toExternalForm());
-	}
-
-	public void testSerializeEmptyClassifier() {
-		IArtifactKey key = new ArtifactKey("", "identifier", new Version("1.0"));
-		assertEquals(",identifier,1.0.0", key.toExternalForm());
-	}
-
-	public void testDeserialize() {
-		IArtifactKey key = ArtifactKey.parse("classifier,identifier,1.0.0");
-		assertNotNull(key);
-		assertEquals("classifier", key.getClassifier());
-		assertEquals("identifier", key.getId());
-		assertEquals(new Version("1.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyClassifier() {
-		IArtifactKey key = ArtifactKey.parse(",identifier,1.0.0");
-		assertNotNull(key);
-		assertEquals("", key.getClassifier());
-		assertEquals("identifier", key.getId());
-		assertEquals(new Version("1.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyIdentifier() {
-		IArtifactKey key = ArtifactKey.parse("classifier,,1.0.0");
-		assertNotNull(key);
-		assertEquals("classifier", key.getClassifier());
-		assertEquals("", key.getId());
-		assertEquals(new Version("1.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyVersion() {
-		IArtifactKey key = ArtifactKey.parse("classifier,identifier,");
-		assertNotNull(key);
-		assertEquals("classifier", key.getClassifier());
-		assertEquals("identifier", key.getId());
-		assertEquals(new Version("0.0"), key.getVersion());
-	}
-
-	public void testDeserializeEmptyEverything() {
-		IArtifactKey key = ArtifactKey.parse(",,");
-		assertNotNull(key);
-		assertEquals("", key.getClassifier());
-		assertEquals("", key.getId());
-		assertEquals(new Version("0.0"), key.getVersion());
-	}
-
-	public void testDeserializeTooFewPartsI() {
-		try {
-			ArtifactKey.parse("");
-			fail();
-		} catch (IllegalArgumentException e) {
-			assertTrue(true);
-		}
-	}
-
-	public void testDeserializeTooManyPartsI() {
-		try {
-			ArtifactKey.parse(",,,,");
-			fail();
-		} catch (IllegalArgumentException e) {
-			assertTrue(true);
-		}
-	}
-
-	public void testDeserializeTooFewPartsII() {
-		try {
-			ArtifactKey.parse("classifier");
-			fail();
-		} catch (IllegalArgumentException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java
deleted file mode 100644
index 3591a5f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata;
-
-import java.util.*;
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitFragmentDescription;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class FragmentMethodTest extends TestCase {
-	private static final String PROP_FRAG = "propFrag";
-	private static final String PROP_IU = "propIU";
-	private static final String TEST_REQUIRED = "testRequired";
-	IInstallableUnit iu1;
-	IInstallableUnit iu3;
-	RequiredCapability[] iu1Deps;
-	RequiredCapability[] iu3Deps;
-	ProvidedCapability[] iu1Caps;
-	ProvidedCapability[] iu3Caps;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		iu1 = createIU("iu.test1");
-		iu3 = createIUFragment("iu.fragment");
-		iu1Caps = iu1.getProvidedCapabilities();
-		iu3Caps = iu3.getProvidedCapabilities();
-		iu1Deps = iu1.getRequiredCapabilities();
-		iu3Deps = iu3.getRequiredCapabilities();
-		HashSet hash = new HashSet();
-		hash.add(iu1);
-		hash.add(iu3);
-		Collection result = new ResolutionHelper(new Hashtable(), null).attachCUs(hash);
-		for (Iterator iterator = result.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			if (iu.getId().equals(iu1.getId()))
-				iu1 = iu;
-			if (iu.getId().equals(iu3.getId()))
-				iu3 = iu;
-		}
-	}
-
-	protected void tearDown() throws Exception {
-		iu1 = null;
-		iu3 = null;
-		iu1Deps = null;
-		iu3Deps = null;
-		iu1Caps = null;
-		iu3Caps = null;
-		super.tearDown();
-	}
-
-	public void testCapabilities() {
-		ProvidedCapability[] iuCapabilities = iu1Caps;
-		ProvidedCapability[] initialFragmentCapabilities = iu3Caps;
-
-		ProvidedCapability[] mergedCapabilities = iu1.getProvidedCapabilities();
-		for (int i = 0; i < iuCapabilities.length; i++) {
-			FragmentTest.assertContainsWithEquals(mergedCapabilities, iuCapabilities[i]);
-		}
-
-		//The fragment property is not set
-		assertNull(iu1.getProperty(IInstallableUnit.PROP_TYPE_FRAGMENT));
-
-		//The fragment does not contain iu namespace
-		for (int i = 0; i < initialFragmentCapabilities.length; i++) {
-			if (initialFragmentCapabilities[i].getNamespace().equals(IInstallableUnit.NAMESPACE_IU_ID)) {
-				assertDoesNotContain(mergedCapabilities, initialFragmentCapabilities[i]);
-				break;
-			}
-		}
-
-		assertEquals("The fragment capabilities should not change", initialFragmentCapabilities, iu3.getProvidedCapabilities(), false);
-	}
-
-	protected void assertEquals(String message, Object[] expected, Object[] actual) {
-		if (expected == null && actual == null)
-			return;
-		if (expected == null || actual == null)
-			fail(message);
-		if (expected.length != actual.length)
-			fail(message);
-		for (int i = 0; i < expected.length; i++)
-			assertEquals(message, expected[i], actual[i]);
-	}
-
-	protected void assertEquals(String message, Object[] expected, Object[] actual, boolean orderImportant) {
-		// if the order in the array must match exactly, then call the other method
-		if (orderImportant) {
-			assertEquals(message, expected, actual);
-			return;
-		}
-		// otherwise use this method and check that the arrays are equal in any order
-		if (expected == null && actual == null)
-			return;
-		if (expected == actual)
-			return;
-		if (expected == null || actual == null)
-			assertTrue(message + ".1", false);
-		if (expected.length != actual.length)
-			assertTrue(message + ".2", false);
-		boolean[] found = new boolean[expected.length];
-		for (int i = 0; i < expected.length; i++) {
-			for (int j = 0; j < expected.length; j++) {
-				if (!found[j] && expected[i].equals(actual[j]))
-					found[j] = true;
-			}
-		}
-		for (int i = 0; i < found.length; i++)
-			if (!found[i])
-				assertTrue(message + ".3." + i, false);
-	}
-
-	public static void assertDoesNotContain(Object[] objects, Object searched) {
-		for (int i = 0; i < objects.length; i++) {
-			if (objects[i].equals(searched))
-				throw new AssertionFailedError("The array should not contain the searched element");
-		}
-	}
-
-	public void testProperties() {
-		assertNotNull("The property is missing", iu3.getProperty(PROP_FRAG));
-		assertNotNull("The property is missing", iu1.getProperty(PROP_IU));
-		assertNull("The property should not be available", iu1.getProperty("doesnotexist"));
-	}
-
-	public IInstallableUnit createIUFragment(String name) {
-		InstallableUnitFragmentDescription iu = new InstallableUnitFragmentDescription();
-		iu.setId(name);
-		iu.setVersion(new Version(1, 0, 0));
-		iu.setTouchpointType(AbstractProvisioningTest.TOUCHPOINT_OSGI);
-		iu.setProperty(PROP_FRAG, "value");
-		RequiredCapability[] reqs = new RequiredCapability[] {MetadataFactory.createRequiredCapability("eclipse.touchpoint", "bundle", VersionRange.emptyRange, null, false, true), MetadataFactory.createRequiredCapability(TEST_REQUIRED, TEST_REQUIRED, VersionRange.emptyRange, null, true, false)};
-		iu.setHost(reqs);
-		ProvidedCapability[] cap = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("testCapabilityInFragment", "testCapabilityInFragment", new Version(1, 0, 0))};
-		iu.setCapabilities(cap);
-		return MetadataFactory.createInstallableUnitFragment(iu);
-	}
-
-	public IInstallableUnit createIU(String name) {
-		InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
-		iu.setId(name);
-		iu.setVersion(new Version(1, 0, 0));
-		iu.setTouchpointType(AbstractProvisioningTest.TOUCHPOINT_OSGI);
-		iu.setProperty(PROP_IU, "valueIU");
-		ProvidedCapability[] cap = new ProvidedCapability[] {MetadataFactory.createProvidedCapability("eclipse.touchpoint", "bundle", new Version(1, 0, 0)), MetadataFactory.createProvidedCapability("testCapability", "testCapability", new Version(1, 0, 0))};
-		iu.setCapabilities(cap);
-		return MetadataFactory.createInstallableUnit(iu);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentTest.java
deleted file mode 100644
index 032ec0a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata;
-
-import java.util.*;
-import junit.framework.AssertionFailedError;
-import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-public class FragmentTest extends AbstractProvisioningTest {
-
-	public void testAssociation() {
-		String ID = "ui.test1";
-		IInstallableUnit iu1 = createEclipseIU(ID);
-		IInstallableUnit iu2 = createBundleFragment("iuFragment.test1");
-		ResolutionHelper rh = new ResolutionHelper(new Hashtable(), null);
-		HashSet set = new HashSet();
-		set.add(iu1);
-		set.add(iu2);
-		Collection result = rh.attachCUs(set);
-		for (Iterator iterator = result.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			if (iu.getId().equals(ID)) {
-				assertEquals(iu.getFragments().length, 1);
-				assertEquals(iu.getFragments()[0].getId(), "iuFragment.test1");
-			}
-		}
-	}
-
-	public void testAssociation2() {
-		String ID1 = "ui.test1";
-		String ID3 = "ui.test3";
-		IInstallableUnit iu1 = createEclipseIU(ID1);
-		IInstallableUnit iu3 = createEclipseIU(ID3);
-		IInstallableUnit iu2 = createBundleFragment("iuFragment.test1");
-		ResolutionHelper rh = new ResolutionHelper(new Hashtable(), null);
-		HashSet set = new HashSet();
-		set.add(iu1);
-		set.add(iu2);
-		set.add(iu3);
-		Collection result = rh.attachCUs(set);
-		for (Iterator iterator = result.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			if (iu.getId().equals(ID1)) {
-				assertEquals(iu.getFragments().length, 1);
-				assertEquals(iu.getFragments()[0].getId(), "iuFragment.test1");
-			}
-			if (iu.getId().equals(ID3)) {
-				assertEquals(iu.getFragments().length, 1);
-				assertEquals(iu.getFragments()[0].getId(), "iuFragment.test1");
-			}
-		}
-	}
-
-	public void testTouchpointData() {
-		assertEquals(createIUWithTouchpointData().getTouchpointData().length, 1);
-		assertEquals(createBundleFragment("iuFragment.test1").getTouchpointData().length, 1);
-		IInstallableUnit iu1 = createIUWithTouchpointData();
-		IInstallableUnit iu2 = createBundleFragment("iuFragment.test1");
-		ResolutionHelper rh = new ResolutionHelper(new Hashtable(), null);
-		HashSet set = new HashSet();
-		set.add(iu1);
-		set.add(iu2);
-		Collection result = rh.attachCUs(set);
-		for (Iterator iterator = result.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			if (iu.getId().equals(iu1.getId()))
-				assertEquals(2, iu.getTouchpointData().length);
-
-		}
-	}
-
-	public void testFragmentCapability() {
-		IInstallableUnit iu = createBundleFragment("iuFragment.test1");
-		assertEquals(Boolean.TRUE.toString(), iu.getProperty(IInstallableUnit.PROP_TYPE_FRAGMENT));
-	}
-
-	public void testDefaultIUCapability() {
-		IInstallableUnit iu = createEclipseIU("ui.test1");
-		ProvidedCapability[] cap = iu.getProvidedCapabilities();
-		for (int i = 0; i < cap.length; i++) {
-			if (cap[i].getNamespace().equals(IInstallableUnit.NAMESPACE_IU_ID)) {
-				assertEquals(cap[i].getNamespace(), IInstallableUnit.NAMESPACE_IU_ID);
-				assertEquals(cap[i].getName(), iu.getId());
-				return;
-			}
-		}
-		throw new AssertionFailedError("No capability for the iu id");
-	}
-
-	public static void assertContains(Object[] objects, Object searched) {
-		for (int i = 0; i < objects.length; i++) {
-			if (objects[i] == searched)
-				return;
-		}
-		throw new AssertionFailedError("The array does not contain the searched element");
-	}
-
-	public static void assertContainsWithEquals(Object[] objects, Object searched) {
-		for (int i = 0; i < objects.length; i++) {
-			if (objects[i].equals(searched))
-				return;
-		}
-		throw new AssertionFailedError("The array does not contain the searched element");
-	}
-
-	private IInstallableUnit createIUWithTouchpointData() {
-		TouchpointData data = MetadataFactory.createTouchpointData(new HashMap());
-		return createEclipseIU("ui.test1", DEFAULT_VERSION, NO_REQUIRES, data);
-	}
-
-	//	private IInstallableUnit createIUFragmentWithTouchpointData() {
-	//		TouchpointData data = MetadataFactory.createTouchpointData(new HashMap());
-	//		IInstallableUnitFragment unit = createBundleFragment("iuFragment.test1");
-	//		return unit;
-	//	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java
deleted file mode 100644
index 3d158af..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata;
-
-import java.io.*;
-import java.util.*;
-import javax.xml.parsers.ParserConfigurationException;
-import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties;
-import org.eclipse.equinox.internal.p2.metadata.InstallableUnit;
-import org.eclipse.equinox.internal.p2.metadata.repository.io.MetadataParser;
-import org.eclipse.equinox.internal.p2.metadata.repository.io.MetadataWriter;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-import org.xml.sax.*;
-
-public class IUPersistenceTest extends AbstractProvisioningTest {
-
-	// Randomly chose org.eclipse.osgi.services as the IU for testing persistence
-	// but 'enhanced' it for better coverage.
-	private static String PackagesNS = "osgi.packages";
-
-	private static String id = "org.eclipse.osgi.services";
-	private static Version version = new Version("3.1.200.v20070605");
-	private static String filter = "(& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))"; // not really
-
-	private static String[][] properties = new String[][] {new String[] {"equinox.p2.name", "OSGi Release 4.0.1 Services"}, //
-			new String[] {"equinox.p2.description", "OSGi Service Platform Release 4.0.1 Service Interfaces and Classes"}, //
-			new String[] {"equinox.p2.provider", "Eclipse.org"}, //
-			new String[] {"equinox.p2.contact", "www.eclipse.org"}, //
-			new String[] {"equinox.p2.copyright", "Copyright (c) 2003, 2004 IBM Corporation and others. A long-winded copyright notice."}};
-
-	private static String[][] provides = new String[][] {new String[] {PackagesNS, "org.osgi.service.cm", "1.2.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.component", "1.0.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.device", "1.1.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.event", "1.1.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.http", "1.2.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.io", "1.0.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.log", "1.3.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.metatype", "1.1.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.provisioning", "1.1.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.upnp", "1.1.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.useradmin", "1.1.0"}, //
-			new String[] {PackagesNS, "org.osgi.service.wireadmin", "1.0.0"}}; //
-
-	private static String[][] requires = new String[][] {new String[] {PackagesNS, "javax.servlet", "0.0.0", "true"}, //
-			new String[] {PackagesNS, "javax.servlet.http", "0.0.0", "true"}, //
-			new String[] {PackagesNS, "org.osgi.framework", "1.2.0", "false"}}; //
-
-	private static String[][] instructions = new String[][] {new String[] {"manifest", "Manifest-Version: 1.0\\Bundle-Vendor: Eclipse.org\\Bundle-ContactAddress: www.eclipse.org\\...a whole bunch of other manifest content..."}, new String[] {"zipped", "true"}, //
-			new String[] {"configure", "addProgramArg(programArg:-startup);addProgramArg(programArg:@artifact);"}}; //
-
-	public static IInstallableUnit createPersistenceTestIU() {
-		Map propertyMap = createProperties(properties);
-		ProvidedCapability[] additionalProvides = createProvided(provides);
-		RequiredCapability[] requirements = createRequired(requires);
-		TouchpointData tpData = createTouchpointData(instructions);
-		IUpdateDescriptor update = createUpdateDescriptor();
-		boolean singleton = false;
-		IInstallableUnit iu = createIU(id, version, filter, requirements, additionalProvides, propertyMap, TOUCHPOINT_OSGI, tpData, singleton, update);
-		return iu;
-	}
-
-	private static IUpdateDescriptor createUpdateDescriptor() {
-		return MetadataFactory.createUpdateDescriptor(id, new VersionRange(IU_TEST_VERSION, true, IU_TEST_VERSION, true), IUpdateDescriptor.HIGH, "desc");
-	}
-
-	private static Map createProperties(String[][] keyValuePairs) {
-		OrderedProperties props = new OrderedProperties(keyValuePairs.length);
-		for (int i = 0; i < keyValuePairs.length; i++) {
-			String[] nextPair = keyValuePairs[i];
-			props.put(nextPair[0], nextPair[1]);
-		}
-		return props;
-	}
-
-	private static ProvidedCapability[] createProvided(String[][] provideTuples) {
-		ProvidedCapability[] provided = new ProvidedCapability[provideTuples.length];
-		for (int i = 0; i < provideTuples.length; i++) {
-			String[] nextTuple = provideTuples[i];
-			provided[i] = MetadataFactory.createProvidedCapability(nextTuple[0], nextTuple[1], new Version(nextTuple[2]));
-		}
-		// provided[provideTuples.length] = BUNDLE_CAPABILITY;
-		return provided;
-	}
-
-	private static RequiredCapability[] createRequired(String[][] requireTuples) {
-		RequiredCapability[] required = new RequiredCapability[requireTuples.length];
-		for (int i = 0; i < requireTuples.length; i++) {
-			String[] nextTuple = requireTuples[i];
-			required[i] = MetadataFactory.createRequiredCapability(nextTuple[0], nextTuple[1], new VersionRange(nextTuple[2]), null, Boolean.valueOf(nextTuple[3]).booleanValue(), false);
-		}
-		return required;
-	}
-
-	private static TouchpointData createTouchpointData(String[][] instructionData) {
-		Map map = new LinkedHashMap(instructionData.length);
-		for (int i = 0; i < instructionData.length; i++) {
-			String[] nextInstruction = instructionData[i];
-			map.put(nextInstruction[0], nextInstruction[1]);
-		}
-		return MetadataFactory.createTouchpointData(map);
-	}
-
-	private static String IU_TEST_TARGET = "installableUnitTest";
-	private static Version IU_TEST_VERSION = new Version("0.0.1");
-
-	private static String IU_TEST_ELEMENT = "test";
-
-	class IUStringWriter extends MetadataWriter {
-
-		public IUStringWriter(ByteArrayOutputStream stream) throws IOException {
-			super(stream, new ProcessingInstruction[] {ProcessingInstruction.makeClassVersionInstruction(IU_TEST_TARGET, InstallableUnit.class, IU_TEST_VERSION)});
-		}
-
-		public void writeTest(IInstallableUnit iu) {
-			start(IU_TEST_ELEMENT);
-			writeInstallableUnit(iu);
-			end(IU_TEST_ELEMENT);
-		}
-	}
-
-	class IUStringParser extends MetadataParser {
-
-		public IUStringParser(BundleContext context, String bundleId) {
-			super(context, bundleId);
-		}
-
-		public void parse(String profileString) throws IOException {
-			this.status = null;
-			try {
-				getParser();
-				TestHandler testHandler = new TestHandler();
-				xmlReader.setContentHandler(new IUDocHandler(IU_TEST_ELEMENT, testHandler));
-				xmlReader.parse(new InputSource(new StringReader(profileString)));
-				if (isValidXML()) {
-					theIU = testHandler.getIU();
-				}
-			} catch (SAXException e) {
-				throw new IOException(e.getMessage());
-			} catch (ParserConfigurationException e) {
-				fail();
-			}
-		}
-
-		private IInstallableUnit theIU = null;
-
-		private final class IUDocHandler extends DocHandler {
-
-			public IUDocHandler(String rootName, RootHandler rootHandler) {
-				super(rootName, rootHandler);
-			}
-
-			public void processingInstruction(String target, String data) throws SAXException {
-				if (IU_TEST_TARGET.equals(target)) {
-					String clazz = extractPIClass(data);
-					try {
-						if (!Class.forName(clazz).equals(InstallableUnit.class)) {
-							throw new SAXException("Wrong class '" + clazz + "' in processing instruction"); //$NON-NLS-1$//$NON-NLS-2$
-						}
-					} catch (ClassNotFoundException e) {
-						throw new SAXException("InstallableUnit class '" + clazz + "' not found"); //$NON-NLS-1$//$NON-NLS-2$
-					}
-
-					Version iuTestVersion = extractPIVersion(target, data);
-					if (!IU_TEST_VERSION.equals(iuTestVersion)) {
-						throw new SAXException("Bad iu test version.");
-					}
-				}
-			}
-		}
-
-		private final class TestHandler extends RootHandler {
-
-			private InstallableUnitHandler iuHandler = null;
-
-			private InstallableUnit iu = null;
-			private List singleton = new ArrayList(1);
-
-			public TestHandler() {
-				super();
-			}
-
-			public InstallableUnit getIU() {
-				return iu;
-			}
-
-			protected void handleRootAttributes(Attributes attributes) {
-				String[] values = parseAttributes(attributes, noAttributes, noAttributes);
-			}
-
-			public void startElement(String name, Attributes attributes) {
-				if (INSTALLABLE_UNIT_ELEMENT.equals(name)) {
-					if (iuHandler == null) {
-						iuHandler = new InstallableUnitHandler(this, attributes, singleton);
-					} else {
-						duplicateElement(this, name, attributes);
-					}
-				} else {
-					invalidElement(name, attributes);
-				}
-			}
-
-			protected void finished() {
-				if (isValidXML()) {
-					if (iuHandler != null && singleton.size() == 1) {
-						iu = (InstallableUnit) iuHandler.getInstallableUnit();
-					}
-				}
-			}
-		}
-
-		protected String getErrorMessage() {
-			return "Error parsing installable unit string";
-		}
-
-		protected Object getRootObject() {
-			return theIU;
-		}
-
-	}
-
-	public void testIUPersistence() throws IOException {
-		IInstallableUnit iu0 = createPersistenceTestIU();
-		validateIU(iu0);
-		ByteArrayOutputStream output0 = new ByteArrayOutputStream(3072);
-		IUStringWriter writer0 = new IUStringWriter(output0);
-		writer0.writeTest(iu0);
-		String iuText0 = output0.toString();
-		output0.close();
-
-		IUStringParser parser = new IUStringParser(TestActivator.context, TestActivator.PI_PROV_TESTS);
-		parser.parse(iuText0);
-		assertTrue("Error parsing test iu: " + parser.getStatus().getMessage(), parser.getStatus().isOK());
-		InstallableUnit iu1 = (InstallableUnit) parser.getRootObject();
-		validateIU(iu1);
-		ByteArrayOutputStream output1 = new ByteArrayOutputStream(1492);
-		IUStringWriter writer = new IUStringWriter(output1);
-		writer.writeTest(iu1);
-		String iuText1 = output1.toString();
-		output1.close();
-		assertTrue("Installable unit write after read after write produced different XML", iuText1.equals(iuText0));
-	}
-
-	private static void validateIU(IInstallableUnit iu) {
-		assertTrue("Installable unit id is not correct", id.equals(iu.getId()));
-		assertTrue("Installable unit version is not correct", version.equals(iu.getVersion()));
-		assertTrue("Installable unit filter is not correct", filter.equals(iu.getFilter()));
-		// assertTrue("Installable unit properties are not correct", Arrays.equals(properties, extractProperties(iu)));
-		assertTrue("Installable unit properties are not correct", equal(properties, extractProperties(iu)));
-		assertTrue("Installable unit provided capabilities are not correct", equal(addSelfCapability(iu, provides), extractProvides(iu)));
-		assertTrue("Installable unit required capabilities are not correct", equal(requires, extractRequires(iu)));
-		assertTrue("Installable unit update descriptor are not correct", id.equals(iu.getUpdateDescriptor().getId()));
-		assertTrue("Installable unit update descriptor are not correct", IUpdateDescriptor.HIGH == iu.getUpdateDescriptor().getSeverity());
-		assertTrue("Installable unit update descriptor are not correct", "desc".equals(iu.getUpdateDescriptor().getDescription()));
-		assertTrue("Installable unit update descriptor are not correct", new VersionRange(IU_TEST_VERSION, true, IU_TEST_VERSION, true).equals(iu.getUpdateDescriptor().getRange()));
-	}
-
-	private static String[][] extractProperties(IInstallableUnit iu) {
-		Map props = iu.getProperties();
-		Set keys = props.keySet();
-		String[][] pairs = new String[keys.size()][2];
-		int index = 0;
-		for (Iterator iter = keys.iterator(); iter.hasNext();) {
-			String nextKey = (String) iter.next();
-			String nextValue = (String) props.get(nextKey);
-			pairs[index] = new String[] {nextKey, nextValue};
-			index++;
-		}
-		return pairs;
-	}
-
-	private static String[][] addSelfCapability(IInstallableUnit iu, String[][] provideTuples) {
-		String[][] augmentedProvides = new String[provideTuples.length + 1][3];
-		ProvidedCapability self = getSelfCapability(iu);
-		augmentedProvides[0] = new String[] {self.getNamespace(), self.getName(), self.getVersion().toString()};
-		for (int i = 0; i < provideTuples.length; i++) {
-			augmentedProvides[i + 1] = provideTuples[i];
-		}
-		return augmentedProvides;
-	}
-
-	private static String[][] extractProvides(IInstallableUnit iu) {
-		ProvidedCapability[] provydes = iu.getProvidedCapabilities();
-		String[][] tuples = new String[provydes.length][3];
-		for (int i = 0; i < provydes.length; i++) {
-			ProvidedCapability next = provydes[i];
-			tuples[i] = new String[] {next.getNamespace(), next.getName(), next.getVersion().toString()};
-		}
-		return tuples;
-	}
-
-	private static String[][] extractRequires(IInstallableUnit iu) {
-		RequiredCapability[] requyres = iu.getRequiredCapabilities();
-		String[][] tuples = new String[requyres.length][4];
-		for (int i = 0; i < requyres.length; i++) {
-			RequiredCapability next = requyres[i];
-			tuples[i] = new String[] {next.getNamespace(), next.getName(), next.getRange().toString(), Boolean.valueOf(next.isOptional()).toString()};
-		}
-		return tuples;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java
deleted file mode 100644
index ed1c21f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata;
-
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.provisional.p2.metadata.License;
-
-/**
- * Tests for License class
- */
-public class LicenseTest extends TestCase {
-	public void testNormalize() {
-		License licenseOne = new License(null, "a   b");
-		License licenseTwo = new License(null, "a\t\n\r  \t\n\r  b");
-		assertEquals("1.0", licenseOne.getDigest(), licenseTwo.getDigest());
-
-		licenseOne = new License(null, "   a b  c  ");
-		licenseTwo = new License(null, "a\t\nb\r  \t\n\r  c");
-		assertEquals("1.1", licenseOne.getDigest(), licenseTwo.getDigest());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/MultipleIUAndFragmentTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/MultipleIUAndFragmentTest.java
deleted file mode 100644
index 7b59cf1..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/MultipleIUAndFragmentTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata;
-
-import java.util.*;
-import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-
-public class MultipleIUAndFragmentTest extends AbstractProvisioningTest {
-
-	IInstallableUnit iu1;
-	IInstallableUnit iu2;
-	IInstallableUnit iu3;
-	Collection result;
-
-	protected void setUp() throws Exception {
-		iu1 = createEclipseIU("one");
-		iu2 = createIUWithDependencyOn("two", "one");
-		iu3 = createBundleFragment("fragment");
-		HashSet set = new HashSet();
-		set.add(iu1);
-		set.add(iu2);
-		set.add(iu3);
-		result = new ResolutionHelper(new Hashtable(), null).attachCUs(set);
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		iu1 = null;
-		iu2 = null;
-		iu3 = null;
-	}
-
-	public void testAttachment() {
-		for (Iterator iterator = result.iterator(); iterator.hasNext();) {
-			IInstallableUnit iu = (IInstallableUnit) iterator.next();
-			if (iu.getId().equals(iu1.getId())) {
-				assertEquals(1, iu.getFragments().length);
-				assertEquals(iu.getFragments()[0].getId(), iu3.getId());
-			}
-			if (iu.getId().equals(iu2.getId())) {
-				assertEquals(1, iu.getFragments().length);
-				assertEquals(iu.getFragments()[0].getId(), iu3.getId());
-			}
-			if (iu.getId().equals(iu3.getId())) {
-				//fragments don't have fragments
-				assertNull(iu.getFragments());
-			}
-		}
-
-	}
-
-	private static IInstallableUnit createIUWithDependencyOn(String iuName, String dependencyOn) {
-		RequiredCapability[] requires = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, dependencyOn, VersionRange.emptyRange, null, false, true)};
-		return createEclipseIU(iuName, DEFAULT_VERSION, requires, NO_TP_DATA);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/AllTests.java
deleted file mode 100644
index 37775b2..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/AllTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata.repository;
-
-import junit.framework.*;
-
-/**
- * Performs all automated metadata repository tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(JarURLRepositoryTest.class);
-		suite.addTestSuite(LocalMetadataRepositoryTest.class);
-		suite.addTestSuite(MetadataRepositoryManagerTest.class);
-		return suite;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/JarURLRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/JarURLRepositoryTest.java
deleted file mode 100644
index 138c84d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/JarURLRepositoryTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata.repository;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.EclipseInstallGeneratorInfoProvider;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Generator;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.p2.tests.TestActivator;
-import org.osgi.framework.ServiceReference;
-
-public class JarURLRepositoryTest extends TestCase {
-
-	private ServiceReference managerRef;
-	private IMetadataRepositoryManager manager;
-	private File testRepoJar;
-
-	public JarURLRepositoryTest(String name) {
-		super(name);
-	}
-
-	public JarURLRepositoryTest() {
-		this("");
-	}
-
-	private static boolean deleteDirectory(File directory) {
-		if (directory.exists() && directory.isDirectory()) {
-			File[] files = directory.listFiles();
-			for (int i = 0; i < files.length; i++) {
-				if (files[i].isDirectory()) {
-					deleteDirectory(files[i]);
-				} else {
-					files[i].delete();
-				}
-			}
-		}
-		return directory.delete();
-	}
-
-	protected void setUp() throws Exception {
-		managerRef = TestActivator.getContext().getServiceReference(IMetadataRepositoryManager.class.getName());
-		manager = (IMetadataRepositoryManager) TestActivator.getContext().getService(managerRef);
-
-		EclipseInstallGeneratorInfoProvider provider = new EclipseInstallGeneratorInfoProvider();
-		URL base = TestActivator.getContext().getBundle().getEntry("/testData/generator/eclipse3.3");
-		provider.initialize(new File(FileLocator.toFileURL(base).getPath()));
-		String tempDir = System.getProperty("java.io.tmpdir");
-		File testRepo = new File(tempDir, "testRepo");
-		deleteDirectory(testRepo);
-		testRepo.mkdir();
-		provider.setFlavor("jartest");
-		IMetadataRepository repository = manager.createRepository(testRepo.toURL(), "testRepo", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(repository.getLocation());
-		provider.setMetadataRepository(repository);
-		IStatus result = new Generator(provider).generate();
-		FileUtils.zip(new File[] {testRepo}, new File(tempDir, "testRepo.jar"));
-		testRepoJar = new File(tempDir, "testRepo.jar");
-		assertTrue(testRepoJar.exists());
-		testRepoJar.deleteOnExit();
-		deleteDirectory(testRepo);
-	}
-
-	protected void tearDown() throws Exception {
-		manager = null;
-		TestActivator.getContext().ungetService(managerRef);
-	}
-
-	public void testJarURLRepository() throws ProvisionException {
-		URL jarRepoURL = null;
-		try {
-			jarRepoURL = new URL("jar:" + testRepoJar.toURL().toString() + "!/testRepo/");
-		} catch (MalformedURLException e) {
-			fail(e.getMessage());
-		}
-		IMetadataRepository repo = manager.loadRepository(jarRepoURL, null);
-		assertTrue(!repo.query(InstallableUnitQuery.ANY, new Collector(), null).isEmpty());
-		manager.removeRepository(jarRepoURL);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/LocalMetadataRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/LocalMetadataRepositoryTest.java
deleted file mode 100644
index 6c6b848..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/LocalMetadataRepositoryTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata.repository;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.Map;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.EclipseInstallGeneratorInfoProvider;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Generator;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-/**
- * Test API of the local metadata repository implementation.
- */
-public class LocalMetadataRepositoryTest extends AbstractProvisioningTest {
-	private static final String TEST_KEY = "TestKey";
-	private static final String TEST_VALUE = "TestValue";
-	protected File repoLocation;
-
-	private IMetadataRepositoryManager getMetadataRepositoryManager() {
-		return (IMetadataRepositoryManager) ServiceHelper.getService(TestActivator.getContext(), IMetadataRepositoryManager.class.getName());
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		String tempDir = System.getProperty("java.io.tmpdir");
-		repoLocation = new File(tempDir, "LocalMetadataRepositoryTest");
-		AbstractProvisioningTest.delete(repoLocation);
-		repoLocation.mkdir();
-	}
-
-	protected void tearDown() throws Exception {
-		delete(repoLocation);
-		super.tearDown();
-	}
-
-	public void testCompressedRepository() throws MalformedURLException, ProvisionException {
-		IMetadataRepositoryManager manager = getMetadataRepositoryManager();
-		IMetadataRepository repo = manager.createRepository(repoLocation.toURL(), "TestRepo", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(repo.getLocation());
-		repo.setProperty(IRepository.PROP_COMPRESSED, "true");
-		EclipseInstallGeneratorInfoProvider provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setMetadataRepository(repo);
-		provider.initialize(repoLocation);
-		provider.setRootVersion("3.3");
-		provider.setRootId("sdk");
-		provider.setFlavor("tooling");
-		// Generate the repository
-		new Generator(provider).generate();
-		File[] files = repoLocation.listFiles();
-		boolean jarFilePresent = false;
-		boolean xmlFilePresent = false;
-		// one of the files in the repository should be the content.xml.jar
-		for (int i = 0; i < files.length; i++) {
-			if ("content.jar".equalsIgnoreCase(files[i].getName())) {
-				jarFilePresent = true;
-			}
-			if ("content.xml".equalsIgnoreCase(files[i].getName())) {
-				xmlFilePresent = true;
-			}
-		}
-		if (!jarFilePresent) {
-			fail("Repository did not create JAR for content.xml");
-		}
-		if (xmlFilePresent) {
-			fail("Repository should not create content.xml");
-		}
-	}
-
-	public void testGetProperties() throws MalformedURLException, ProvisionException {
-		IMetadataRepositoryManager manager = getMetadataRepositoryManager();
-		IMetadataRepository repo = manager.createRepository(repoLocation.toURL(), "TestRepo", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		Map properties = repo.getProperties();
-		//attempting to modify the properties should fail
-		try {
-			properties.put(TEST_KEY, TEST_VALUE);
-			fail("Should not allow setting property");
-		} catch (RuntimeException e) {
-			//expected
-		}
-	}
-
-	public void testSetProperty() throws MalformedURLException, ProvisionException {
-		IMetadataRepositoryManager manager = getMetadataRepositoryManager();
-		IMetadataRepository repo = manager.createRepository(repoLocation.toURL(), "TestRepo", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(repo.getLocation());
-		Map properties = repo.getProperties();
-		assertTrue("1.0", !properties.containsKey(TEST_KEY));
-		repo.setProperty(TEST_KEY, TEST_VALUE);
-
-		//the previously obtained properties should not be affected by subsequent changes
-		assertTrue("1.1", !properties.containsKey(TEST_KEY));
-		properties = repo.getProperties();
-		assertTrue("1.2", properties.containsKey(TEST_KEY));
-
-		//going back to repo manager, should still get the new property
-		repo = manager.loadRepository(repoLocation.toURL(), null);
-		properties = repo.getProperties();
-		assertTrue("1.3", properties.containsKey(TEST_KEY));
-
-		//setting a null value should remove the key
-		repo.setProperty(TEST_KEY, null);
-		properties = repo.getProperties();
-		assertTrue("1.4", !properties.containsKey(TEST_KEY));
-	}
-
-	public void testUncompressedRepository() throws MalformedURLException, ProvisionException {
-		IMetadataRepositoryManager manager = getMetadataRepositoryManager();
-		IMetadataRepository repo = manager.createRepository(repoLocation.toURL(), "TestRepo", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(repo.getLocation());
-		repo.setProperty(IRepository.PROP_COMPRESSED, "false");
-		EclipseInstallGeneratorInfoProvider provider = new EclipseInstallGeneratorInfoProvider();
-		provider.setMetadataRepository(repo);
-		provider.initialize(repoLocation);
-		provider.setRootVersion("3.3");
-		provider.setRootId("sdk");
-		provider.setFlavor("tooling");
-		// Generate the repository
-		new Generator(provider).generate();
-		File[] files = repoLocation.listFiles();
-		boolean jarFilePresent = false;
-		// none of the files in the repository should be the content.xml.jar
-		for (int i = 0; i < files.length; i++) {
-			if ("content.jar".equalsIgnoreCase(files[i].getName())) {
-				jarFilePresent = true;
-			}
-		}
-		if (jarFilePresent) {
-			fail("Repository should not create JAR for content.xml");
-		}
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java
deleted file mode 100644
index 7ad00da..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/MetadataRepositoryManagerTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.metadata.repository;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.core.helpers.URLUtil;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
-
-/**
- * Tests for API of {@link IMetadataRepositoryManager}.
- */
-public class MetadataRepositoryManagerTest extends AbstractProvisioningTest {
-	protected IMetadataRepositoryManager manager;
-	/**
-	 * Contains temp File handles that should be deleted at the end of the test.
-	 */
-	private final List toDelete = new ArrayList();
-
-	public static Test suite() {
-		return new TestSuite(MetadataRepositoryManagerTest.class);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		manager = (IMetadataRepositoryManager) ServiceHelper.getService(TestActivator.context, IMetadataRepositoryManager.class.getName());
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		for (Iterator it = toDelete.iterator(); it.hasNext();)
-			delete((File) it.next());
-		toDelete.clear();
-	}
-
-	public void testBasicAddRemove() throws MalformedURLException {
-		File tempFile = new File(System.getProperty("java.io.tmpdir"));
-		URL location = tempFile.toURL();
-		assertTrue(!managerContains(location));
-		manager.addRepository(location);
-		assertTrue(managerContains(location));
-		manager.removeRepository(location);
-		assertTrue(!managerContains(location));
-	}
-
-	public void testGetKnownRepositories() throws MalformedURLException, ProvisionException {
-		int nonSystemCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_NON_SYSTEM).length;
-		int systemCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_SYSTEM).length;
-		int allCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL).length;
-		assertEquals("1.0", allCount, nonSystemCount + systemCount);
-
-		//create a new repository
-		File repoLocation = getTempLocation();
-		IMetadataRepository testRepo = manager.createRepository(repoLocation.toURL(), "MetadataRepositoryManagerTest", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.addRepository(testRepo.getLocation());
-		int newNonSystemCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_NON_SYSTEM).length;
-		int newSystemCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_SYSTEM).length;
-		int newAllCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL).length;
-
-		//there should be one more non-system repository
-		assertEquals("2.0", nonSystemCount + 1, newNonSystemCount);
-		assertEquals("2.1", systemCount, newSystemCount);
-		assertEquals("2.2", allCount + 1, newAllCount);
-
-		//make the repository a system repository
-		testRepo.setProperty(IRepository.PROP_SYSTEM, Boolean.TRUE.toString());
-
-		//there should be one more system repository
-		newNonSystemCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_NON_SYSTEM).length;
-		newSystemCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_SYSTEM).length;
-		newAllCount = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL).length;
-		assertEquals("3.0", nonSystemCount, newNonSystemCount);
-		assertEquals("3.1", systemCount + 1, newSystemCount);
-		assertEquals("3.2", allCount + 1, newAllCount);
-
-	}
-
-	/**
-	 * Tests that we don't create a local cache when contacting a local metadata repository.
-	 */
-	public void testMetadataCachingLocalRepo() throws MalformedURLException, ProvisionException {
-		File repoLocation = getTempLocation();
-		AgentLocation agentLocation = (AgentLocation) ServiceHelper.getService(TestActivator.getContext(), AgentLocation.class.getName());
-		URL dataArea = agentLocation.getDataArea("org.eclipse.equinox.p2.metadata.repository/cache/");
-		File dataAreaFile = URLUtil.toFile(dataArea);
-		File cacheFileXML = new File(dataAreaFile, "content" + repoLocation.hashCode() + ".xml");
-		File cacheFileJAR = new File(dataAreaFile, "content" + repoLocation.hashCode() + ".jar");
-
-		// create a local repository
-		IMetadataRepository testRepo = manager.createRepository(repoLocation.toURL(), "MetadataRepositoryCachingTest", IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-		manager.loadRepository(repoLocation.toURL(), null);
-
-		// check that a local cache was not created
-		assertFalse("Cache file was created.", cacheFileXML.exists() || cacheFileJAR.exists());
-	}
-
-	/**
-	 * Tests that local caching of remote metadata repositories works, and that the
-	 * cache is updated when it becomes stale.
-	 */
-	public void testMetadataCachingRemoteRepo() throws MalformedURLException, ProvisionException {
-		URL repoLocation = new URL("http://download.eclipse.org/eclipse/testUpdates/");
-		AgentLocation agentLocation = (AgentLocation) ServiceHelper.getService(TestActivator.getContext(), AgentLocation.class.getName());
-		URL dataArea = agentLocation.getDataArea("org.eclipse.equinox.p2.metadata.repository/cache/");
-		File dataAreaFile = URLUtil.toFile(dataArea);
-		File cacheFileXML = new File(dataAreaFile, "content" + repoLocation.hashCode() + ".xml");
-		File cacheFileJAR = new File(dataAreaFile, "content" + repoLocation.hashCode() + ".jar");
-		File cacheFile;
-
-		// load a remote repository and check that a local cache was created
-		manager.loadRepository(repoLocation, null);
-		assertTrue("Cache file was not created.", cacheFileXML.exists() || cacheFileJAR.exists());
-		if (cacheFileXML.exists())
-			cacheFile = cacheFileXML;
-		else
-			cacheFile = cacheFileJAR;
-
-		// modify the last modified date to be older than the remote file
-		cacheFile.setLastModified(0);
-		// reload the repository and check that the cache was updated
-		manager.removeRepository(repoLocation);
-		manager.loadRepository(repoLocation, null);
-		long lastModified = cacheFile.lastModified();
-		assertTrue(0 != lastModified);
-
-		// reload the repository and check that the cache was not updated
-		manager.removeRepository(repoLocation);
-		manager.loadRepository(repoLocation, null);
-		assertTrue(lastModified == cacheFile.lastModified());
-
-		cacheFile.delete();
-	}
-
-	/**
-	 * Returns a non-existent file that can be used to write a temporary
-	 * file or directory. The location will be deleted in the test tearDown method.
-	 */
-	private File getTempLocation() {
-		File tempDir = new File(System.getProperty("java.io.tmpdir"));
-		File tempFile = new File(tempDir, "MetadataRepositoryManagerTest");
-		delete(tempFile);
-		assertTrue(!tempFile.exists());
-		return tempFile;
-	}
-
-	public void testFailureAddRemove() {
-		try {
-			manager.addRepository(null);
-			fail();
-		} catch (RuntimeException e) {
-			//expected
-		}
-		try {
-			manager.removeRepository(null);
-			fail();
-		} catch (RuntimeException e) {
-			//expected
-		}
-	}
-
-	/**
-	 * Returns whether {@link IMetadataRepositoryManager} contains a reference
-	 * to a repository at the given location.
-	 */
-	private boolean managerContains(URL location) {
-		URL[] locations = manager.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL);
-		for (int i = 0; i < locations.length; i++) {
-			if (locations[i].equals(location))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllOptional.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllOptional.java
deleted file mode 100644
index d759abe..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllOptional.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class AllOptional extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit c1;
-	private IInstallableUnit d1;
-	private IInstallableUnit e1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		RequiredCapability[] reqA = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, true)};
-		a1 = createIU("A", new Version("1.0.0"), reqA);
-		b1 = createIU("B", new Version("1.0.0"), true);
-
-		RequiredCapability[] reqC = new RequiredCapability[2];
-		reqC[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "D", VersionRange.emptyRange, null, true, false, true);
-		reqC[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "E", VersionRange.emptyRange, null, true, false, true);
-		c1 = createIU("C", new Version("1.0.0"), reqC);
-		d1 = createIU("D", new Version("1.0.0"), true);
-		e1 = createIU("E", new Version("1.0.0"), true);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, c1, d1, e1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1, c1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, b1);
-		assertInstallOperand(plan, c1);
-		assertInstallOperand(plan, d1);
-		assertInstallOperand(plan, e1);
-		for (int i = 0; i < plan.getOperands().length; i++) {
-			System.out.println(plan.getOperands()[i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllTests.java
deleted file mode 100644
index 67d8c5a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AllTests.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import junit.framework.*;
-
-/**
- * Performs all automated planner tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(AllOptional.class);
-		suite.addTestSuite(AnotherSingleton.class);
-		suite.addTestSuite(Bug207319.class);
-		suite.addTestSuite(DependencyOnSelf.class);
-		suite.addTestSuite(DropinsScenario.class);
-		suite.addTestSuite(GreedyRequirement.class);
-		suite.addTestSuite(IUWithFilter.class);
-		suite.addTestSuite(IUWithFilter2.class);
-		suite.addTestSuite(MinimalInstall.class);
-		suite.addTestSuite(MissingDependency.class);
-		suite.addTestSuite(MissingDependency2.class);
-		suite.addTestSuite(MissingDependency3.class);
-		suite.addTestSuite(MissingNonGreedyRequirement.class);
-		suite.addTestSuite(MissingNonGreedyRequirement2.class);
-		suite.addTestSuite(MissingOptional.class);
-		suite.addTestSuite(MissingOptionalNonGreedyRequirement.class);
-		suite.addTestSuite(MissingOptionalWithDependencies.class);
-		suite.addTestSuite(MissingOptionalWithDependencies2.class);
-		suite.addTestSuite(MissingOptionalWithDependencies3.class);
-		suite.addTestSuite(MultipleProvider.class);
-		suite.addTestSuite(MultipleSingleton.class);
-		suite.addTestSuite(NoRequirements.class);
-		suite.addTestSuite(SimpleOptionalTest.class);
-		suite.addTestSuite(SimpleOptionalTest2.class);
-		suite.addTestSuite(SimpleOptionalTest3.class);
-		suite.addTestSuite(SimpleSingleton.class);
-		suite.addTestSuite(UninstallEverything.class);
-		return suite;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AnotherSingleton.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AnotherSingleton.java
deleted file mode 100644
index 9f58983..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/AnotherSingleton.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class AnotherSingleton extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit a2;
-	IInstallableUnit a3;
-	IInstallableUnit a4;
-	IInstallableUnit u, v, w, x, y, z;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-
-		a2 = createIU("A", new Version("2.0.0"), true);
-
-		RequiredCapability c1 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null, false, false);
-		x = createIU("X", new Version(2, 0, 0), new RequiredCapability[] {c1});
-
-		RequiredCapability c2 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[2.0.0, 2.0.0]"), null, false, false);
-		y = createIU("Y", new Version(2, 0, 0), new RequiredCapability[] {c2});
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, a2, x, y});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-
-	}
-
-	public void test1() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {x, y});
-		assertEquals(IStatus.ERROR, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/Bug207319.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/Bug207319.java
deleted file mode 100644
index f96dbc3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/Bug207319.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class Bug207319 extends AbstractProvisioningTest {
-	IInstallableUnit a, b, c;
-
-	IDirector director;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a = createIU("A", new Version("1.0.0"));
-		b = createIU("B", new Version("1.0.0"), new ProvidedCapability[] {MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new Version("1.0.0"))});
-		c = createIU("C", new Version("1.0.0"), createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null));
-		createTestMetdataRepository(new IInstallableUnit[] {a, b, c});
-		profile = createProfile(Bug207319.class.getName());
-		director = createDirector();
-
-	}
-
-	public void testEnsureANeverInstalled() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {b});
-		assertEquals(IStatus.OK, director.provision(req, null, null).getSeverity());
-		assertProfileContainsAll("B is missing", profile, new IInstallableUnit[] {b});
-		assertNotIUs(new IInstallableUnit[] {a}, profile.query(InstallableUnitQuery.ANY, new Collector(), null).iterator());
-
-		ProfileChangeRequest req2 = new ProfileChangeRequest(profile);
-		req2.addInstallableUnits(new IInstallableUnit[] {c});
-		assertEquals(IStatus.OK, director.provision(req2, null, null).getSeverity());
-		assertProfileContainsAll("B and C are missing", profile, new IInstallableUnit[] {b, c});
-		assertNotIUs(new IInstallableUnit[] {a}, profile.query(InstallableUnitQuery.ANY, new Collector(), null).iterator());
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DependencyOnSelf.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DependencyOnSelf.java
deleted file mode 100644
index 07eabd3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DependencyOnSelf.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class DependencyOnSelf extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null));
-		createTestMetdataRepository(new IInstallableUnit[] {a1});
-		profile = createProfile(DependencyOnSelf.class.getName());
-		planner = createPlanner();
-	}
-
-	public void testInstall() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DropinsScenario.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DropinsScenario.java
deleted file mode 100644
index 124b5f8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/DropinsScenario.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class DropinsScenario extends AbstractProvisioningTest {
-	IInstallableUnit a0;
-	IInstallableUnit b0;
-	IInstallableUnit a1;
-	IInstallableUnit b1;
-	IInstallableUnit as;
-	IInstallableUnit bs;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-
-		b1 = createIU("B", new Version("1.0.0"), true);
-
-		a0 = createIU("A", new Version("0.0.0"), true);
-		b0 = createIU("B", new Version("0.0.0"), true);
-
-		RequiredCapability[] reqAs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[0.0.0, 1.0.0]"), null, false, false, true)};
-		as = createIU("AS", new Version("0.0.0"), reqAs);
-
-		RequiredCapability[] reqBs = new RequiredCapability[] {MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[0.0.0, 1.0.0]"), null, false, false, true)};
-		bs = createIU("BS", new Version("0.0.0"), reqBs);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, a0, b0, as, bs});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {as, bs});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/GreedyRequirement.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/GreedyRequirement.java
deleted file mode 100644
index 211b730..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/GreedyRequirement.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class GreedyRequirement extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit c1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		b1 = createIU("B", new Version("1.0.0"), true);
-
-		RequiredCapability[] reqB = new RequiredCapability[1];
-		reqB[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, true, false, false);
-		a1 = createIU("A", new Version("1.0.0"), reqB);
-
-		RequiredCapability[] reqC = new RequiredCapability[1];
-		reqC[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, true);
-		c1 = createIU("C", new Version("1.0.0"), reqC);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, c1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstall() {
-		//The plan contains B because the requirement from A on B is non greedy, but we are installing C that has a greedy requirement on the B
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1, c1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, b1);
-		assertInstallOperand(plan, c1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter.java
deleted file mode 100644
index a458a9f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class IUWithFilter extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		MetadataFactory.InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription();
-		iud.setId("A");
-		iud.setVersion(new Version("1.0.0"));
-		iud.setRequiredCapabilities(createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null));
-		iud.setApplicabilityFilter("(invalid=true)");
-		iud.setFilter("(invalid=true)");
-		a1 = MetadataFactory.createInstallableUnit(iud);
-		createTestMetdataRepository(new IInstallableUnit[] {a1});
-		profile = createProfile(IUWithFilter.class.getName());
-		planner = createPlanner();
-	}
-
-	public void testInstall() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.ERROR, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter2.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter2.java
deleted file mode 100644
index 9102be9..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/IUWithFilter2.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class IUWithFilter2 extends AbstractProvisioningTest {
-	IInstallableUnit a1, a2;
-	IInstallableUnit b1;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		RequiredCapability[] reqs = new RequiredCapability[1];
-		reqs[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[1.0.0, 1.0.0]"), null, false, false);
-		a1 = createIU("A", reqs);
-
-		RequiredCapability[] reqsA2 = new RequiredCapability[1];
-		reqsA2[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[1.0.0, 1.0.0]"), null, true, false);
-		a2 = createIU("A", reqsA2);
-
-		b1 = createIU("B", new Version("1.0.0"), "(invalid=true)", NO_PROVIDES);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, a2, b1});
-		profile = createProfile(IUWithFilter2.class.getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallA1() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.ERROR, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-
-	public void testInstallA2() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a2});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MinimalInstall.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MinimalInstall.java
deleted file mode 100644
index fd07607..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MinimalInstall.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MinimalInstall extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit b1;
-	IInstallableUnit b11;
-	IInstallableUnit c;
-
-	IProfile profile;
-	IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "B1", new VersionRange("[1.0.0, 2.0.0)"), null));
-
-		b1 = createIU("B1", new Version("1.0.0"), true);
-
-		b11 = createIU("B1", new Version("1.1.0"), createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[1.0.0, 3.0.0)"), null), NO_PROPERTIES, true);
-
-		c = createIU("C", new Version(2, 0, 0), true);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, b11, c});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-
-	}
-
-	public void testInstallA1() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency.java
deleted file mode 100644
index 0771abe..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingDependency extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit b1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-
-		//Missing non optional dependency
-		RequiredCapability[] req = new RequiredCapability[1];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, false, false, true);
-		b1 = createIU("B", new Version("1.0.0"), req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testContradiction() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1, b1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.ERROR, plan.getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency2.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency2.java
deleted file mode 100644
index b646c27..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency2.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingDependency2 extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit b1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		RequiredCapability[] reqA = new RequiredCapability[1];
-		reqA[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, true);
-		a1 = createIU("A", new Version("1.0.0"), reqA);
-
-		//Missing optional dependency
-		RequiredCapability[] req = new RequiredCapability[1];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, true, false, true);
-		b1 = createIU("B", new Version("1.0.0"), req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testContradiction() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency3.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency3.java
deleted file mode 100644
index dcf050d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingDependency3.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingDependency3 extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit b1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	//This tests that A can still be resolved and installed
-	protected void setUp() throws Exception {
-		super.setUp();
-		RequiredCapability[] reqA = new RequiredCapability[1];
-		reqA[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, true, false, true);
-		a1 = createIU("A", new Version("1.0.0"), reqA);
-
-		//Missing dependency
-		RequiredCapability[] req = new RequiredCapability[1];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, false, false, true);
-		b1 = createIU("B", new Version("1.0.0"), req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testContradiction() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.WARNING, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement.java
deleted file mode 100644
index af462ac..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingNonGreedyRequirement extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit c1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		b1 = createIU("B", new Version("1.0.0"), true);
-
-		c1 = createIU("C", new Version("1.0.0"), true);
-
-		RequiredCapability[] reqB = new RequiredCapability[2];
-		reqB[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, false);
-		reqB[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, true, false, true);
-		a1 = createIU("A", new Version("1.0.0"), reqB);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, c1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstall() {
-		//The planner returns an error because the requirement from A on B is non greedy and no one brings in B
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.ERROR, plan.getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement2.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement2.java
deleted file mode 100644
index dd13479..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingNonGreedyRequirement2.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingNonGreedyRequirement2 extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit c1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		c1 = createIU("C", new Version("1.0.0"), true);
-
-		RequiredCapability[] reqB = new RequiredCapability[2];
-		reqB[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, false);
-		reqB[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, true, false, true);
-		a1 = createIU("A", new Version("1.0.0"), reqB);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, c1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstall() {
-		//The planner returns an error because the requirement from A on B is non greedy and no one brings in B.
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.ERROR, plan.getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptional.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptional.java
deleted file mode 100644
index 3f7ae5c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptional.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingOptional extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit d;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-		b1 = createIU("B", new Version("1.0.0"), true);
-
-		RequiredCapability[] req = new RequiredCapability[3];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, true);
-		req[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, true, false, true);
-		req[2] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, true, false, true);
-		d = createIU("D", req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, d});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		//Ensure that D's installation does not fail because of C's absence
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {d});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, b1); //THIS May not be in
-		assertInstallOperand(plan, d);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalNonGreedyRequirement.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalNonGreedyRequirement.java
deleted file mode 100644
index 0b9a9b9..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalNonGreedyRequirement.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingOptionalNonGreedyRequirement extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		b1 = createIU("B", new Version("1.0.0"), true);
-
-		RequiredCapability[] reqB = new RequiredCapability[1];
-		reqB[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, true, false, false);
-		a1 = createIU("A", new Version("1.0.0"), reqB);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstall() {
-		//The plan does not contains B because the requirement from A on B is non greedy and no one brings in B
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertNoOperand(plan, b1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies.java
deleted file mode 100644
index d5dfdc7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingOptionalWithDependencies extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit d;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-
-		//B's dependency is missing
-		RequiredCapability[] reqB = new RequiredCapability[2];
-		reqB[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, true, false, true);
-		reqB[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, true);
-		b1 = createIU("B", new Version("1.0.0"), reqB);
-
-		RequiredCapability[] req = new RequiredCapability[2];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, true);
-		req[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, true);
-		d = createIU("D", req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, d});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		//Ensure that D's installation does not fail because of C's absence
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {d});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, b1);
-		assertInstallOperand(plan, d);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies2.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies2.java
deleted file mode 100644
index 8ab96ee..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies2.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingOptionalWithDependencies2 extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit c1;
-	private IInstallableUnit c2;
-	private IInstallableUnit d;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-		c1 = createIU("C", new Version("1.0.0"), true);
-		c2 = createIU("C", new Version("2.0.0"), true);
-
-		//B's dependency on C can not be satisfied
-		RequiredCapability[] reqB = new RequiredCapability[2];
-		reqB[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[1.0.0, 1.0.0]"), null, true, false, true);
-		reqB[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, true);
-		b1 = createIU("B", new Version("1.0.0"), reqB);
-
-		RequiredCapability[] req = new RequiredCapability[3];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, true);
-		req[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, true);
-		req[2] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[2.0.0, 2.0.0]"), null, false, false, true);
-		d = createIU("D", req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, c1, c2, d});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		//Ensure that D's installation does not fail because of C's absence
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {d});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, d);
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, b1);
-		assertInstallOperand(plan, c2);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies3.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies3.java
deleted file mode 100644
index a9ee06e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MissingOptionalWithDependencies3.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MissingOptionalWithDependencies3 extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit c1;
-	private IInstallableUnit c2;
-	private IInstallableUnit d;
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-		c1 = createIU("C", new Version("1.0.0"), true);
-		c2 = createIU("C", new Version("2.0.0"), true);
-
-		//B's dependency on C can not be satisfied
-		RequiredCapability[] reqB = new RequiredCapability[2];
-		reqB[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[1.0.0, 1.0.0]"), null, true, false, true);
-		reqB[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, true);
-		b1 = createIU("B", new Version("1.0.0"), reqB);
-
-		RequiredCapability[] req = new RequiredCapability[3];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, true);
-		req[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, true, false, true);
-		req[2] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[2.0.0, 2.0.0]"), null, false, false, true);
-		d = createIU("D", req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, c1, c2, d});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		//Ensure that D's installation does not fail because of C's absence
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {d});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, b1);
-		assertInstallOperand(plan, d);
-		assertInstallOperand(plan, c2);
-		for (int i = 0; i < plan.getOperands().length; i++) {
-			System.out.println(plan.getOperands()[i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleProvider.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleProvider.java
deleted file mode 100644
index da387ab..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MultipleProvider extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit b1;
-	IInstallableUnit b11;
-	IInstallableUnit b12;
-	IInstallableUnit b13;
-	IInstallableUnit b14;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "B1", new VersionRange("[1.0.0, 2.0.0)"), null));
-
-		b1 = createIU("B1", new Version("1.0.0"), true);
-
-		b11 = createIU("B1", new Version("1.1.0"), true);
-
-		b12 = createIU("B1", new Version("1.2.0"), true);
-
-		b13 = createIU("B1", new Version("1.3.0"), true);
-
-		b14 = createIU("B1", new Version("1.4.0"), true);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, b11, b12, b13, b14});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-
-	}
-
-	public void testInstall() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleSingleton.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleSingleton.java
deleted file mode 100644
index 6cac84b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/MultipleSingleton.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class MultipleSingleton extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit a2;
-	IInstallableUnit a3;
-	IInstallableUnit a4;
-	IInstallableUnit u, v, w, x, y, z;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-
-		a2 = createIU("A", new Version("2.0.0"), true);
-
-		a3 = createIU("A", new Version("3.0.0"), false);
-
-		a4 = createIU("A", new Version("4.0.0"), false);
-
-		x = createIU("X", new Version(2, 0, 0), createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 4.1.0)"), null));
-
-		RequiredCapability c1 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null, false, false);
-		RequiredCapability c2 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[2.0.0, 2.0.0]"), null, false, false);
-		y = createIU("Y", new Version(2, 0, 0), new RequiredCapability[] {c1, c2});
-
-		RequiredCapability c3 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[3.0.0, 3.0.0]"), null, false, false);
-		RequiredCapability c4 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[4.0.0, 4.0.0]"), null, false, false);
-		z = createIU("Z", new Version(2, 0, 0), new RequiredCapability[] {c3, c4});
-
-		RequiredCapability c5 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null, false, false);
-		RequiredCapability c6 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[3.0.0, 3.0.0]"), null, false, false);
-		w = createIU("W", new Version(2, 0, 0), new RequiredCapability[] {c5, c6});
-
-		RequiredCapability c7 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 2.0.0]"), null, false, false);
-		RequiredCapability c8 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[3.0.0, 4.0.0]"), null, false, false);
-		v = createIU("V", new Version(2, 0, 0), new RequiredCapability[] {c7});
-		u = createIU("U", new Version(2, 0, 0), new RequiredCapability[] {c8});
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, a2, a3, a4, w, x, y, z});
-
-		profile = createProfile("TestProfile.MultipleSingleton" + getName());
-		planner = createPlanner();
-
-	}
-
-	public void test1() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {x});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-
-	public void test2() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {y});
-		assertEquals(IStatus.ERROR, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-
-	public void test3() {
-		//Test that we can install A3 and A4 together
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {z});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-
-	public void test4() {
-		//Ensure that A1 and A3 can't be installed together since one is singleton and the other not
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {w});
-		assertEquals(IStatus.ERROR, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-
-	public void test5b() {
-		//Validate the setup
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {u});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-
-	public void test5c() {
-		//Validate the setup
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {v});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-
-	public void test5() {
-		//Ensure
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {u, v});
-		assertEquals(IStatus.ERROR, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NoRequirements.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NoRequirements.java
deleted file mode 100644
index 0707f04..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NoRequirements.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class NoRequirements extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), createRequiredCapabilities(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null));
-		createTestMetdataRepository(new IInstallableUnit[] {a1});
-		profile = createProfile(NoRequirements.class.getName());
-		planner = createPlanner();
-	}
-
-	public void testInstall() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		assertEquals(IStatus.OK, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest.java
deleted file mode 100644
index c578a3a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class SimpleOptionalTest extends AbstractProvisioningTest {
-	//A dep B op, C, D op 
-	//X dep B
-
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		b1 = createIU("B", new Version("1.0.0"), true);
-
-		//B's dependency is missing
-		RequiredCapability[] reqA = new RequiredCapability[1];
-		reqA[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, true, false, true);
-		a1 = createIU("A", new Version("1.0.0"), reqA);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		//Ensure that D's installation does not fail because of C's absence
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, b1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest2.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest2.java
deleted file mode 100644
index 3bbe964..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest2.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class SimpleOptionalTest2 extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit b2;
-	private IInstallableUnit b3;
-	private IInstallableUnit c1;
-	private IInstallableUnit c2;
-	private IInstallableUnit d1;
-	private IInstallableUnit d2;
-	private IInstallableUnit x1;
-	private IInstallableUnit y1;
-	private IInstallableUnit z1;
-
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		b1 = createIU("B", new Version("1.0.0"), true);
-		b2 = createIU("B", new Version("2.0.0"), true);
-		b3 = createIU("B", new Version("3.0.0"), true);
-
-		c1 = createIU("C", new Version("1.0.0"), true);
-		c2 = createIU("C", new Version("2.0.0"), true);
-
-		d1 = createIU("D", new Version("1.0.0"), true);
-		d2 = createIU("D", new Version("2.0.0"), true);
-
-		y1 = createIU("Y", new Version("1.0.0"), true);
-
-		z1 = createIU("Z", new Version("1.0.0"), true);
-
-		//B's dependency is missing
-		RequiredCapability[] reqA = new RequiredCapability[3];
-		reqA[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, true);
-		reqA[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, true, false, true);
-		reqA[2] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "D", VersionRange.emptyRange, null, true, false, true);
-		a1 = createIU("A", new Version("1.0.0"), reqA);
-
-		RequiredCapability[] req = new RequiredCapability[3];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "D", new VersionRange("[1.0.0, 1.0.0]"), null, false, false, true);
-		req[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "Y", VersionRange.emptyRange, null, false, false, true);
-		req[2] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "Z", VersionRange.emptyRange, null, true, false, true);
-		x1 = createIU("X", req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, b2, b3, c1, c2, d1, d2, x1, z1, y1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		//Ensure that D's installation does not fail because of C's absence
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1, x1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, c2);
-		assertInstallOperand(plan, d1);
-		assertInstallOperand(plan, y1);
-		assertInstallOperand(plan, z1);
-		assertInstallOperand(plan, x1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest3.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest3.java
deleted file mode 100644
index a9bf8bb..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleOptionalTest3.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class SimpleOptionalTest3 extends AbstractProvisioningTest {
-	private IInstallableUnit a1;
-	private IInstallableUnit b1;
-	private IInstallableUnit b2;
-	private IInstallableUnit b3;
-	private IInstallableUnit c1;
-	private IInstallableUnit c2;
-	private IInstallableUnit d1;
-	private IInstallableUnit d2;
-	private IInstallableUnit x1;
-
-	private IProfile profile;
-	private IPlanner planner;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		b1 = createIU("B", new Version("1.0.0"), true);
-		b2 = createIU("B", new Version("2.0.0"), true);
-		b3 = createIU("B", new Version("3.0.0"), true);
-
-		c1 = createIU("C", new Version("1.0.0"), true);
-		c2 = createIU("C", new Version("2.0.0"), true);
-
-		d1 = createIU("D", new Version("1.0.0"), true);
-		d2 = createIU("D", new Version("2.0.0"), true);
-
-		//B's dependency is missing
-		RequiredCapability[] reqA = new RequiredCapability[3];
-		reqA[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, true, false, true);
-		reqA[1] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "C", VersionRange.emptyRange, null, false, false, true);
-		reqA[2] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "D", VersionRange.emptyRange, null, true, false, true);
-		a1 = createIU("A", new Version("1.0.0"), reqA);
-
-		RequiredCapability[] req = new RequiredCapability[1];
-		req[0] = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[1.0.0, 2.0.0]"), null, false, false, true);
-		x1 = createIU("X", req);
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, b1, b2, b3, c1, c2, d1, d2, x1});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-	}
-
-	public void testInstallation() {
-		//Ensure that D's installation does not fail because of C's absence
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a1, x1});
-		ProvisioningPlan plan = planner.getProvisioningPlan(req, null, null);
-		assertEquals(IStatus.OK, plan.getStatus().getSeverity());
-		assertInstallOperand(plan, a1);
-		assertInstallOperand(plan, c2);
-		assertInstallOperand(plan, d2);
-		assertInstallOperand(plan, x1);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleSingleton.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleSingleton.java
deleted file mode 100644
index b6e9ee8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/SimpleSingleton.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Version;
-
-public class SimpleSingleton extends AbstractProvisioningTest {
-	IInstallableUnit a1;
-	IInstallableUnit a2;
-	IInstallableUnit a3;
-	IInstallableUnit a4;
-	IInstallableUnit u, v, w, x, y, z;
-
-	IPlanner planner;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a1 = createIU("A", new Version("1.0.0"), true);
-
-		a2 = createIU("A", new Version("2.0.0"), true);
-
-		RequiredCapability c1 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"), null, false, false);
-		RequiredCapability c2 = MetadataFactory.createRequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[2.0.0, 2.0.0]"), null, false, false);
-		y = createIU("Y", new Version(2, 0, 0), new RequiredCapability[] {c1, c2});
-
-		createTestMetdataRepository(new IInstallableUnit[] {a1, a2, y});
-
-		profile = createProfile("TestProfile." + getName());
-		planner = createPlanner();
-
-	}
-
-	public void test1() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {y});
-		assertEquals(IStatus.ERROR, planner.getProvisioningPlan(req, null, null).getStatus().getSeverity());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/UninstallEverything.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/UninstallEverything.java
deleted file mode 100644
index c0782ee..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/UninstallEverything.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.planner;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.director.IDirector;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.osgi.framework.Version;
-
-public class UninstallEverything extends AbstractProvisioningTest {
-	IInstallableUnit a;
-
-	IDirector director;
-	IProfile profile;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		a = createIU("A", new Version("1.0.0"));
-		createTestMetdataRepository(new IInstallableUnit[] {a});
-		profile = createProfile(Bug207319.class.getName());
-		director = createDirector();
-
-	}
-
-	public void testEmpty() {
-		ProfileChangeRequest req = new ProfileChangeRequest(profile);
-		req.addInstallableUnits(new IInstallableUnit[] {a});
-		assertEquals(IStatus.OK, director.provision(req, null, null).getSeverity());
-		assertProfileContainsAll("A is missing", profile, new IInstallableUnit[] {a});
-
-		ProfileChangeRequest req2 = new ProfileChangeRequest(profile);
-		req2.removeInstallableUnits(new IInstallableUnit[] {a});
-		assertEquals(IStatus.OK, director.provision(req2, null, null).getSeverity());
-		assertNotIUs(new IInstallableUnit[] {a}, profile.query(InstallableUnitQuery.ANY, new Collector(), null).iterator());
-
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/AllTests.java
deleted file mode 100644
index af49c8c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/AllTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.sar;
-
-import junit.framework.*;
-
-/**
- * Performs all sar tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(DirectByteArrayOutputStreamTest.class);
-		suite.addTestSuite(SarTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java
deleted file mode 100644
index d98ae78..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/DirectByteArrayOutputStreamTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.sar;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.sar.DirectByteArrayOutputStream;
-
-/**
- * Test the <code>DirectByteArrayOutputStream</code>
- */
-public class DirectByteArrayOutputStreamTest extends TestCase {
-
-	private static final String JUST11BYTES = "just11bytes";
-	private static final int ELEVEN = JUST11BYTES.getBytes().length;
-
-	/**
-	 * Test the constraints of the DBAOS
-	 * 
-	 * @throws IOException
-	 */
-	public void testDBAOSConstraints() throws IOException {
-		DirectByteArrayOutputStream out = new DirectByteArrayOutputStream(1024);
-		out.write(JUST11BYTES.getBytes());
-		assertEquals(ELEVEN, out.getBufferLength());
-		assertEquals(ELEVEN, out.toByteArray().length);
-		assertNotSame(out.toByteArray(), out.getBuffer());
-		assertEquals(1024, out.getBuffer().length);
-		assertEquals(JUST11BYTES, new String(out.getBuffer(), 0, out.getBufferLength()));
-		ByteArrayInputStream in = out.getInputStream();
-		assertEquals(ELEVEN, in.available());
-		byte[] elevenBytes = new byte[ELEVEN];
-		in.read(elevenBytes);
-		assertTrue(Arrays.equals(JUST11BYTES.getBytes(), elevenBytes));
-		assertEquals(-1, in.read());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/SarTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/SarTest.java
deleted file mode 100644
index 4d17238..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/sar/SarTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 compeople AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	compeople AG (Stefan Liebig) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.sar;
-
-import java.io.*;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.equinox.internal.p2.sar.SarUtil;
-import org.eclipse.equinox.p2.tests.TestData;
-
-/**
- * Test the sar stuff.
- */
-public class SarTest extends TestCase {
-
-	//	public void testGenerateTestDataNJarAndSarFromJar32() throws IOException {
-	//		InputStream jar32 = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.jar");
-	//		generateNJarAndSar("org.eclipse.jdt_3.2.0.v20060605-1400", jar32);
-	//	}
-	//
-	//	public void testGenerateTestDataNJarAndSarFromJar33() throws IOException {
-	//		InputStream jar32 = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.jar");
-	//		generateNJarAndSar("org.eclipse.jdt_3.3.0.v20070607-1300", jar32);
-	//	}
-	//
-	//	private void generateNJarAndSar(String name, InputStream jar) throws IOException {
-	//		File njar = File.createTempFile(name, ".njar");
-	//		OutputStream njarOut = new BufferedOutputStream(new FileOutputStream(njar));
-	//
-	//		SarUtil.normalize(jar, njarOut);
-	//
-	//		File sar = File.createTempFile(name, ".sar");
-	//		SarUtil.zipToSar(njar, sar);
-	//	}
-
-	public void testJarToSarForJdt320() throws IOException {
-		InputStream jdt320Jar = TestData.get("optimizers", "org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		InputStream jdt320Sar = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-		doJarToSar(jdt320Jar, jdt320Sar);
-	}
-
-	public void testSarToJarForJdt320() throws IOException {
-		InputStream jdt320Sar = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
-		InputStream jdt320Jar = TestData.get("optimizers", "org.eclipse.jdt_3.2.0.v20060605-1400.njar");
-		doSarToJar(jdt320Sar, jdt320Jar);
-	}
-
-	public void testJarToSarForJdt330() throws IOException {
-		InputStream jdt330Jar = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		InputStream jdt330Sar = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-		doJarToSar(jdt330Jar, jdt330Sar);
-	}
-
-	public void testSarToJarForJdt330() throws IOException {
-		InputStream jdt330Sar = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
-		InputStream jdt330Jar = TestData.get("optimizers", "org.eclipse.jdt_3.3.0.v20070607-1300.njar");
-		doSarToJar(jdt330Sar, jdt330Jar);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	private void doJarToSar(InputStream jar, InputStream expectedSar) throws IOException {
-		File sar = TestData.createTempFile("doJarToSar.sar");
-		OutputStream sarOut = new BufferedOutputStream(new FileOutputStream(sar));
-
-		SarUtil.zipToSar(jar, sarOut);
-
-		InputStream sarIn = new BufferedInputStream(new FileInputStream(sar));
-		TestData.assertEquals(sarIn, expectedSar);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	private void doSarToJar(InputStream sar, InputStream expectedJar) throws IOException {
-		File jar = TestData.createTempFile("doSarToJar.jar");
-		OutputStream jarOut = new BufferedOutputStream(new FileOutputStream(jar));
-
-		SarUtil.sarToZip(sar, jarOut);
-
-		InputStream jarIn = new BufferedInputStream(new FileInputStream(jar));
-		TestData.assertEquals(jarIn, expectedJar);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testZipToSarAndBack() throws IOException {
-		File originalZipFile = TestData.getTempFile("sar", "test.zip");
-		File sarFile = TestData.createTempFile("test.sar");
-		File recreatedZipFile = TestData.createTempFile("test.zip");
-
-		long before = System.currentTimeMillis();
-		SarUtil.zipToSar(originalZipFile, sarFile);
-		System.out.println("zipToSar took: " + (System.currentTimeMillis() - before));
-
-		before = System.currentTimeMillis();
-		SarUtil.sarToZip(sarFile, recreatedZipFile);
-		System.out.println("sarToZip took: " + (System.currentTimeMillis() - before));
-
-		TestData.assertEquals(originalZipFile, recreatedZipFile);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testNormalizeOnFiles() throws IOException {
-		File alienZip = TestData.getTempFile("sar", "alien.zip");
-
-		File normalizedAlienZip = TestData.createTempFile("normalizedalien.zip");
-		SarUtil.normalize(alienZip, normalizedAlienZip);
-
-		assertTrue(alienZip.length() != normalizedAlienZip.length());
-
-		File renormalizedAlienZip = TestData.createTempFile("renormalizedalien.zip");
-		SarUtil.normalize(normalizedAlienZip, renormalizedAlienZip);
-
-		TestData.assertEquals(normalizedAlienZip, renormalizedAlienZip);
-	}
-
-	/**
-	 * @throws IOException
-	 */
-	public void testNormalizeOnStreames() throws IOException {
-		InputStream alienZip = TestData.get("sar", "alien.zip");
-		ByteArrayOutputStream normalizedAlienZip = new ByteArrayOutputStream();
-		ByteArrayOutputStream renormalizedAlienZip = new ByteArrayOutputStream();
-		try {
-			SarUtil.normalize(alienZip, normalizedAlienZip);
-
-			SarUtil.normalize(new ByteArrayInputStream(normalizedAlienZip.toByteArray()), renormalizedAlienZip);
-
-			assertTrue(Arrays.equals(normalizedAlienZip.toByteArray(), renormalizedAlienZip.toByteArray()));
-		} finally {
-			if (alienZip != null)
-				alienZip.close();
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/BundlesTxtTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/BundlesTxtTest.java
deleted file mode 100644
index dc2b043..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/BundlesTxtTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Red Hat, Inc. - tests
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.simpleconfigurator;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.jar.JarFile;
-import org.eclipse.equinox.p2.tests.*;
-import org.eclipse.equinox.p2.tests.embeddedequinox.EmbeddedEquinox;
-import org.osgi.framework.*;
-
-public class BundlesTxtTest extends AbstractProvisioningTest {
-
-	static String BUNDLE_JAR_DIRECTORY = "bundlesTxt";
-	int numBundles = -1;
-	EmbeddedEquinox equinox = null;
-	BundleContext equinoxContext = null;
-	File[] bundleJars = null;
-	File bundlesTxt = null;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		equinox.shutdown();
-	}
-
-	public void testBundlesTxt() throws Exception {
-		File simpleconfiguratorDataDir = TestData.getFile(BUNDLE_JAR_DIRECTORY, "");
-		bundleJars = getBundleJars(simpleconfiguratorDataDir);
-
-		numBundles = bundleJars.length;
-
-		// Create a test bundles.info
-		createBundlesTxt();
-
-		// for demonstration purposes this is just using an install.area and configuration.area located
-		// in the local bundle data area.  For p2 testing you will want to point this to your own properties
-		File installarea = TestActivator.context.getDataFile("eclipse");
-		File configarea = new File(installarea, "configuration");
-
-		File simpleConfiguratorBundle = getSimpleConfiguratorBundle();
-		URL osgiBundle = getFrameworkBundle();
-
-		Map frameworkProperties = new HashMap();
-		// note that any properties you do not want to be inherited from the hosting Equinox will need
-		// to be nulled out.  Otherwise you will pick them up from the hosting env.
-		frameworkProperties.put("osgi.framework", null);
-		frameworkProperties.put("osgi.install.area", installarea.toURL().toExternalForm());
-		frameworkProperties.put("osgi.configuration.area", configarea.toURL().toExternalForm());
-		frameworkProperties.put("osgi.bundles", "reference:" + simpleConfiguratorBundle.toURL().toExternalForm() + "@1:start"); // should point to simple configurator
-		frameworkProperties.put("org.eclipse.equinox.simpleconfigurator.configUrl", bundlesTxt.toURL().toExternalForm());
-		try {
-			equinox = new EmbeddedEquinox(frameworkProperties, new String[] {}, new URL[] {osgiBundle});
-			equinoxContext = equinox.startFramework();
-
-			// verify that loaded bundles should be
-			Bundle[] bundlesInContext = equinoxContext.getBundles();
-			// are all bundles in list of expected bundles?
-			for (int i = 0; i < bundlesInContext.length; i++) {
-				Bundle bundle = bundlesInContext[i];
-				boolean found = false;
-				Bundle notFoundBundle = bundle;
-				for (int j = 0; j < bundleJars.length; j++) {
-					File expectedBundleFile = bundleJars[j];
-					String name = getManifestEntry(expectedBundleFile, Constants.BUNDLE_SYMBOLICNAME);
-					String bundleName = bundle.getSymbolicName();
-					if (bundleName.equalsIgnoreCase(name))
-						found = true;
-				}
-				if (!found)
-					fail("Bundle should not be present:  " + notFoundBundle);
-			}
-
-			// TODO:  should we check start levels?
-
-			// verify that all bundles expected to be loaded are in fact loaded
-			for (int i = 0; i < bundleJars.length; i++) {
-				File bundle = bundleJars[i];
-				String name = getManifestEntry(bundle, Constants.BUNDLE_SYMBOLICNAME);
-				boolean loaded = false;
-				for (int j = 0; j < bundlesInContext.length; j++) {
-					Bundle loadedBundle = bundlesInContext[j];
-					if (loadedBundle.getSymbolicName().equalsIgnoreCase(name))
-						loaded = true;
-				}
-				if (!loaded)
-					fail("Bundle expected to be loaded but is not:  " + name);
-			}
-
-			assertEquals("Too many/too few bundles!!", numBundles, bundlesInContext.length);
-		} finally {
-			equinox.shutdown();
-		}
-	}
-
-	private File getSimpleConfiguratorBundle() {
-		for (int i = 0; i < bundleJars.length; i++) {
-			File bundleJar = bundleJars[i];
-			if (bundleJar.getName().startsWith("org.eclipse.equinox.simpleconfigurator"))
-				return bundleJar;
-		}
-		return null;
-	}
-
-	private void createBundlesTxt() throws IOException {
-		bundlesTxt = File.createTempFile("bundles", ".txt");
-		bundlesTxt.deleteOnExit();
-
-		BufferedWriter bundlesTxtOut = new BufferedWriter(new FileWriter(bundlesTxt));
-
-		for (int i = 0; i < bundleJars.length; i++) {
-			File bundleJar = bundleJars[i];
-			bundlesTxtOut.write(getBundlesTxtEntry(bundleJar) + "\n");
-		}
-
-		bundlesTxtOut.close();
-
-		//		FileInputStream f = new FileInputStream(bundlesTxt);
-		//		BufferedInputStream b = new BufferedInputStream(f);
-		//		DataInputStream d = new DataInputStream(b);
-		//		while (d.available() != 0) {
-		//			System.out.println(d.readLine());
-		//		}
-	}
-
-	private String getBundlesTxtEntry(File bundleJar) throws IOException {
-		String name = getManifestEntry(bundleJar, Constants.BUNDLE_SYMBOLICNAME);
-		String version = getManifestEntry(bundleJar, Constants.BUNDLE_VERSION);
-		// <name>,<version>,file:<file>,<startlevel>,true
-		return name + "," + version + "," + "file:" + bundleJar.getAbsolutePath() + "," + getStartLevel(name) + ",true";
-	}
-
-	private String getManifestEntry(File bundleFile, String entry) {
-		try {
-			JarFile bundleJar = new JarFile(bundleFile);
-			String value = bundleJar.getManifest().getMainAttributes().getValue(entry);
-			if (value.indexOf(";") > -1) {
-				String[] valueElements = value.split(";");
-				return valueElements[0];
-			} else
-				return value;
-		} catch (IOException e) {
-			e.printStackTrace();
-			return null;
-		}
-
-	}
-
-	private URL getFrameworkBundle() {
-		for (int i = 0; i < bundleJars.length; i++) {
-			File bundleJar = bundleJars[i];
-			if (bundleJar.getName().startsWith("org.eclipse.osgi"))
-				try {
-					return bundleJar.toURL();
-				} catch (MalformedURLException e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
-				}
-		}
-		return null;
-	}
-
-	private int getStartLevel(String bundleName) {
-		int startLevel = 4;
-		// some special case start levels
-		if (bundleName.matches("org.eclipse.osgi")) {
-			startLevel = -1;
-		} else if (bundleName.matches("org.eclipse.equinox.common")) {
-			startLevel = 2;
-		} else if (bundleName.matches("org.eclipse.equinox.simpleconfigurator")) {
-			startLevel = 1;
-		}
-		return startLevel;
-	}
-
-	private File[] getBundleJars(File directory) {
-		FilenameFilter bundleFilter = new FilenameFilter() {
-			public boolean accept(File directoryName, String filename) {
-				return !filename.startsWith(".") && !filename.equals("CVS");
-			}
-		};
-		return directory.listFiles(bundleFilter);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/SimpleConfiguratorTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/SimpleConfiguratorTests.java
deleted file mode 100644
index 01ffc7b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/SimpleConfiguratorTests.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Red Hat, Inc. and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.p2.tests.simpleconfigurator;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class SimpleConfiguratorTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite("Tests for org.eclipse.equinox.simpleconfigurator");
-		//$JUnit-BEGIN$
-		suite.addTestSuite(BundlesTxtTest.class);
-		//$JUnit-END$
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java
deleted file mode 100644
index 9abea3d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/AllTests.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.updatesite;
-
-import junit.framework.*;
-
-/**
- * Performs all automated director tests.
- */
-public class AllTests extends TestCase {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTestSuite(UpdateSiteTest.class);
-		return suite;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java
deleted file mode 100644
index 5f1b4ad..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/updatesite/UpdateSiteTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.p2.tests.updatesite;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.equinox.internal.p2.updatesite.UpdateSite;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.Feature;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-
-/**
- * @since 1.0
- */
-public class UpdateSiteTest extends AbstractProvisioningTest {
-	/*
-	 * Constructor for the class.
-	 */
-	public UpdateSiteTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * Run all the tests in this class.
-	 */
-	public static Test suite() {
-		return new TestSuite(UpdateSiteTest.class);
-	}
-
-	public void testBadDigest() {
-		// TODO test the case where we have a site which contains a bad digest file
-		// and default to a good site.xml
-
-		// TODO test the case where we have a site which contains a bad digest file
-		// and try default to a site.xml but it is bad too
-
-	}
-
-	public void testGoodDigest() {
-		// TODO handle the case where we have a site with a good digest file
-	}
-
-	public void testBadSiteXML() {
-		// handle the case where the site.xml doesn't parse correctly
-		File site = getTestData("0.1", "/testData/updatesite/badSiteXML");
-		try {
-			UpdateSite.load(site.toURL(), getMonitor());
-			fail("0.2");
-		} catch (ProvisionException e) {
-			// expected exception
-		} catch (MalformedURLException e) {
-			fail("0.3", e);
-		}
-	}
-
-	/*
-	 * Test the case where we don't have a digest or site.xml.
-	 */
-	public void testNoSite() {
-		// ensure we have a validate, empty location
-		File temp = getTempFolder();
-		temp.mkdirs();
-		URL location = null;
-		try {
-			location = temp.toURL();
-		} catch (MalformedURLException e) {
-			fail("0.1", e);
-		}
-		try {
-			UpdateSite.load(location, getMonitor());
-			fail("0.2");
-		} catch (ProvisionException e) {
-			// we expect an exception
-		}
-
-		try {
-			assertNull("1.0", UpdateSite.load(null, getMonitor()));
-		} catch (ProvisionException e) {
-			fail("1.99", e);
-		}
-	}
-
-	/*
-	 * Test in which we load an update site from a valid site.xml file. Handle
-	 * all the variations in the file.
-	 */
-	public void testSite() {
-		File siteLocation = getTestData("0.1", "/testData/updatesite/site");
-		UpdateSite site = null;
-		try {
-			site = UpdateSite.load(siteLocation.toURL(), getMonitor());
-		} catch (ProvisionException e) {
-			fail("0.2", e);
-		} catch (MalformedURLException e) {
-			fail("0.3", e);
-		}
-		Feature[] features = null;
-		try {
-
-			features = site.loadFeatures();
-		} catch (ProvisionException e) {
-			fail("0.4", e);
-		}
-	}
-
-	public void testMirrors() {
-		// TODO test the case where the site.xml points to a mirror location
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tests/test.xml b/bundles/org.eclipse.equinox.p2.tests/test.xml
deleted file mode 100644
index 856774c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/test.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0"?>
-<project name="p2 Automated Tests" default="run" basedir=".">
-
-	<!-- The property ${eclipse-home} should be passed into this script -->
-	<!-- sets the properties eclipse-home, and library-file -->
-	<property name="eclipse-home" value="${basedir}/../../" />
-	<property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml" />
-	<property name="p2_location" value="${eclipse-home}/p2_sniff_folder" />
-	<property name="plugin-name" value="org.eclipse.equinox.p2.tests" />
-
-	<!-- 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 />
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after the tests -->
-	<!-- have been run. You can use this to delete temporary files that are created. -->
-	<target name="cleanup">
-		<delete dir="${p2_location}" quiet="true" />
-	</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. Any actions that need to happen after all -->
-	<!-- the tests have been run should go here. -->
-	<target name="performance" depends="init,performance-suite,cleanup">
-		<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="includes" value="org*.xml" />
-			<property name="output-file" value="${plugin-name}.xml" />
-		</ant>
-	</target>
-
-	<target name="p2Tests" depends="init,cleanup">
-		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${p2_location}" />
-			<property name="plugin-name" value="org.eclipse.equinox.p2.tests" />
-			<property name="classname" value="org.eclipse.equinox.p2.tests.AutomatedTests" />
-		</ant>
-	</target>
-
-	<!-- This target defines the tests that need to be run. -->
-	<target name="suite" depends="p2Tests" />
-
-	<!-- This target defines the performance tests that need to be run. -->
-	<target name="performance-suite" depends="p2PerformanceTests" />
-
-	<target name="p2PerformanceTests">
-		<!-- TODO -->
-	</target>
-</project>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.common_3.4.0.v20070910.jar b/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.common_3.4.0.v20070910.jar
deleted file mode 100644
index 60b2b76..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.common_3.4.0.v20070910.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.simpleconfigurator.jar b/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.simpleconfigurator.jar
deleted file mode 100644
index 0454299..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.equinox.simpleconfigurator.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.osgi_3.4.0.v20071030.jar b/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.osgi_3.4.0.v20071030.jar
deleted file mode 100644
index 558b01f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/bundlesTxt/org.eclipse.osgi_3.4.0.v20071030.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.eclipse.osgi.services_3.1.200.v20070605.jar b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.eclipse.osgi.services_3.1.200.v20070605.jar
deleted file mode 100644
index f160614..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.eclipse.osgi.services_3.1.200.v20070605.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA
deleted file mode 100644
index 0e6fd7e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF
deleted file mode 100644
index 02e74aa..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF
+++ /dev/null
@@ -1,20 +0,0 @@
-Signature-Version: 1.0

-SHA1-Digest-Manifest-Main-Attributes: tPSlRd6sUMu8HGBrZzryEi7xoAI=

-Created-By: 1.5.0 (IBM Corporation)

-SHA1-Digest-Manifest: 7C3Xo2E7YjnnV3TxHcX11i4c5BA=

-

-Name: plugin.properties

-SHA1-Digest: 5XC7EdM8EOCa1VASp4M/bgut2mk=

-

-Name: about.html

-SHA1-Digest: 3FGlljWZwXaprsAxNVJWNShkOiQ=

-

-Name: about_files/cpl-v10.html

-SHA1-Digest: YZUV+BFnw6XLRdU0eCv1FYdy8cQ=

-

-Name: junit.jar

-SHA1-Digest: aNKD7gKxpBEj5sDv4cwzWeXRifQ=

-

-Name: META-INF/eclipse.inf

-SHA1-Digest: SAqY+5ITAL0mkdYeijlSRhyIaZk=

-

diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF
deleted file mode 100644
index 7d16c7f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,31 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Version: 3.8.2.v200706111738
-Export-Package: junit.awtui;version="3.8.2",junit.extensions;version="
- 3.8.2",junit.framework;version="3.8.2",junit.runner;version="3.8.2",j
- unit.swingui;version="3.8.2",junit.swingui.icons;version="3.8.2",juni
- t.textui;version="3.8.2"
-Created-By: 2.3 (IBM Corporation)
-Bundle-SymbolicName: org.junit
-Bundle-Name: %pluginName
-Bundle-RequiredExecutionEnvironment: J2SE-1.3
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
-Bundle-ClassPath: junit.jar
-Ant-Version: Apache Ant 1.7.0
-
-Name: plugin.properties
-SHA1-Digest: mL9yvXBmAAJi7G1tls7akuyPG+A=
-
-Name: about_files/cpl-v10.html
-SHA1-Digest: o0b19ceZ+HQHVX0Ops751AQVdwM=
-
-Name: about.html
-SHA1-Digest: iPsyJPEYGTQ+luOJhiJgUtDVYkE=
-
-Name: junit.jar
-SHA1-Digest: Y+KaCRbbBcmThxDeHAxhrzYGkyg=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf
deleted file mode 100644
index 7864d3c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-#Processed using Jarprocessor
-pack200.args = -E4
-pack200.conditioned = true
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about.html b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about.html
deleted file mode 100644
index 70913ee..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>September 28, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-<h3>Third Party Content</h3>
-
-<p>The Content includes items that have been sourced from third parties as set out below. If you 
-did not receive this Content directly from the Eclipse Foundation, the following is provided 
-for informational purposes only, and you should look to the Redistributor&rsquo;s license for 
-terms and conditions of use.</p>
-
-<p>The Content includes items that have been sourced from third parties as follows:</p>
-
-<h4>JUnit 3.8.2</h4>
-
-<p>The plug-in is accompanied by software developed by JUnit.org.  The JUnit 3.8.2 code included with the plug-in includes no modifications.
-Your use of JUnit 3.8.2 in both source and binary code form contained in the plug-in is subject to 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>.
-The binary code is located in junit.jar and the source code is located in src.jar.</p>
-
-<p>i) IBM 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;</p>
-
-<p>ii) IBM effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;</p>
-
-<p>iii) IBM states that any provisions which differ from the CPL are offered by that IBM alone and not by any other party.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about_files/cpl-v10.html b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about_files/cpl-v10.html
deleted file mode 100644
index 455e7b0..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/about_files/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/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/junit.jar b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/junit.jar
deleted file mode 100644
index 7a21fc5..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/junit.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/plugin.properties b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/plugin.properties
deleted file mode 100644
index edfb96b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher1/org.junit_3.8.2.v200706111738/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=JUnit Testing Framework
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20070827.jar b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20070827.jar
deleted file mode 100644
index fb110a7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20070827.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.osgi.services_3.1.200.v20070605.jar b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.osgi.services_3.1.200.v20070605.jar
deleted file mode 100644
index f160614..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.eclipse.osgi.services_3.1.200.v20070605.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA
deleted file mode 100644
index 0e6fd7e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.RSA
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF
deleted file mode 100644
index 02e74aa..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/ECLIPSE.SF
+++ /dev/null
@@ -1,20 +0,0 @@
-Signature-Version: 1.0

-SHA1-Digest-Manifest-Main-Attributes: tPSlRd6sUMu8HGBrZzryEi7xoAI=

-Created-By: 1.5.0 (IBM Corporation)

-SHA1-Digest-Manifest: 7C3Xo2E7YjnnV3TxHcX11i4c5BA=

-

-Name: plugin.properties

-SHA1-Digest: 5XC7EdM8EOCa1VASp4M/bgut2mk=

-

-Name: about.html

-SHA1-Digest: 3FGlljWZwXaprsAxNVJWNShkOiQ=

-

-Name: about_files/cpl-v10.html

-SHA1-Digest: YZUV+BFnw6XLRdU0eCv1FYdy8cQ=

-

-Name: junit.jar

-SHA1-Digest: aNKD7gKxpBEj5sDv4cwzWeXRifQ=

-

-Name: META-INF/eclipse.inf

-SHA1-Digest: SAqY+5ITAL0mkdYeijlSRhyIaZk=

-

diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF
deleted file mode 100644
index 7d16c7f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,31 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Version: 3.8.2.v200706111738
-Export-Package: junit.awtui;version="3.8.2",junit.extensions;version="
- 3.8.2",junit.framework;version="3.8.2",junit.runner;version="3.8.2",j
- unit.swingui;version="3.8.2",junit.swingui.icons;version="3.8.2",juni
- t.textui;version="3.8.2"
-Created-By: 2.3 (IBM Corporation)
-Bundle-SymbolicName: org.junit
-Bundle-Name: %pluginName
-Bundle-RequiredExecutionEnvironment: J2SE-1.3
-Bundle-Localization: plugin
-Bundle-Vendor: %providerName
-Bundle-ClassPath: junit.jar
-Ant-Version: Apache Ant 1.7.0
-
-Name: plugin.properties
-SHA1-Digest: mL9yvXBmAAJi7G1tls7akuyPG+A=
-
-Name: about_files/cpl-v10.html
-SHA1-Digest: o0b19ceZ+HQHVX0Ops751AQVdwM=
-
-Name: about.html
-SHA1-Digest: iPsyJPEYGTQ+luOJhiJgUtDVYkE=
-
-Name: junit.jar
-SHA1-Digest: Y+KaCRbbBcmThxDeHAxhrzYGkyg=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf
deleted file mode 100644
index 7864d3c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/META-INF/eclipse.inf
+++ /dev/null
@@ -1,3 +0,0 @@
-#Processed using Jarprocessor
-pack200.args = -E4
-pack200.conditioned = true
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about.html b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about.html
deleted file mode 100644
index 70913ee..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>September 28, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-<h3>Third Party Content</h3>
-
-<p>The Content includes items that have been sourced from third parties as set out below. If you 
-did not receive this Content directly from the Eclipse Foundation, the following is provided 
-for informational purposes only, and you should look to the Redistributor&rsquo;s license for 
-terms and conditions of use.</p>
-
-<p>The Content includes items that have been sourced from third parties as follows:</p>
-
-<h4>JUnit 3.8.2</h4>
-
-<p>The plug-in is accompanied by software developed by JUnit.org.  The JUnit 3.8.2 code included with the plug-in includes no modifications.
-Your use of JUnit 3.8.2 in both source and binary code form contained in the plug-in is subject to 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>.
-The binary code is located in junit.jar and the source code is located in src.jar.</p>
-
-<p>i) IBM 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;</p>
-
-<p>ii) IBM effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;</p>
-
-<p>iii) IBM states that any provisions which differ from the CPL are offered by that IBM alone and not by any other party.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about_files/cpl-v10.html b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about_files/cpl-v10.html
deleted file mode 100644
index 455e7b0..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/about_files/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/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/junit.jar b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/junit.jar
deleted file mode 100644
index 7a21fc5..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/junit.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/plugin.properties b/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/plugin.properties
deleted file mode 100644
index edfb96b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/directorywatcher2/org.junit_3.8.2.v200706111738/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=JUnit Testing Framework
-providerName=Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/enginerepo.jar b/bundles/org.eclipse.equinox.p2.tests/testData/enginerepo.jar
deleted file mode 100644
index ab23a24..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/enginerepo.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
deleted file mode 100644
index eda0417..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: YVpG2yV+fCKpxjgnc2P7scwrcNU=
-
-Name: feature.properties
-SHA1-Digest: UzM1MZnaZBzb5JHPQZE7wbydJWA=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
deleted file mode 100644
index 203a722..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse RCP
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Rich Client Platform
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
deleted file mode 100644
index 11ef188..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
+++ /dev/null
@@ -1,509 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.rcp"
-      label="%featureName"
-      version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"
-      provider-name="%providerName"
-      plugin="org.eclipse.rcp"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-   </url>
-
-   <plugin
-         id="com.ibm.icu"
-         download-size="0"
-         install-size="0"
-         version="3.6.1.v20070417"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.commands"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070605-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.databinding"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070606-0010"
-         unpack="false"/>
-         
-  <plugin
-         id="org.eclipse.core.databinding.beans"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070606-0010"
-         unpack="false"/>         
-
-   <plugin
-         id="org.eclipse.core.jobs"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070423"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.expressions"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.3.100.v20070530"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.core.runtime.compatibility.auth"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070502"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.osgi"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070530"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.help"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070524"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jface"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jface.databinding"
-         download-size="0"
-         install-size="0"
-         version="1.1.0.I20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070614-0800"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.workbench"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070608-1100"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.ui.carbon"
-         os="macosx"
-         ws="carbon"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.I20070605-0010"
-         fragment="true"
-         unpack="false"/>     
-         
-   <plugin
-         id="org.eclipse.update.configurator"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070615"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.win32.win32.x86"
-         os="win32"
-         ws="win32"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-         
-    <plugin
-         id="org.eclipse.swt.wpf.win32.x86"
-         os="win32"
-         ws="wpf"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.x86"
-         os="linux"
-         ws="gtk"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-         
-  <plugin
-         id="org.eclipse.swt.gtk.linux.s390"
-         os="linux"
-         ws="gtk"
-         arch="s390"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-         
-  <plugin
-         id="org.eclipse.swt.gtk.linux.s390x"
-         os="linux"
-         ws="gtk"
-         arch="s390x"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>         
-         
-	 <plugin
-         id="org.eclipse.swt.gtk.solaris.sparc"
-         os="solaris"
-         ws="gtk"
-         arch="sparc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-         
-         <plugin
-         id="org.eclipse.swt.gtk.solaris.x86"
-         os="solaris"
-         ws="gtk"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.ppc"
-         os="linux"
-         ws="gtk"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.x86_64"
-         os="linux"
-         ws="gtk"
-         arch="x86_64"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.carbon.macosx"
-         os="macosx"
-         ws="carbon"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.aix.ppc"
-         os="aix"
-         ws="motif"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.hpux.PA_RISC"
-         os="hpux"
-         ws="motif"
-         arch="PA_RISC"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3345a"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.linux.x86"
-         os="linux"
-         ws="motif"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.ia64"
-         os="linux"
-         ws="gtk"
-         arch="ia64"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.HEAD"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.solaris.sparc"
-         os="solaris"
-         ws="motif"
-         arch="sparc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.photon.qnx.x86"
-         os="qnx"
-         ws="photon"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.hpux.ia64_32"
-         os="hpux"
-         ws="motif"
-         arch="ia64_32"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.HEAD"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.rcp"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.v20070612"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.contenttype"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070319"
-         unpack="false"/>           
-
-	<plugin
-         id="org.eclipse.equinox.app"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.common"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070426"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.preferences"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070522"
-         unpack="false"/>        
-         
-
-   <plugin
-         id="org.eclipse.equinox.registry"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070522"
-         unpack="false"/>
-
-	<plugin
-         id="org.eclipse.equinox.launcher"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         unpack="false"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.solaris.sparc"
-         os="solaris"
-         ws="gtk"
-         arch="sparc"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.carbon.macosx"
-         os="macosx"
-         ws="carbon"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.ppc"
-         os="linux"
-         ws="gtk"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>         
-         
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.x86"
-         os="linux"
-         ws="gtk"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-         
-    <plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.s390"
-         os="linux"
-         ws="gtk"
-         arch="s390"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="true"/>
-         
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.s390x"
-         os="linux"
-         ws="gtk"
-         arch="s390x"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="true"/>
-         
-   <plugin
-         id="org.eclipse.equinox.launcher.motif.linux.x86"
-         os="linux"
-         ws="motif"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070524"
-         fragment="true"
-         unpack="true"/> 
-           
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.x86_64"
-         os="linux"
-         ws="gtk"
-         arch="x86_64"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.motif.aix.ppc"
-         os="aix"
-         ws="motif"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070524"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.motif.hpux.PA_RISC"
-         os="hpux"
-         ws="motif"
-         arch="PA_RISC"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070219"
-         fragment="true"
-         unpack="true"/>         
-                  
-         <plugin
-         id="org.eclipse.equinox.launcher.wpf.win32.x86"
-         os="win32"
-         ws="wpf"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070523"
-         fragment="true"
-         unpack="true"/>
-         
-	<plugin
-         id="org.eclipse.equinox.launcher.win32.win32.x86"
-         os="win32"
-         ws="win32"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070523"
-         fragment="true"
-         unpack="true"/>
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/plugins/org.eclipse.osgi.services_3.1.200.v20070605.jar b/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/plugins/org.eclipse.osgi.services_3.1.200.v20070605.jar
deleted file mode 100644
index f160614..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/extensionlocation/plugins/org.eclipse.osgi.services_3.1.200.v20070605.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/Europa/site.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/Europa/site.xml
deleted file mode 100644
index a9bf017..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/Europa/site.xml
+++ /dev/null
@@ -1,483 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site digestURL="http://download.eclipse.org/releases/europa/" mirrorsURL="http://www.eclipse.org/downloads/download.php?file=/releases/europa/site.xml&amp;format=xml&amp;protocol=http" pack200="true">
-
-    <description url="http://www.eclipse.org/europa/">
-        This Europa Discovery Site contains a number of Eclipse based projects 
-        released simultaneously, June 2007.
-    </description>
-
-    <category-def label="C and C++ Developement" name="C and C++ Developement">
-        <description>Integrated Developement for C and C++ programs.</description>
-    </category-def>
-    <category-def label="Charting and Reporting" name="Charting and Reporting">
-        <description>Business Intelligence and Reporting Tools</description>
-    </category-def>
-    <category-def label="Collaboration Tools" name="Collaboration Tools">
-        <description>
-            Collaboration and integration tools for the Eclipse environment.
-        </description>
-    </category-def>
-    <category-def label="Communications" name="Communications">
-        <description>
-            Real-time communications for Eclipse.  To use applications (e.g. IM, real-time collab, etc.), both the Core API and Application features are required.
-        </description>
-    </category-def>
-    <category-def label="Database Development" name="Database Development">
-        <description>Tools to allow integration with and easy use of Databases.</description>
-    </category-def>
-    <category-def label="Graphical Editors and Frameworks" name="Graphical Editors and Frameworks">
-        <description>A framework to create graphical editors.</description>
-    </category-def>
-    <category-def label="Java Development" name="Java Development">
-        <description>
-            Integrated development tools for Java Development, including plugin developement with Java, and J2EE applications.
-        </description>
-    </category-def>
-    <category-def label="Models and Model Development" name="Models and Model Development">
-        <description>
-            Model creation and manipulation frameworks (e.g. EMF, GMF) and specific models (SDO, JEM, XSD Infoset).
-        </description>
-    </category-def>
-    <category-def label="Remote Access and Device Development" name="Remote Access and Device Development">
-        <description>Tools and Frameworks for accessing and managing remote computers or embedded devices</description>
-    </category-def>
-    <category-def label="SOA Development" name="SOA Development">
-        <description>A platform and tools for developing
-        Service-Oriented Component-based  Applications.</description>
-    </category-def>
-    <category-def label="Testing and Performance" name="Testing and Performance">
-        <description>Tools and Frameworks to improve performance and automatic testing.</description>
-    </category-def>
-    <category-def label="Web and JEE Development" name="Web and JEE Development">
-        <description>A platform and tools for developing XML, WebServices, and JEE Applications.</description>
-    </category-def>
-    <category-def label="Programming Languages" name="Programming Languages">
-        <description>
-            Tools and Frameworks supporting programming languages for the Eclipse environment.
-        </description>
-    </category-def>
-    <category-def label="Other Tools" name="Other Tools">
-        <description>
-            Other tools for the Eclipse environment.
-        </description>
-    </category-def>
-    <category-def label="Enabling Features" name="Enabling Features">
-        <description>
-            These features provide functionality required by one or more projects, but do not provide end-user functionality by
-            themselves.
-        </description>
-    </category-def>
-
-    <feature id="org.eclipse.eclipsemonkey" patch="false" url="features/org.eclipse.eclipsemonkey_1.0.0.200706060947.jar" version="1.0.0.200706060947">
-        <category name="Other Tools"/>
-    </feature>
-    <feature id="org.apache.batik" patch="false" url="features/org.apache.batik_1.6.0.v20061222-1222-0842283444-3444.jar" version="1.6.0.v20061222-1222-0842283444-3444">
-        <category name="Enabling Features"/>
-    </feature>
-
-
-
-    <feature id="org.eclipse.platform" patch="false" url="features/org.eclipse.platform_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz.jar" version="3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.cvs" patch="false" url="features/org.eclipse.cvs_1.0.1.R33x_r20070802-7C79_9_KKG-mDM9e3H5D.jar" version="1.0.1.R33x_r20070802-7C79_9_KKG-mDM9e3H5D">
-        <category name="Collaboration Tools"/>
-    </feature>
-
-
-    <feature id="org.eclipse.equinox" patch="false" url="features/org.eclipse.equinox_3.3.1.R33x_r20070918-7n7LECgEKVsLIM1aGBO4b00.jar" version="3.3.1.R33x_r20070918-7n7LECgEKVsLIM1aGBO4b00">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.birt" patch="false" url="features/org.eclipse.birt_2.2.1.v20070709-7M7M7A3OP2Mz-yAItil64r9z0tw0.jar" version="2.2.1.v20070709-7M7M7A3OP2Mz-yAItil64r9z0tw0">
-        <category name="Charting and Reporting"/>
-    </feature>
-    <feature id="org.eclipse.birt.doc" patch="false" url="features/org.eclipse.birt.doc_2.2.1.v20070709-110-s332Aw31181_2_.jar" version="2.2.1.v20070709-110-s332Aw31181_2_">
-        <category name="Charting and Reporting"/>
-    </feature>
-    
-    <feature id="org.apache.derby.core" url="features/org.apache.derby.core_10.1.2.1.jar" version="10.1.2.1">
-        <category name="Enabling Features"/>
-    </feature>
-
-    <feature id="com.lowagie.itext" url="features/com.lowagie.itext_1.5.2.v20070608-041-w31181821.jar" version="1.5.2.v20070608-041-w31181821">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.apache.commons.codec" url="features/org.apache.commons.codec_1.3.0.v20070907-02--w311817222849.jar" version="1.3.0.v20070907-02--w311817222849">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.mozilla.rhino" url="features/org.mozilla.rhino_1.6.0.v20070406-05--w31181821.jar" version="1.6.0.v20070406-05--w31181821">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.w3c.sac" url="features/org.w3c.sac_1.3.0.v20070406-02--w31181821.jar" version="1.3.0.v20070406-02--w31181821">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.cdt" patch="false" url="features/org.eclipse.cdt_4.0.1.200709241202.jar" version="4.0.1.200709241202">
-        <category name="C and C++ Developement"/>
-    </feature>
-    <feature id="org.eclipse.jdt" patch="false" url="features/org.eclipse.jdt_3.3.1.r331_v20070629-7o7jE72EDlXAbqAcnbmyg1rf8RIL.jar" version="3.3.1.r331_v20070629-7o7jE72EDlXAbqAcnbmyg1rf8RIL">
-        <category name="Java Development"/>
-    </feature>
-    <feature id="org.eclipse.pde" patch="false" url="features/org.eclipse.pde_3.3.2.R33x_r20071022-7N7M4CYWLBCz-yHkMIuHN.jar" version="3.3.2.R33x_r20071022-7N7M4CYWLBCz-yHkMIuHN">
-        <category name="Java Development"/>
-    </feature>
-
-    <feature id="org.eclipse.emf" patch="false" url="features/org.eclipse.emf_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.emf.sdk" patch="false" url="features/org.eclipse.emf.sdk_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.emf.ecore.sdo" patch="false" url="features/org.eclipse.emf.ecore.sdo_2.3.0.v200709252135.jar" version="2.3.0.v200709252135">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.emf.ecore.sdo.sdk" patch="false" url="features/org.eclipse.emf.ecore.sdo.sdk_2.3.0.v200709252135.jar" version="2.3.0.v200709252135">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.xsd" patch="false" url="features/org.eclipse.xsd_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.xsd.sdk" patch="false" url="features/org.eclipse.xsd.sdk_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Models and Model Development"/>
-    </feature>
-
-    <feature id="org.eclipse.emf.common" patch="false" url="features/org.eclipse.emf.common_2.3.0.v200709252135.jar" version="2.3.0.v200709252135">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.common.ui" patch="false" url="features/org.eclipse.emf.common.ui_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.ecore" patch="false" url="features/org.eclipse.emf.ecore_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.ecore.edit" patch="false" url="features/org.eclipse.emf.ecore.edit_2.3.0.v200709252135.jar" version="2.3.0.v200709252135">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.edit" patch="false" url="features/org.eclipse.emf.edit_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.edit.ui" patch="false" url="features/org.eclipse.emf.edit.ui_2.3.1.v200709252135.jar" version="2.3.1.v200709252135">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.xsd.edit" patch="false" url="features/org.eclipse.xsd.edit_2.3.0.v200709252135.jar" version="2.3.0.v200709252135">
-        <category name="Enabling Features"/>
-    </feature>
-
-    <feature id="org.eclipse.emf.emfqtv.all" patch="false" url="features/org.eclipse.emf.emfqtv.all_1.1.1.v200707252036-652_sIRHttoHhmdpTYReXV-2KEZZ.jar" version="1.1.1.v200707252036-652_sIRHttoHhmdpTYReXV-2KEZZ">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.emf.emfqtv.all.sdk" patch="false" url="features/org.eclipse.emf.emfqtv.all.sdk_1.1.1.v200707252036-7A7_3DjfUA5Xin8dz-9aGNVIHYlK.jar" version="1.1.1.v200707252036-7A7_3DjfUA5Xin8dz-9aGNVIHYlK">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.emf.query" patch="false" url="features/org.eclipse.emf.query_1.1.0.v200706071712-10-7w311817182823.jar" version="1.1.0.v200706071712-10-7w311817182823">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.query.ocl" patch="false" url="features/org.eclipse.emf.query.ocl_1.1.0.v200706071712-10-7w311817182823.jar" version="1.1.0.v200706071712-10-7w311817182823">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.validation" patch="false" url="features/org.eclipse.emf.validation_1.1.1.v200708161445-318Z9oA55P5O6O8IC_.jar" version="1.1.1.v200708161445-318Z9oA55P5O6O8IC_">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.validation.ocl" patch="false" url="features/org.eclipse.emf.validation.ocl_1.1.0.v200706071520-10-7w311817182631.jar" version="1.1.0.v200706071520-10-7w311817182631">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.transaction" patch="false" url="features/org.eclipse.emf.transaction_1.1.1.v200708231948-208Z8s733G3G5C5I9D.jar" version="1.1.1.v200708231948-208Z8s733G3G5C5I9D">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.workspace" patch="false" url="features/org.eclipse.emf.workspace_1.1.1.v200707252036-208Z8s733G3F5E6_8B.jar" version="1.1.1.v200707252036-208Z8s733G3F5E6_8B">
-        <category name="Enabling Features"/>
-    </feature>
-    
-    <feature id="org.eclipse.jet" patch="false" url="features/org.eclipse.jet_0.8.1.v20070913-17E19oA55P5V_8.jar" version="0.8.1.v20070913-17E19oA55P5V_8">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.jet.sdk" patch="false" url="features/org.eclipse.jet.sdk_0.8.1.v20070913-07U182TZ7cjWEGkBuJH.jar" version="0.8.1.v20070913-07U182TZ7cjWEGkBuJH">
-        <category name="Models and Model Development"/>
-    </feature>
-
-    <feature id="org.eclipse.gmf.europa" patch="false" url="features/org.eclipse.gmf.europa_2.0.1.v20070809-0000-7X77__EIn-hz0YSfRy8HJNAMTFfk.jar" version="2.0.1.v20070809-0000-7X77__EIn-hz0YSfRy8HJNAMTFfk">
-        <category name="Models and Model Development"/>
-    </feature>
-
-	<feature id="org.eclipse.eodm" patch="false" url="features/org.eclipse.eodm_0.9.1.v200710090302.jar" version="0.9.1.v200710090302">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.eodm.sdk" patch="false" url="features/org.eclipse.eodm.sdk_0.9.1.v200710090302.jar" version="0.9.1.v200710090302">
-        <category name="Models and Model Development"/>
-    </feature>
-	<feature id="org.eclipse.ocl.all" patch="false" url="features/org.eclipse.ocl.all_1.1.1.v200707131415-3227_75ThLBBkBkFRGdQZ.jar" version="1.1.1.v200707131415-3227_75ThLBBkBkFRGdQZ">
-		<category name="Models and Model Development"/>
-	</feature>
-	<feature id="org.eclipse.ocl.all.sdk" patch="false" url="features/org.eclipse.ocl.all.sdk_1.1.1.v200707131415-653_-JAYPRgmMdz-YXRDlgnKonBk.jar" version="1.1.1.v200707131415-653_-JAYPRgmMdz-YXRDlgnKonBk">
-		<category name="Models and Model Development"/>
-	</feature>
-    <feature id="org.eclipse.ocl" patch="false" url="features/org.eclipse.ocl_1.1.1.v200707131415-3209oA55P5N7F8JDH.jar" version="1.1.1.v200707131415-3209oA55P5N7F8JDH">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.ocl.uml" patch="false" url="features/org.eclipse.ocl.uml_1.1.1.v200707131415-1007w311818242526.jar" version="1.1.1.v200707131415-1007w311818242526">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.emf.ocl" patch="false" url="features/org.eclipse.emf.ocl_1.1.1.v200709121956-1007w31181_232_67.jar" version="1.1.1.v200709121956-1007w31181_232_67">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.uml2" patch="false" url="features/org.eclipse.uml2_2.1.1.v200708301222.jar" version="2.1.1.v200708301222">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.uml2.sdk" patch="false" url="features/org.eclipse.uml2.sdk_2.1.1.v200708301222.jar" version="2.1.1.v200708301222">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.uml2tools" patch="false" url="features/org.eclipse.uml2tools_0.7.1.v200710010534.jar" version="0.7.1.v200710010534">
-        <category name="Models and Model Development"/>
-    </feature>
-    <feature id="org.eclipse.uml2tools.sdk" patch="false" url="features/org.eclipse.uml2tools.sdk_0.7.1.v200710010534.jar" version="0.7.1.v200710010534">
-        <category name="Models and Model Development"/>
-    </feature>
-
-    <feature id="org.eclipse.tptp.birt" patch="false" url="features/org.eclipse.tptp.birt_4.4.1.v200706132116-7I7G_B-hthrMpLSZUYptCTz-cV-E.jar" version="4.4.1.v200706132116-7I7G_B-hthrMpLSZUYptCTz-cV-E">
-        <category name="Testing and Performance"/>
-    </feature>
-    <feature id="org.eclipse.tptp.wtp" patch="false" url="features/org.eclipse.tptp.wtp_4.4.1.v200709261752-7748a-CIHlAZ8lIHAlCqJfJeRF.jar" version="4.4.1.v200709261752-7748a-CIHlAZ8lIHAlCqJfJeRF">
-        <category name="Testing and Performance"/>
-    </feature>
-    <feature id="org.eclipse.tptp.monitoring.runtime" patch="false" url="features/org.eclipse.tptp.monitoring.runtime_4.4.1.v200706132116-7U7R_E-wavnIGH7KFhrm5z08Zs8T.jar" version="4.4.1.v200706132116-7U7R_E-wavnIGH7KFhrm5z08Zs8T">
-        <category name="Testing and Performance"/>
-    </feature>
-    <feature id="org.eclipse.tptp.platform.runtime" patch="false" url="features/org.eclipse.tptp.platform.runtime_4.4.1.v200706132116-8I83EIX1JNK7dwt7tHntrj6xnH84.jar" version="4.4.1.v200706132116-8I83EIX1JNK7dwt7tHntrj6xnH84">
-        <category name="Testing and Performance"/>
-    </feature>
-    <feature id="org.eclipse.tptp.test.runtime" patch="false" url="features/org.eclipse.tptp.test.runtime_4.3.101.v200709261752-7E7_Ak-QhKUAY67ta21mO89G_GXO.jar" version="4.3.101.v200709261752-7E7_Ak-QhKUAY67ta21mO89G_GXO">
-        <category name="Testing and Performance"/>
-    </feature>
-    <feature id="org.eclipse.tptp.trace.runtime" patch="false" url="features/org.eclipse.tptp.trace.runtime_4.3.1.v200709261752-7E783-UUENBmM3RiQ4UxVz-eZD8.jar" version="4.3.1.v200709261752-7E783-UUENBmM3RiQ4UxVz-eZD8">
-        <category name="Testing and Performance"/>
-    </feature>
-
-    <feature id="org.eclipse.wst.xml_ui.feature" url="features/org.eclipse.wst.xml_ui.feature_2.0.1.v200709110650-7A1ECGCnbckz0bnr5wCp8KNAjipR.jar" version="2.0.1.v200709110650-7A1ECGCnbckz0bnr5wCp8KNAjipR">
-        <category name="Web and JEE Development"/>
-    </feature>
-    <feature id="org.eclipse.wst" patch="false" url="features/org.eclipse.wst_2.0.1.v200709110510-7C-778k0JWNr93WEIHvplSVojWel.jar" version="2.0.1.v200709110510-7C-778k0JWNr93WEIHvplSVojWel">
-        <category name="Web and JEE Development"/>
-    </feature>
-    <feature id="org.eclipse.jst" patch="false" url="features/org.eclipse.jst_2.0.1.v200709110510-7B-68dDTNImaz0di_Tvks1JyDPVe.jar" version="2.0.1.v200709110510-7B-68dDTNImaz0di_Tvks1JyDPVe">
-        <category name="Web and JEE Development"/>
-        <category name="Java Development"/>
-    </feature>
-    <feature id="org.eclipse.jpt.feature" patch="false" url="features/org.eclipse.jpt.feature_1.0.1.v200709130000-77-5CYQCCz-D7LQCCCD.jar" version="1.0.1.v200709130000-77-5CYQCCz-D7LQCCCD">
-        <category name="Web and JEE Development"/>
-        <category name="Java Development"/>
-    </feature>
-
-    <feature id="org.eclipse.wst.common_ui.feature" url="features/org.eclipse.wst.common_ui.feature_2.0.1.v200709110622-7C5EH2E9RvTVnijrspVz0bgOmfz-.jar" version="2.0.1.v200709110622-7C5EH2E9RvTVnijrspVz0bgOmfz-">
-        <category name="Enabling Features"/>
-    </feature>        
-    
-    
-    <feature id="org.eclipse.gef" patch="false" url="features/org.eclipse.gef_3.3.1.v20070814.jar" version="3.3.1.v20070814">
-        <category name="Graphical Editors and Frameworks"/>
-    </feature>
-    
-    <feature id="org.eclipse.gef.sdk" patch="false" url="features/org.eclipse.gef.sdk_3.3.1.v20070814.jar" version="3.3.1.v20070814">
-        <category name="Graphical Editors and Frameworks"/>
-    </feature>
-    
-    <feature id="org.eclipse.datatools.connectivity.feature" patch="false" url="features/org.eclipse.datatools.connectivity.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.connectivity.oda.designer.feature" patch="false" url="features/org.eclipse.datatools.connectivity.oda.designer.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.connectivity.oda.feature" patch="false" url="features/org.eclipse.datatools.connectivity.oda.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.doc.user" patch="false" url="features/org.eclipse.datatools.doc.user_1.5.1.200710161.jar" version="1.5.1.200710161">
-        <category name="Database Development"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.apache.derby.feature" patch="false" url="features/org.eclipse.datatools.enablement.apache.derby.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.feature" patch="false" url="features/org.eclipse.datatools.enablement.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Database Development"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.hsqldb.feature" patch="false" url="features/org.eclipse.datatools.enablement.hsqldb.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.ibm.feature" patch="false" url="features/org.eclipse.datatools.enablement.ibm.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.jdbc.feature" patch="false" url="features/org.eclipse.datatools.enablement.jdbc.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.jdt.feature" patch="false" url="features/org.eclipse.datatools.enablement.jdt.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.msft.feature" patch="false" url="features/org.eclipse.datatools.enablement.msft.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.mysql.feature" patch="false" url="features/org.eclipse.datatools.enablement.mysql.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.oda.designer.feature" patch="false" url="features/org.eclipse.datatools.enablement.oda.designer.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.oda.feature" patch="false" url="features/org.eclipse.datatools.enablement.oda.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.oracle.feature" patch="false" url="features/org.eclipse.datatools.enablement.oracle.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.postgresql.feature" patch="false" url="features/org.eclipse.datatools.enablement.postgresql.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.enablement.sybase.feature" patch="false" url="features/org.eclipse.datatools.enablement.sybase.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.intro" patch="false" url="features/org.eclipse.datatools.intro_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Database Development"/>
-    </feature>
-    <feature id="org.eclipse.datatools.modelbase.feature" patch="false" url="features/org.eclipse.datatools.modelbase.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.sdk.feature" patch="false" url="features/org.eclipse.datatools.sdk.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Database Development"/>
-    </feature>
-    <feature id="org.eclipse.datatools.sqldevtools.data.feature" patch="false" url="features/org.eclipse.datatools.sqldevtools.data.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.sqldevtools.ddl.feature" patch="false" url="features/org.eclipse.datatools.sqldevtools.ddl.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.sqldevtools.feature" patch="false" url="features/org.eclipse.datatools.sqldevtools.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Database Development"/>
-    </feature>
-    <feature id="org.eclipse.datatools.sqldevtools.parsers.feature" patch="false" url="features/org.eclipse.datatools.sqldevtools.parsers.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    <feature id="org.eclipse.datatools.sqldevtools.results.feature" patch="false" url="features/org.eclipse.datatools.sqldevtools.results.feature_1.5.1.200709261.jar" version="1.5.1.200709261">
-        <category name="Enabling Features"/>
-    </feature>
-    
-    <feature id="org.eclipse.rse" patch="false" url="features/org.eclipse.rse_2.0.2.v20071030-7D-68mJIkR9WAviqV8z0U9vz-C.jar" version="2.0.2.v20071030-7D-68mJIkR9WAviqV8z0U9vz-C">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-    <feature id="org.eclipse.rse.sdk" patch="false" url="features/org.eclipse.rse.sdk_2.0.2.v20071030-7J-79E7ZoHPP5ZoeZ-oUe1z-wJnl.jar" version="2.0.2.v20071030-7J-79E7ZoHPP5ZoeZ-oUe1z-wJnl">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-    <feature id="org.eclipse.rse.remotecdt" patch="false" url="features/org.eclipse.rse.remotecdt_2.0.1.v20070926-4-18s733G3K5H.jar" version="2.0.1.v20070926-4-18s733G3K5H">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-    <feature id="org.eclipse.tm.terminal.sdk" patch="false" url="features/org.eclipse.tm.terminal.sdk_1.0.2.v20071030-7_-7CAvNKwNabWDLhQglhNDDmGSL.jar" version="1.0.2.v20071030-7_-7CAvNKwNabWDLhQglhNDDmGSL">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-    <feature id="org.eclipse.tm.discovery" patch="false" url="features/org.eclipse.tm.discovery_2.0.0.v20070611-7J--E8McIJNJCPr.jar" version="2.0.0.v20070611-7J--E8McIJNJCPr">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-
-    <feature id="org.eclipse.dd.dsf.sdk" patch="false" url="features/org.eclipse.dd.dsf.sdk_0.9.0.v20070615.jar" version="0.9.0.v20070615">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-    <feature id="org.eclipse.dd.dsf.gdb" patch="false" url="features/org.eclipse.dd.dsf.gdb_0.9.0.v20070615.jar" version="0.9.0.v20070615">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-    <feature id="org.eclipse.dd.debug.memory.renderings" patch="false" url="features/org.eclipse.dd.debug.memory.renderings_0.9.0.v20070615.jar" version="0.9.0.v20070615">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-    <feature id="org.eclipse.dd.ipxact" patch="false" url="features/org.eclipse.dd.ipxact_0.2.0.v20070615.jar" version="0.2.0.v20070615">
-        <category name="Remote Access and Device Development"/>
-    </feature>
-
-    <feature id="org.eclipse.ecf.core" patch="false" url="features/org.eclipse.ecf.core_1.2.0.v20071019-1300.jar" version="1.2.0.v20071019-1300">
-        <category name="Communications"/>
-    </feature>
-    <feature id="org.eclipse.ecf.examples" patch="false" url="features/org.eclipse.ecf.examples_1.2.0.v20071019-1300.jar" version="1.2.0.v20071019-1300">
-        <category name="Communications"/>
-    </feature>
-
-    <feature id="org.eclipse.ajdt" patch="false" url="features/org.eclipse.ajdt_1.5.0.200706070619.jar" version="1.5.0.200706070619">
-        <category name="Java Development"/>
-        <category name="Programming Languages"/>
-    </feature>
-    
-    <feature id="org.eclipse.dltk.core" patch="false" url="features/org.eclipse.dltk.core_0.9.1.r09_v20070920-08O2E8AWjpkOySy5VAPB.jar" version="0.9.1.r09_v20070920-08O2E8AWjpkOySy5VAPB">
-        <category name="Enabling Features"/>
-    </feature>
-
-    <feature id="org.eclipse.dltk.ruby" patch="false" url="features/org.eclipse.dltk.ruby_0.9.1.r09_v20070920-07q2BMEkrz-IMCd7gEK.jar" version="0.9.1.r09_v20070920-07q2BMEkrz-IMCd7gEK">
-        <category name="Programming Languages"/>
-    </feature>
-
-    <feature id="org.eclipse.dltk.tcl" patch="false" url="features/org.eclipse.dltk.tcl_0.9.1.r09_v20070920-07z1CQMUYXGgJt3K73.jar" version="0.9.1.r09_v20070920-07z1CQMUYXGgJt3K73">
-        <category name="Programming Languages"/>
-    </feature>
-
-
-	   <feature id="org.eclipse.buckminster.core.feature" url="features/org.eclipse.buckminster.core.feature_0.2.0.r3636.jar" version="0.2.0.r3636">
-	      <category name="Other Tools"/>
-	   </feature>
-	   <feature id="org.eclipse.buckminster.cvs.feature" url="features/org.eclipse.buckminster.cvs.feature_0.2.0.r3383.jar" version="0.2.0.r3383">
-	      <category name="Other Tools"/>
-	   </feature>
-	   <feature id="org.eclipse.buckminster.maven.feature" url="features/org.eclipse.buckminster.maven.feature_0.2.0.r3388.jar" version="0.2.0.r3388">
-	      <category name="Other Tools"/>
-	   </feature>
-	   <feature id="org.eclipse.buckminster.p4.feature" url="features/org.eclipse.buckminster.p4.feature_0.2.0.r3381.jar" version="0.2.0.r3381">
-	      <category name="Other Tools"/>
-	   </feature>
-	   <feature id="org.eclipse.buckminster.pde.feature" url="features/org.eclipse.buckminster.pde.feature_0.2.0.r3636.jar" version="0.2.0.r3636">
-	      <category name="Other Tools"/>
-	   </feature>
-
-        <category-def label="Mylyn" name="Mylyn"/>
-   <feature id="org.eclipse.mylyn_feature" url="features/org.eclipse.mylyn_feature_2.1.0.v20070927-0900.jar" version="2.1.0.v20070927-0900">
-      <category name="Mylyn"/>
-   </feature>
-   <feature id="org.eclipse.mylyn.context_feature" url="features/org.eclipse.mylyn.context_feature_2.1.0.v20070927-0900.jar" version="2.1.0.v20070927-0900">
-      <category name="Mylyn"/>
-   </feature>
-   <feature id="org.eclipse.mylyn.ide_feature" url="features/org.eclipse.mylyn.ide_feature_2.1.0.v20070927-0900.jar" version="2.1.0.v20070927-0900">
-      <category name="Mylyn"/>
-   </feature>
-   <feature id="org.eclipse.mylyn.java_feature" url="features/org.eclipse.mylyn.java_feature_2.1.0.v20070927-0900.jar" version="2.1.0.v20070927-0900">
-      <category name="Mylyn"/>
-   </feature>
-   <feature id="org.eclipse.mylyn.pde_feature" url="features/org.eclipse.mylyn.pde_feature_2.1.0.v20070927-0900.jar" version="2.1.0.v20070927-0900">
-      <category name="Mylyn"/>
-   </feature>
-   <feature id="org.eclipse.mylyn.bugzilla_feature" url="features/org.eclipse.mylyn.bugzilla_feature_2.1.0.v20070927-0900.jar" version="2.1.0.v20070927-0900">
-      <category name="Mylyn"/>
-   </feature>
-   <feature id="org.eclipse.mylyn.trac_feature" url="features/org.eclipse.mylyn.trac_feature_2.1.0.v20070927-0900.jar" version="2.1.0.v20070927-0900">
-      <category name="Mylyn"/>
-   </feature>
-
-   <!-- SOA Tools -->
-   <feature id="org.eclipse.stp.b2j.feature" url="features/org.eclipse.stp.b2j.feature_0.7.0.200710161054-07C-7733G535E53CA.jar" version="0.7.0.200710161054-07C-7733G535E53CA">
-     <category name="SOA Development"/>
-   </feature>
-   
-   <feature id="org.eclipse.stp.bpmn.feature" url="features/org.eclipse.stp.bpmn.feature_0.7.0.200710161054-07Q-7E77YA7AUA7QM.jar" version="0.7.0.200710161054-07Q-7E77YA7AUA7QM">
-     <category name="SOA Development"/>
-   </feature>
-
-   <feature id="org.eclipse.stp.core.feature" url="features/org.eclipse.stp.core.feature_0.7.0.200710161054-07Q-7E77YA7AUA7QM.jar" version="0.7.0.200710161054-07Q-7E77YA7AUA7QM">
-     <category name="SOA Development"/>
-   </feature>
-   
-   <feature id="org.eclipse.stp.servicecreation" url="features/org.eclipse.stp.servicecreation_0.7.0.200710161054-07l-7MAAqGAGkGAeY.jar" version="0.7.0.200710161054-07l-7MAAqGAGkGAeY">
-     <category name="SOA Development"/>
-   </feature>
-   
-   <feature id="org.eclipse.stp.sc.jaxws.feature" url="features/org.eclipse.stp.sc.jaxws.feature_0.7.0.200710161054-07J-7A55P858M85JG.jar" version="0.7.0.200710161054-07J-7A55P858M85JG">
-     <category name="SOA Development"/>
-   </feature>
-   
-   <feature id="org.eclipse.stp.sc.sca.feature" url="features/org.eclipse.stp.sc.sca.feature_0.7.0.200710161054-07J-7A55P858M85JG.jar" version="0.7.0.200710161054-07J-7A55P858M85JG">
-     <category name="SOA Development"/>
-   </feature>
-   
-   <feature id="org.eclipse.stp.soas.feature" url="features/org.eclipse.stp.soas.feature_0.7.0.200710161054-07e-7MAAqGAGkGAeY.jar" version="0.7.0.200710161054-07e-7MAAqGAGkGAeY">
-     <category name="SOA Development"/>
-   </feature>
-   
-   <feature id="org.eclipse.stp.soas.runtime.feature" url="features/org.eclipse.stp.soas.runtime.feature_0.7.0.200710161054-07J-7A55P858M85JG.jar" version="0.7.0.200710161054-07J-7A55P858M85JG">
-     <category name="SOA Development"/>
-   </feature>
-</site>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF
deleted file mode 100644
index 1656b60..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: jNfTwAoM/D29dXQF2y5jNhnCRnc=
-
-Name: feature.properties
-SHA1-Digest: AeJcMJTpQBNlc00T8CYlF7/2Gl4=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties
deleted file mode 100644
index 9159541..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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 CVS Client Resources
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=API documentation and source code zips for Eclipse CVS client.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml
deleted file mode 100644
index b9937fe..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs.source_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature primary="false"  provider-name="%providerName"    label="%featureName"   id="org.eclipse.cvs.source"  version="1.0.0.v20070606-7C79_79EI99g_Y9e">
-	<description >
-		%description
-	</description>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-		<discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.cvs.source" version="1.0.0.v20070606-7C79_79EI99g_Y9e"/>
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF
deleted file mode 100644
index c192bdf..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: HacQ9t3v2nLMCisoGsHFULdyjDg=
-
-Name: feature.properties
-SHA1-Digest: CfVxgAGMGJAnX3DvtIsAPqWtiM4=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties
deleted file mode 100644
index f1c380c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.properties
+++ /dev/null
@@ -1,148 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse CVS Client
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "secondarySiteName" property - label for the update site
-secondaryUpdateSiteName=Europa Discovery Site
-
-
-# "description" property - description of the feature
-description=Eclipse CVS Client. (Binary runtime and user documentation.)
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml
deleted file mode 100644
index d7c4aa4..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.cvs_1.0.0.v20070606-7C79_79EI99g_Y9e/feature.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.cvs"
-      label="%featureName"
-      version="1.0.0.v20070606-7C79_79EI99g_Y9e"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.platform" version="3.3.0" match="compatible"/>
-   </requires>
-
-<plugin
-         id="org.eclipse.cvs"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.core"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070607"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.ssh"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.I20061208"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.ssh2"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.I20070604"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.cvs.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070607"
-         unpack="false"/>   
-
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF
deleted file mode 100644
index bc6d67c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: AXF/1J+iSme4RKHA38MoEv+kqRQ=
-
-Name: feature.properties
-SHA1-Digest: yG0wfR7PWf4zKrRioc1dIsXY92U=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties
deleted file mode 100644
index db9de92..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=API documentation and source code zips for Eclipse Java development tools.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml
deleted file mode 100644
index a7222d2..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt.source_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml
+++ /dev/null
@@ -1,17 +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.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR">
-	<description >
-		%description
-	</description>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-		<discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-	</url>
-	<plugin    fragment="false" unpack="false"  download-size="0" install-size="0" id="org.eclipse.jdt.doc.isv" version="3.3.0.v20070613"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.junit.source" version="3.8.2.v200706111738"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.jdt.source" version="3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR"/>
-	<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.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR"/>
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF
deleted file mode 100644
index e59d2c7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: nXlHWli0KZJRZizcYFLHWw/+jeA=
-
-Name: feature.properties
-SHA1-Digest: MdMRGhhyadZIpIZkxilXSqzI98w=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties
deleted file mode 100644
index 53f4366..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Eclipse Java development tools. (Binary runtime and user documentation.)
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml
deleted file mode 100644
index a49d23b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.jdt_3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR/feature.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jdt"
-      label="%featureName"
-      version="3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR"
-      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.3"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.platform" version="3.3.0" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jdt"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070607-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ant.ui"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070511"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.apt.core"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070607-1200"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.apt.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070430-1135"
-         unpack="false"/>
-         
-  <plugin
-         id="org.eclipse.jdt.apt.pluggable.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070529-2100"         
-         unpack="false"/>         
-
-   <plugin
-         id="org.eclipse.jdt.compiler.apt"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070510-2000"
-         fragment="true"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.jdt.compiler.tool"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v_771"
-         fragment="true"
-         unpack="false"/> 
-
-   <plugin
-         id="org.eclipse.jdt.core"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v_771"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.core.manipulation"
-         download-size="0"
-         install-size="0"
-         version="1.1.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.debug.ui"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070531-1800"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.debug"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070530a"/>
-
-   <plugin
-         id="org.eclipse.jdt.junit"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.junit.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.junit4.runtime"
-         download-size="0"
-         install-size="0"
-         version="1.0.100.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.launching"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070510"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070607-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.junit"
-         download-size="0"
-         install-size="0"
-         version="3.8.2.v200706111738"/>
-
-   <plugin
-         id="org.junit4"
-         download-size="0"
-         install-size="0"
-         version="4.3.1"/>
-
-   <plugin
-         id="org.eclipse.jdt.doc.user"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070608-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.launching.macosx"
-         os="macosx"
-         ws="carbon"
-         download-size="0"
-         install-size="0"
-         version="3.1.100.v20061211"
-         unpack="false"/>
-
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF
deleted file mode 100644
index 6ec5143..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: 3KKAoILB34QVFP8/VfC1N1OmGC8=
-
-Name: feature.properties
-SHA1-Digest: H9A6CtSbU7bFLlFgIF54D20Yj0I=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: IydL3lnQQQF8OVmO7CZ6uea8T0k=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties
deleted file mode 100644
index 89826a8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# 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=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Eclipse plug-in development environment, including documentation and source code zips.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml
deleted file mode 100644
index f1fd323..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde.source_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml
+++ /dev/null
@@ -1,17 +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.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC">
-	<description >
-		%description
-	</description>
-	<copyright >
-		%copyright
-	</copyright>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-		<discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.pde.source" version="3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC"/>
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF
deleted file mode 100644
index 7c6de8d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: gdScGRP5X6iOSj5R7T4jyW4qINc=
-
-Name: feature.properties
-SHA1-Digest: WDvaOoc0vATm/ntJgm3qdUUzvm0=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties
deleted file mode 100644
index 62b4565..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse 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=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Eclipse plug-in development environment.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml
deleted file mode 100644
index f629090..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.pde_3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC/feature.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.pde"
-      label="%featureName"
-      version="3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.jdt" version="3.0.0" match="compatible"/>
-      <import feature="org.eclipse.platform" version="3.0.0" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.pde"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070608-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.pde.build"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070612"/>
-
-   <plugin
-         id="org.eclipse.pde.core"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070608-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.pde.junit.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070608-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.pde.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070608-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.pde.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070608-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.pde.doc.user"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070614-0800"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.pde.ui.templates"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070608-1300"
-         unpack="false"/>
-
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF
deleted file mode 100644
index 47dc2e6..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: C31+vKjmfB39AnTSeXsBXJrQ3e4=
-
-Name: feature.properties
-SHA1-Digest: u/t85joISmy0pWpWcJquHr9VsyU=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties
deleted file mode 100644
index 210ebe9..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse 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=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Common OS-independent API documentation and source code zips for the Eclipse Platform.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml
deleted file mode 100644
index b9cb4db..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform.source_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml
+++ /dev/null
@@ -1,44 +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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G">
-	<description >
-		%description
-	</description>
-	<copyright >
-		%copyright
-	</copyright>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-		<discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-		<discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/releases/europa"/>
-	</url>
-	<includes id="org.eclipse.rcp.source" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin    fragment="false" unpack="false"  download-size="0" install-size="0" id="org.eclipse.platform.doc.isv" version="3.3.0.v20070621"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="javax.servlet.source" version="2.4.0.v200706111738"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="javax.servlet.jsp.source" version="2.0.0.v200706191603"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.apache.jasper.source" version="5.5.17.v200706111724"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.apache.commons.el.source" version="1.0.0.v200706111724"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.apache.commons.logging.source" version="1.0.4.v200706111724"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.apache.ant.source" version="1.7.0.v200706080842"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.apache.lucene.source" version="1.9.1.v200706111724"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.apache.lucene.analysis.source" version="1.9.1.v200706181610"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.mortbay.jetty.source" version="5.1.11.v200706111724"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.platform.source" version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<plugin ws="motif"  os="hpux" fragment="true" arch="ia64_32" download-size="0" install-size="0" id="org.eclipse.platform.source.hpux.motif.ia64_32" version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<plugin ws="wpf"  os="win32" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.platform.source.win32.wpf.x86" version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="x86_64" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.gtk.x86_64" version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="ppc64" download-size="0" install-size="0" id="org.eclipse.platform.source.linux.gtk.ppc64" version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<plugin ws="gtk"  os="solaris" fragment="true" arch="sparc" download-size="0" install-size="0" id="org.eclipse.platform.source.solaris.gtk.sparc" version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<plugin ws="win32"  os="wce_ppc" fragment="true" arch="arm" download-size="0" install-size="0" id="org.eclipse.platform.source.wce_ppc.win32.arm" version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-	<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.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF
deleted file mode 100644
index 1d895af..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: bLMaytG2itbdKJsTtWtK+WGhl0Y=
-
-Name: feature.properties
-SHA1-Digest: kEWi4G+dRRHUR8dqFbGh93hzlxo=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties
deleted file mode 100644
index 5ebf403..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.properties
+++ /dev/null
@@ -1,148 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Platform
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "secondarySiteName" property - label for the update site
-secondaryUpdateSiteName=Europa Discovery Site
-
-
-# "description" property - description of the feature
-description=Common OS-independent base of the Eclipse platform. (Binary runtime and user documentation.)
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml
deleted file mode 100644
index e4974b8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.platform_3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G/feature.xml
+++ /dev/null
@@ -1,623 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.platform"
-      label="%featureName"
-      version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-      <discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/releases/europa"/>
-   </url>
-
-   <plugin
-         id="com.jcraft.jsch"
-         download-size="0"
-         install-size="0"
-         version="0.1.31"
-         unpack="false"/>
-
-   <includes
-         id="org.eclipse.rcp"
-         version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-         
-   <plugin
-         id="javax.servlet"
-         download-size="0"
-         install-size="0"
-         version="2.4.0.v200706111738"
-         unpack="false"/>
-
-   <plugin
-         id="javax.servlet.jsp"
-         download-size="0"
-         install-size="0"
-         version="2.0.0.v200706191603"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.jasper"
-         download-size="0"
-         install-size="0"
-         version="5.5.17.v200706111724"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.el"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v200706111724"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.logging"
-         download-size="0"
-         install-size="0"
-         version="1.0.4.v200706111724"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.ant"
-         download-size="0"
-         install-size="0"
-         version="1.7.0.v200706080842"/>
-
-   <plugin
-         id="org.apache.lucene"
-         download-size="0"
-         install-size="0"
-         version="1.9.1.v200706111724"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.lucene.analysis"
-         download-size="0"
-         install-size="0"
-         version="1.9.1.v200706181610"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ant.core"
-         download-size="0"
-         install-size="0"
-         version="3.1.200.v20070522"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.compare"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070606"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.boot"
-         download-size="0"
-         install-size="0"
-         version="3.1.100.v20060603"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filebuffers"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem"
-         download-size="0"
-         install-size="0"
-         version="1.1.0.v20070606"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.net"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070531"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.resources"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070604"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.resources.compatibility"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070502"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.runtime.compatibility"
-         download-size="0"
-         install-size="0"
-         version="3.1.200.v20070502"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.osgi.services"
-         download-size="0"
-         install-size="0"
-         version="3.1.200.v20070605"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.osgi.util"
-         download-size="0"
-         install-size="0"
-         version="3.1.200.v20070605"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.variables"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.v20070426"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.debug.core"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070607-1800"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.debug.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070607-1800"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.http.registry"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070608"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.http.jetty"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070607"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.http.servlet"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.jsp.jasper"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070607"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.jsp.jasper.registry"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070607"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.help.webapp"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070607"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.help.base"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.help.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070530"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.help.appserver"
-         download-size="0"
-         install-size="0"
-         version="3.1.200.v20070510"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ltk.core.refactoring"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ltk.ui.refactoring"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.platform"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070613"/>
-
-   <plugin
-         id="org.eclipse.platform.doc.user"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070615-1300"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.search"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.core"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070607"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070607"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.tomcat"
-         download-size="0"
-         install-size="0"
-         version="4.1.230.v20070531"/>
-
-   <plugin
-         id="org.eclipse.text"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jface.text"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jsch.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070426"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jsch.ui"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070525"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.console"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.v20070530"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.presentations.r21"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.I20070605-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.intro"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070530"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.intro.universal"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070530A"/>
-
-   <plugin
-         id="org.eclipse.ui.cheatsheets"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070507"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.browser"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070524A"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.navigator"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070605-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.navigator.resources"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070605-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.net"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070516"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.workbench.texteditor"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.views"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.I20070319-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.editors"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.forms"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070511"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.externaltools"
-         download-size="0"
-         install-size="0"
-         version="3.1.200.v20070416"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.ide"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070620"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.ide.application"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070530-0100"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.win32"
-         ws="win32"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.I20070319-0010"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.update.core"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070615"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.update.scheduler"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070615"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.update.ui"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070615"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.workbench.compatibility"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.I20070319-0010"
-         fragment="true"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.hpux.ia64_32"
-         os="hpux"
-         arch="ia64_32"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20060603"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.hpux.PA_RISC"
-         os="hpux"
-         arch="PA_RISC"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20060603"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.linux.ppc"
-         os="linux"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="1.0.100.v20070430"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.linux.x86"
-         os="linux"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.1.0.v20070416"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.linux.x86_64"
-         os="linux"
-         arch="x86_64"
-         download-size="0"
-         install-size="0"
-         version="1.0.100.v20070510"
-         fragment="true"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.core.filesystem.solaris.sparc"
-         os="solaris"
-         arch="sparc"
-         download-size="0"
-         install-size="0"
-         version="1.0.100.v20070425"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.macosx"
-         os="macosx"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20060603"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.qnx.x86"
-         os="qnx"
-         ws="photon"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20060603"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem.win32.x86"
-         os="win32"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.1.0.v20070510"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.resources.win32"
-         os="win32"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070226"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.update.core.linux"
-         os="linux"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.v20070615"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.update.core.win32"
-         os="win32"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070615"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.views.properties.tabbed"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070605-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.runtime.compatibility.registry"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070316"
-         fragment="true"/>
-
-   <plugin
-         id="org.mortbay.jetty"
-         download-size="0"
-         install-size="0"
-         version="5.1.11.v200706111724"
-         unpack="false"/>  
-
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
deleted file mode 100644
index afcfc44..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: dMnOhvxphWIcTVxNLsFdJ54Hjfw=
-
-Name: feature.properties
-SHA1-Digest: KQG7LxAsbSfFR0LTrTuU3xt9jN4=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
deleted file mode 100644
index effbb22..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse RCP 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=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Source code zips for the Eclipse RCP.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
deleted file mode 100644
index a569d5a..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp.source_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
+++ /dev/null
@@ -1,31 +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.rcp.source"  version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG">
-	<description >
-		%description
-	</description>
-	<copyright >
-		%copyright
-	</copyright>
-	<license url="%licenseURL">
-		%license
-	</license>
-	<url>
-		<update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-	</url>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="com.ibm.icu.source" version="3.6.1.v20070417"/>
-	<plugin    fragment="false"  download-size="0" install-size="0" id="org.eclipse.rcp.source" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="motif"  os="hpux" fragment="true" arch="ia64_32" download-size="0" install-size="0" id="org.eclipse.rcp.source.hpux.motif.ia64_32" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="ia64" download-size="0" install-size="0" id="org.eclipse.rcp.source.linux.gtk.ia64" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="photon"  os="qnx" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.rcp.source.qnx.photon.x86" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="ppc" download-size="0" install-size="0" id="org.eclipse.rcp.source.linux.gtk.ppc" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="motif"  os="hpux" fragment="true" arch="PA_RISC" download-size="0" install-size="0" id="org.eclipse.rcp.source.hpux.motif.PA_RISC" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="wpf"  os="win32" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.rcp.source.win32.wpf.x86" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="x86_64" download-size="0" install-size="0" id="org.eclipse.rcp.source.linux.gtk.x86_64" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="gtk"  os="solaris" fragment="true" arch="sparc" download-size="0" install-size="0" id="org.eclipse.rcp.source.solaris.gtk.sparc" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="carbon"  os="macosx" fragment="true" arch="ppc" download-size="0" install-size="0" id="org.eclipse.rcp.source.macosx.carbon.ppc" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="gtk"  os="linux" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.rcp.source.linux.gtk.x86" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="motif"  os="aix" fragment="true" arch="ppc" download-size="0" install-size="0" id="org.eclipse.rcp.source.aix.motif.ppc" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="win32"  os="win32" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.rcp.source.win32.win32.x86" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="motif"  os="solaris" fragment="true" arch="sparc" download-size="0" install-size="0" id="org.eclipse.rcp.source.solaris.motif.sparc" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-	<plugin ws="motif"  os="linux" fragment="true" arch="x86" download-size="0" install-size="0" id="org.eclipse.rcp.source.linux.motif.x86" version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"/>
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
deleted file mode 100644
index eda0417..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: YVpG2yV+fCKpxjgnc2P7scwrcNU=
-
-Name: feature.properties
-SHA1-Digest: UzM1MZnaZBzb5JHPQZE7wbydJWA=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
deleted file mode 100644
index 203a722..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse RCP
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Rich Client Platform
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
deleted file mode 100644
index 11ef188..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.rcp_3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG/feature.xml
+++ /dev/null
@@ -1,509 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.rcp"
-      label="%featureName"
-      version="3.3.0.v20070607-8y8eE8NEbsN3X_fjWS8HPNG"
-      provider-name="%providerName"
-      plugin="org.eclipse.rcp"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-   </url>
-
-   <plugin
-         id="com.ibm.icu"
-         download-size="0"
-         install-size="0"
-         version="3.6.1.v20070417"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.commands"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070605-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.databinding"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070606-0010"
-         unpack="false"/>
-         
-  <plugin
-         id="org.eclipse.core.databinding.beans"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.I20070606-0010"
-         unpack="false"/>         
-
-   <plugin
-         id="org.eclipse.core.jobs"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070423"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.expressions"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.runtime"
-         download-size="0"
-         install-size="0"
-         version="3.3.100.v20070530"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.core.runtime.compatibility.auth"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070502"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.osgi"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070530"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.help"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070524"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jface"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jface.databinding"
-         download-size="0"
-         install-size="0"
-         version="1.1.0.I20070606-0010"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070614-0800"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.workbench"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.I20070608-1100"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.ui.carbon"
-         os="macosx"
-         ws="carbon"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.I20070605-0010"
-         fragment="true"
-         unpack="false"/>     
-         
-   <plugin
-         id="org.eclipse.update.configurator"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070615"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.win32.win32.x86"
-         os="win32"
-         ws="win32"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-         
-    <plugin
-         id="org.eclipse.swt.wpf.win32.x86"
-         os="win32"
-         ws="wpf"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.x86"
-         os="linux"
-         ws="gtk"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-         
-  <plugin
-         id="org.eclipse.swt.gtk.linux.s390"
-         os="linux"
-         ws="gtk"
-         arch="s390"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-         
-  <plugin
-         id="org.eclipse.swt.gtk.linux.s390x"
-         os="linux"
-         ws="gtk"
-         arch="s390x"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>         
-         
-	 <plugin
-         id="org.eclipse.swt.gtk.solaris.sparc"
-         os="solaris"
-         ws="gtk"
-         arch="sparc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-         
-         <plugin
-         id="org.eclipse.swt.gtk.solaris.x86"
-         os="solaris"
-         ws="gtk"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.ppc"
-         os="linux"
-         ws="gtk"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.x86_64"
-         os="linux"
-         ws="gtk"
-         arch="x86_64"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.carbon.macosx"
-         os="macosx"
-         ws="carbon"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.aix.ppc"
-         os="aix"
-         ws="motif"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.hpux.PA_RISC"
-         os="hpux"
-         ws="motif"
-         arch="PA_RISC"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3345a"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.linux.x86"
-         os="linux"
-         ws="motif"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.gtk.linux.ia64"
-         os="linux"
-         ws="gtk"
-         arch="ia64"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.HEAD"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.solaris.sparc"
-         os="solaris"
-         ws="motif"
-         arch="sparc"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.photon.qnx.x86"
-         os="qnx"
-         ws="photon"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v3346"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.swt.motif.hpux.ia64_32"
-         os="hpux"
-         ws="motif"
-         arch="ia64_32"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.HEAD"
-         fragment="true"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.rcp"
-         download-size="0"
-         install-size="0"
-         version="3.2.0.v20070612"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.contenttype"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070319"
-         unpack="false"/>           
-
-	<plugin
-         id="org.eclipse.equinox.app"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.common"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070426"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.preferences"
-         download-size="0"
-         install-size="0"
-         version="3.2.100.v20070522"
-         unpack="false"/>        
-         
-
-   <plugin
-         id="org.eclipse.equinox.registry"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070522"
-         unpack="false"/>
-
-	<plugin
-         id="org.eclipse.equinox.launcher"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         unpack="false"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.solaris.sparc"
-         os="solaris"
-         ws="gtk"
-         arch="sparc"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.carbon.macosx"
-         os="macosx"
-         ws="carbon"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.ppc"
-         os="linux"
-         ws="gtk"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>         
-         
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.x86"
-         os="linux"
-         ws="gtk"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-         
-    <plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.s390"
-         os="linux"
-         ws="gtk"
-         arch="s390"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="true"/>
-         
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.s390x"
-         os="linux"
-         ws="gtk"
-         arch="s390x"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="true"/>
-         
-   <plugin
-         id="org.eclipse.equinox.launcher.motif.linux.x86"
-         os="linux"
-         ws="motif"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070524"
-         fragment="true"
-         unpack="true"/> 
-           
-	<plugin
-         id="org.eclipse.equinox.launcher.gtk.linux.x86_64"
-         os="linux"
-         ws="gtk"
-         arch="x86_64"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070606"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.motif.aix.ppc"
-         os="aix"
-         ws="motif"
-         arch="ppc"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070524"
-         fragment="true"
-         unpack="true"/>
-	<plugin
-         id="org.eclipse.equinox.launcher.motif.hpux.PA_RISC"
-         os="hpux"
-         ws="motif"
-         arch="PA_RISC"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070219"
-         fragment="true"
-         unpack="true"/>         
-                  
-         <plugin
-         id="org.eclipse.equinox.launcher.wpf.win32.x86"
-         os="win32"
-         ws="wpf"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070523"
-         fragment="true"
-         unpack="true"/>
-         
-	<plugin
-         id="org.eclipse.equinox.launcher.win32.win32.x86"
-         os="win32"
-         ws="win32"
-         arch="x86"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.v20070523"
-         fragment="true"
-         unpack="true"/>
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/META-INF/MANIFEST.MF
deleted file mode 100644
index 60298d0..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Created-By: 1.4.2 (IBM Corporation)
-Ant-Version: Apache Ant 1.7.0
-
-Name: feature.xml
-SHA1-Digest: yfpclAxxbeokoXDe3q4t80WiNZg=
-
-Name: feature.properties
-SHA1-Digest: +TwjcsSBAHZ9hST7XaeMtRWImGM=
-
-Name: license.html
-SHA1-Digest: YXfaVLayE8gaE0VWfKzUHsp6IyM=
-
-Name: META-INF/eclipse.inf
-SHA1-Digest: KyT9FF7C7t86NoBoa2kZT3ZJBfw=
-
-Name: eclipse_update_120.jpg
-SHA1-Digest: xstAqMgs/a5AsQXQZSdDQ79veOA=
-
-Name: epl-v10.html
-SHA1-Digest: pTOyybcpEe+Y8lkSVUtarMleXqE=
-
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.properties b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.properties
deleted file mode 100644
index 8d9a17d..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.properties
+++ /dev/null
@@ -1,147 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Project SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "secondarySiteName" property - label for the secondary update site
-secondaryUpdateSiteName=Europa Discovery Site
-
-# "description" property - description of the feature
-description=SDK for Eclipse.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.xml b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.xml
deleted file mode 100644
index 0b59abb..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/features/org.eclipse.sdk_3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO/feature.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.sdk"
-      label="%featureName"
-      version="3.3.0.v20070607-7M7J-BIolz-OcxWxvWAPSfLPqevO"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-   
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>
-      <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/>  
-      <discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/releases/europa"/>  
-   </url>
-
-   <includes
-         id="org.eclipse.platform"
-         version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-
-   <includes
-         id="org.eclipse.platform.source"
-         version="3.3.0.v20070612-_19UEkLEzwsdF9jSqQ-G"/>
-         
-   <includes
-         id="org.eclipse.cvs"
-         version="1.0.0.v20070606-7C79_79EI99g_Y9e"/>
-
-   <includes
-         id="org.eclipse.cvs.source"
-         version="1.0.0.v20070606-7C79_79EI99g_Y9e"/>
-
-   <includes
-         id="org.eclipse.jdt"
-         version="3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR"/>
-
-   <includes
-         id="org.eclipse.jdt.source"
-         version="3.3.0.v20070606-0010-7o7jCHEFpPoqQYvnXqejeR"/>
-
-   <includes
-         id="org.eclipse.pde"
-         version="3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC"/>
-
-   <includes
-         id="org.eclipse.pde.source"
-         version="3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC"/>
-
-   <plugin
-         id="org.eclipse.sdk"
-         download-size="0"
-         install-size="0"
-         version="3.3.0.v20070613"/>
-
-</feature>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/readme.txt b/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/readme.txt
deleted file mode 100644
index f293dc3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/generator/eclipse3.3/readme.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains data for automated testing of the generator. Specifically,
-this directory contains the feature data from version 3.3.0 of the Eclipse SDK.
-The corresponding generator test ensures that correct metadata is generated
-for these features.
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/jarprocessor.jar.pack.gz b/bundles/org.eclipse.equinox.p2.tests/testData/jarprocessor.jar.pack.gz
deleted file mode 100644
index f2df489..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/jarprocessor.jar.pack.gz
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
deleted file mode 100644
index 9f52ad3..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/1_6/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2-3.3.jbdiff b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2-3.3.jbdiff
deleted file mode 100644
index deac744..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2-3.3.jbdiff
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2.exe b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2.exe
deleted file mode 100644
index 7826d1e..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.2.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.3.exe b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.3.exe
deleted file mode 100644
index c5cd8f0..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/eclipse-3.3.exe
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar
deleted file mode 100644
index 0c809ee..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
deleted file mode 100644
index b586d3c..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.equinox.app_1.0.100.v20071015.jar.pack.gz
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff
deleted file mode 100644
index b920d53..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0-3.3.0.jbdiff
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar
deleted file mode 100644
index 41ee47b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.2.0.v20060605-1400.njar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar
deleted file mode 100644
index 9deec2f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/org.eclipse.jdt_3.3.0.v20070607-1300.njar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1-2.jar b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1-2.jar
deleted file mode 100644
index 71a546b..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1-2.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1.jar b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1.jar
deleted file mode 100644
index 49e7f90..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.1.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.2.jar b/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.2.jar
deleted file mode 100644
index 3515b0f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/optimizers/testdata_1.0.0.2.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/aaa_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/aaa_1.0.0.jar
deleted file mode 100644
index 56fc4a8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/aaa_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.linux_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.linux_1.0.0.jar
deleted file mode 100644
index eb571ec..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.linux_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.win32_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.win32_1.0.0.jar
deleted file mode 100644
index 0d13cdc..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb.win32_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb_1.0.0.jar
deleted file mode 100644
index 97cfbc5..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/bbb_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_1.0.0.jar
deleted file mode 100644
index 328d9ad..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_2.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_2.0.0.jar
deleted file mode 100644
index 9213cb8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/profileSynchronizer/ccc_2.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectory/plugin.xml b/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectory/plugin.xml
deleted file mode 100644
index 1ef8fd8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectory/plugin.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin id="oldBundleDirectory" name="test plug-in" version="1.0.0">
-
-   <runtime>
-      <library name=".">
-         <export name="*"/>
-      </library>
-   </runtime>
-</plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/META-INF/MANIFEST.MF
deleted file mode 100644
index fbd4c43..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/plugin.xml b/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/plugin.xml
deleted file mode 100644
index 54a7fa7..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleDirectoryTwo/plugin.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin id="oldBundleDirectoryTwo" name="test plug-in" version="1.0.0">
-
-   <runtime>
-      <library name=".">
-         <export name="*"/>
-      </library>
-   </runtime>
-</plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJAR.jar b/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJAR.jar
deleted file mode 100644
index 26f01e8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJAR.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJARTwo.jar b/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJARTwo.jar
deleted file mode 100644
index 2cb2d74..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/repositoryListener/oldBundleJARTwo.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/sar/alien.zip b/bundles/org.eclipse.equinox.p2.tests/testData/sar/alien.zip
deleted file mode 100644
index 9872214..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/sar/alien.zip
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar b/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar
deleted file mode 100644
index d674aef..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar b/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar
deleted file mode 100644
index 0abfe36..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.2.0.v20060605-1400.sar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar b/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar
deleted file mode 100644
index 9deec2f..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar b/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar
deleted file mode 100644
index 842bb71..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/sar/org.eclipse.jdt_3.3.0.v20070607-1300.sar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/sar/test.zip b/bundles/org.eclipse.equinox.p2.tests/testData/sar/test.zip
deleted file mode 100644
index dde8b84..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/sar/test.zip
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml
deleted file mode 100644
index ac2ec19..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/badSiteXML/site.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site
-</site>
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jar
deleted file mode 100644
index 2b4a959..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/a.f_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jar
deleted file mode 100644
index 6294094..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/features/b.f_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jar
deleted file mode 100644
index f7b85ef..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/a_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jar b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jar
deleted file mode 100644
index bf33f47..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/plugins/b_1.0.0.jar
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml b/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml
deleted file mode 100644
index 22a40a8..0000000
--- a/bundles/org.eclipse.equinox.p2.tests/testData/updatesite/site/site.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/a.f_1.0.0.jar" id="a.f" version="1.0.0">
-      <category name="a"/>
-   </feature>
-   <feature url="features/b.f_1.0.0.jar" id="b.f" version="1.0.0">
-      <category name="b"/>
-   </feature>
-   <category-def name="a" label="Category One">
-      <description>
-         This is the first category.
-      </description>
-   </category-def>
-   <category-def name="b" label="Category Two">
-      <description>
-         This is the second category.
-      </description>
-   </category-def>
-</site>
diff --git a/bundles/org.eclipse.equinox.p2.tools/.classpath b/bundles/org.eclipse.equinox.p2.tools/.classpath
deleted file mode 100644
index 6f3b481..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.tools/.cvsignore b/bundles/org.eclipse.equinox.p2.tools/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tools/.project b/bundles/org.eclipse.equinox.p2.tools/.project
deleted file mode 100644
index abbf609..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.tools</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 46aa817..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,343 +0,0 @@
-#Fri Feb 22 11:11:17 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8d299d8..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:58:57 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7dc0477..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jul 30 14:52:29 EDT 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.tools/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tools/META-INF/MANIFEST.MF
deleted file mode 100644
index f6b6e5a..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.tools;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: javax.servlet;version="2.4.0",
- javax.servlet.http;version="2.4.0",
- org.eclipse.equinox.app;version="1.0.0",
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.updatechecker,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.updatechecker,
- org.osgi.framework;version="1.4.0",
- org.osgi.service.http;version="1.2.0"
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.internal.p2.tools
-Bundle-Activator: org.eclipse.equinox.internal.p2.tools.Activator
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.equinox.p2.tools/about.html b/bundles/org.eclipse.equinox.p2.tools/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.tools/build.properties b/bundles/org.eclipse.equinox.p2.tools/build.properties
deleted file mode 100644
index 4bbd9bd..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.tools/p2 tools - file server.launch b/bundles/org.eclipse.equinox.p2.tools/p2 tools - file server.launch
deleted file mode 100644
index 27ecbf1..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/p2 tools - file server.launch
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="c:\prov\p2\ProvAdminUI"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<stringAttribute key="execEnvironment" value="J2SE-1.5"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.tools.fileserverApplication&#13;&#10;-resource /artifact file:c:/prov/p2/servers"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.data.area=c:/prov/p2/agentData/&#13;&#10;-Dosgi.noShutdown=true"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="target_bundles" value="javax.servlet@default:default,org.apache.commons.logging@default:default,org.eclipse.core.jobs@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@default:default,org.eclipse.equinox.http.jetty@default:true,org.eclipse.equinox.http.registry@default:true,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default,org.mortbay.jetty@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useNamedJRE" value="false"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:true,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.exemplarysetup@default:true,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.tools@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.simpleconfigurator@default:true,org.eclipse.equinox.simpleconfigurator.manipulator@default:default"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.tools/plugin.properties b/bundles/org.eclipse.equinox.p2.tools/plugin.properties
deleted file mode 100644
index a8fbbc7..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox p2 Tools (Incubation)
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.tools/plugin.xml b/bundles/org.eclipse.equinox.p2.tools/plugin.xml
deleted file mode 100644
index 69c74f6..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/plugin.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<plugin>
-   <extension id="fileserverApplication"  point="org.eclipse.core.runtime.applications">
-      <application cardinality="1" thread="main" visible="true">
-         <run class="org.eclipse.equinox.internal.p2.tools.FileServerApplication"/>
-      </application>
-   </extension>
-	<extension id="application" point="org.eclipse.core.runtime.applications"> 
-      <application> 
-         <run class="org.eclipse.equinox.internal.p2.tools.UpdateCheckerApplication"/> 
-      </application> 
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/Activator.java b/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/Activator.java
deleted file mode 100644
index 5423e68..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/Activator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.tools;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	private static BundleContext bundleContext;
-
-	public static BundleContext getContext() {
-		return bundleContext;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		bundleContext = context;
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		bundleContext = null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java b/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java
deleted file mode 100644
index 2683a91..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.tools;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.osgi.service.http.*;
-
-public class FileServerApplication implements IApplication {
-	private Map resources = new HashMap(10);
-
-	private static class FileSystemContext implements HttpContext {
-		private String base;
-
-		public FileSystemContext(String base) {
-			this.base = base;
-		}
-
-		public String getMimeType(String name) {
-			return null;
-		}
-
-		public URL getResource(String name) {
-			try {
-				return new URL(base + name);
-			} catch (MalformedURLException e) {
-				return null;
-			}
-		}
-
-		public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) throws IOException {
-			return true;
-		}
-	}
-
-	public Object start(IApplicationContext context) throws Exception {
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args"));
-		registerResources(resources);
-		return null;
-	}
-
-	private void registerResources(Map list) {
-		HttpService http = (HttpService) ServiceHelper.getService(Activator.getContext(), HttpService.class.getName());
-		for (Iterator i = resources.keySet().iterator(); i.hasNext();) {
-			String key = (String) i.next();
-			String value = (String) resources.get(key);
-			try {
-				http.registerResources(key, "/", new FileSystemContext(value));
-			} catch (NamespaceException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-	}
-
-	public void stop() {
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			// check for args without parameters (i.e., a flag arg)
-			//			if (args[i].equals("-raw"))
-			//				raw = true;
-
-			// 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 param so continue.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase("-resource"))
-				resources.put(arg, args[++i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java b/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java
deleted file mode 100644
index 986d253..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.tools;
-
-//import java.net.MalformedURLException;
-//import java.net.URL;
-//import java.util.*;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-
-public class MetadataCompareApplication implements IApplication {
-
-	//	private String source;
-	//	private String target;
-	//	private boolean compare = false;
-	//	private boolean list = false;
-	//	private String type = "meta";
-
-	public Object start(IApplicationContext context) throws Exception {
-		//		initializeFromArguments((String[]) context.getArguments().get("application.args"));
-		//
-		//		if (compare)
-		//			compareMetadataRepositories(new URL(source), new URL(target));
-		//		if (list) {
-		//			list(source);
-		//			list(target);
-		//		}
-		return IApplication.EXIT_OK;
-	}
-
-	//	private void list(String sourceLocation) throws ProvisionException {
-	//		if (sourceLocation == null)
-	//			return;
-	//		IQueryable source = null;
-	//		if (type.equals("meta")) {
-	//			URL location;
-	//			try {
-	//				location = new URL(sourceLocation);
-	//			} catch (MalformedURLException e) {
-	//				return;
-	//			}
-	//			ProvisioningHelper.addMetadataRepository(location);
-	//			source = ProvisioningHelper.getMetadataRepository(location);
-	//			if (source == null)
-	//				return;
-	//		} else if (type.equals("profile")) {
-	//			source = ProvisioningHelper.getProfile(sourceLocation);
-	//			if (source == null)
-	//				return;
-	//		}
-	//		IInstallableUnit[] sourceIUs = source.query(null, null, null, false, null);
-	//		sourceIUs = sort(sourceIUs, true);
-	//		for (int i = 0; i < sourceIUs.length; i++) {
-	//			System.out.print(sourceIUs[i]);
-	//			System.out.println(sourceIUs[i].isFragment() ? " (fragment)" : "");
-	//		}
-	//		System.out.println("Total: " + sourceIUs.length);
-	//	}
-	//
-	//	private void compareMetadataRepositories(URL source, URL target) throws ProvisionException {
-	//		ProvisioningHelper.addMetadataRepository(source);
-	//		IMetadataRepository sourceRepo = ProvisioningHelper.getMetadataRepository(source);
-	//		if (sourceRepo == null)
-	//			return;
-	//		ProvisioningHelper.addMetadataRepository(target);
-	//		IMetadataRepository targetRepo = ProvisioningHelper.getMetadataRepository(target);
-	//		if (targetRepo == null)
-	//			return;
-	//
-	//		System.out.println("\n" + source.toExternalForm() + " -> " + target.toExternalForm());
-	//		compare(sourceRepo, targetRepo);
-	//
-	//		System.out.println("\n" + target.toExternalForm() + " -> " + source.toExternalForm());
-	//		compare(targetRepo, sourceRepo);
-	//	}
-	//
-	//	private void compare(IQueryable sourceRepo, IQueryable targetRepo) {
-	//		IQueryable[] target = new IQueryable[] {targetRepo};
-	//		IInstallableUnit[] ius = sourceRepo.query(null, null, null, false, null);
-	//		ius = sort(ius, true);
-	//		for (int i = 0; i < ius.length; i++) {
-	//			IInstallableUnit iu = ius[i];
-	//			Iterator result = Query.getIterator(target, iu.getId(), new VersionRange(iu.getVersion(), true, iu.getVersion(), true), null, false);
-	//			if (!result.hasNext())
-	//				System.out.println(iu);
-	//			else {
-	//				String comparison = compare(iu, (IInstallableUnit) result.next());
-	//				if (comparison.length() > 0)
-	//					System.out.println(iu + comparison);
-	//			}
-	//		}
-	//	}
-	//
-	//	private boolean compare(Object a, Object b) {
-	//		if (a == null)
-	//			return b == null;
-	//		return a.equals(b);
-	//	}
-	//
-	//	private boolean compare(Object[] a, Object b[]) {
-	//		if (a == null)
-	//			return b == null;
-	//		return Arrays.equals(a, b);
-	//	}
-	//
-	//	private String compare(IInstallableUnit iu, IInstallableUnit next) {
-	//		String result = "";
-	//		if (!iu.equals(next))
-	//			result += " iu";
-	//		if (!compare(iu.getApplicabilityFilter(), next.getApplicabilityFilter()))
-	//			result += " applicabilityFilter";
-	//		if (!compare(iu.getArtifacts(), next.getArtifacts()))
-	//			result += " artifactLocators";
-	//		if (!compare(iu.getProvidedCapabilities(), next.getProvidedCapabilities()))
-	//			result += " providedCapabilities";
-	//		if (!compareRequires(iu.getRequiredCapabilities(), next.getRequiredCapabilities()))
-	//			result += " requiredCapabilities";
-	//		if (!compare(iu.getTouchpointType(), next.getTouchpointType()))
-	//			result += " touchpointType";
-	//
-	//		if (iu.isFragment()) {
-	//			if (((InstallableUnitFragment) iu).getHostId() == null || ((InstallableUnitFragment) iu).getHostVersionRange() == null)
-	//				return result;
-	//			if (!((InstallableUnitFragment) iu).getHostId().equals(((InstallableUnitFragment) next).getHostId()))
-	//				result += " hostid";
-	//			if (!((InstallableUnitFragment) iu).getHostVersionRange().equals(((InstallableUnitFragment) next).getHostVersionRange()))
-	//				result += " hostversionRange";
-	//		}
-	//		return result;
-	//	}
-	//
-	//	private boolean compareRequires(RequiredCapability[] a, RequiredCapability[] b) {
-	//		if (a == null)
-	//			return b == null;
-	//		if (a.length != b.length)
-	//			return false;
-	//		if (a == b)
-	//			return true;
-	//		for (int i = 0; i < a.length; i++)
-	//			if (findCapability(a[i], b) == null)
-	//				return false;
-	//		return true;
-	//	}
-	//
-	//	private RequiredCapability findCapability(RequiredCapability target, RequiredCapability[] b) {
-	//		for (int i = 0; i < b.length; i++) {
-	//			RequiredCapability capability = b[i];
-	//			if (target.equals(capability))
-	//				return capability;
-	//		}
-	//		return null;
-	//	}
-	//
-	//	private IInstallableUnit[] sort(IInstallableUnit[] ius, boolean clone) {
-	//		Comparator comparator = new Comparator() {
-	//			public int compare(Object source, Object target) {
-	//				IInstallableUnit sourceIU = (IInstallableUnit) source;
-	//				IInstallableUnit targetIU = (IInstallableUnit) target;
-	//				int id = sourceIU.getId().compareTo(targetIU.getId());
-	//				if (id != 0)
-	//					return id;
-	//				int version = sourceIU.getVersion().compareTo(targetIU.getVersion());
-	//				if (version != 0)
-	//					return version;
-	//				return 0;
-	//			}
-	//		};
-	//		IInstallableUnit[] result = ius;
-	//		if (clone) {
-	//			result = new InstallableUnit[ius.length];
-	//			System.arraycopy(ius, 0, result, 0, ius.length);
-	//		}
-	//		Arrays.sort(result, comparator);
-	//		return result;
-	//	}
-	//
-	//	public void initializeFromArguments(String[] args) throws Exception {
-	//		if (args == null)
-	//			return;
-	//		for (int i = 0; i < args.length; i++) {
-	//			// check for args without parameters (i.e., a flag arg)
-	//
-	//			//			if (args[i].equalsIgnoreCase("-sort"))
-	//			//				sort = true;
-	//
-	//			if (args[i].equalsIgnoreCase("-meta"))
-	//				type = "meta";
-	//
-	//			if (args[i].equalsIgnoreCase("-compare"))
-	//				compare = true;
-	//
-	//			if (args[i].equalsIgnoreCase("-profile"))
-	//				type = "profile";
-	//
-	//			if (args[i].equalsIgnoreCase("-list"))
-	//				list = true;
-	//
-	//			// 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];
-	//
-	//			if (args[i - 1].equalsIgnoreCase("-source"))
-	//				source = arg;
-	//			if (args[i - 1].equalsIgnoreCase("-target"))
-	//				target = arg;
-	//		}
-	//	}
-	//
-	public void stop() {
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/UpdateCheckerApplication.java b/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/UpdateCheckerApplication.java
deleted file mode 100644
index 17fa88c..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/UpdateCheckerApplication.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.tools;
-
-import java.util.Map;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.updatechecker.*;
-
-/**
- * A little app that demonstrates how to register for automatic update checks on
- * a profile.
- * 
- *  -profile profileID (specifies the profile id to check for updates)
- *  -delay long (specifies a long which is the initial delay before beginning polling)
- *  -poll long (specifies a long which is the frequency of the update poll)
- *  -debug, -trace can be used to show you what's going on.
- *  
- *   This checker simply writes to system.out when updates are available and lists the
- *   IU's that have updates available.
- */
-public class UpdateCheckerApplication implements IApplication {
-
-	private static String ARG_PROFILE = "-profile"; //$NON-NLS-1$
-	private static String ARG_POLL = "-poll"; //$NON-NLS-1$
-	private static String ARG_DELAY = "-delay"; //$NON-NLS-1$
-	private static String ARG_DEBUG = "-debug"; //$NON-NLS-1$
-	private static String ARG_TRACE = "-trace"; //$NON-NLS-1$
-	String profileId;
-	long delay = IUpdateChecker.ONE_TIME_CHECK;
-	long poll = IUpdateChecker.ONE_TIME_CHECK;
-	IUpdateChecker checker;
-	IUpdateListener listener = new IUpdateListener() {
-
-		public void updatesAvailable(UpdateEvent event) {
-			System.out.println("Updates available for " + profileId); //$NON-NLS-1$
-			IInstallableUnit[] ius = event.getIUs();
-			for (int i = 0; i < ius.length; i++)
-				System.out.println(ius[i].toString());
-		}
-
-	};
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) throws Exception {
-		checker = (IUpdateChecker) ServiceHelper.getService(Activator.getContext(), IUpdateChecker.SERVICE_NAME);
-		if (checker == null)
-			throw new RuntimeException("Update checker could not be loaded."); //$NON-NLS-1$
-
-		Map args = context.getArguments();
-		initializeFromArguments((String[]) args.get("application.args")); //$NON-NLS-1$
-		if (profileId == null) {
-			System.out.println("Must specify a profile id using -profile arg"); //$NON-NLS-1$
-		} else {
-			checker.addUpdateCheck(profileId, InstallableUnitQuery.ANY, delay, poll, listener);
-		}
-
-		return null;
-	}
-
-	public void stop() {
-		checker.removeUpdateCheck(listener);
-	}
-
-	public void initializeFromArguments(String[] args) throws Exception {
-		if (args == null)
-			return;
-		for (int i = 0; i < args.length; i++) {
-			if (args[i].equals(ARG_DEBUG))
-				UpdateChecker.DEBUG = true;
-			else if (args[i].equals(ARG_TRACE))
-				UpdateChecker.TRACE = true;
-
-			// The remaining args have parameters.  If we are at the
-			// last argument, or if the next one starts with a '-',
-			// then there won't be a parm, so skip this one.
-			if (i == args.length - 1 || args[i + 1].startsWith("-")) //$NON-NLS-1$
-				continue;
-
-			String arg = args[++i];
-
-			if (args[i - 1].equalsIgnoreCase(ARG_PROFILE))
-				profileId = arg;
-			else if (args[i - 1].equalsIgnoreCase(ARG_POLL))
-				poll = getLong(ARG_POLL, arg, IUpdateChecker.ONE_TIME_CHECK);
-			else if (args[i - 1].equalsIgnoreCase(ARG_DELAY))
-				delay = getLong(ARG_DELAY, arg, IUpdateChecker.ONE_TIME_CHECK);
-
-		}
-	}
-
-	long getLong(String argName, String value, long defaultValue) {
-		if (value != null)
-			try {
-				return Long.parseLong(value);
-			} catch (Exception e) {
-				System.out.println("The value for " + argName + "(" + value + ") is not a long."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-		return defaultValue;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.tools/updatechecker app.launch b/bundles/org.eclipse.equinox.p2.tools/updatechecker app.launch
deleted file mode 100644
index 5058fea..0000000
--- a/bundles/org.eclipse.equinox.p2.tools/updatechecker app.launch
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/updatechecker app"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.updatechecker.app.application&#13;&#10;-metadataRepository file:c:/prov/p2/servers/metadataRepository/ &#13;&#10;-artifactRepository file:c:/prov/p2/servers/artifactRepository/ &#13;&#10;-profile Test&#13;&#10;-delay 5000&#13;&#10;-poll 10000&#13;&#10;-trace"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.data.area=c:/prov/p2/agentData"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="target_bundles" value="org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:default,org.eclipse.core.runtime.compatibility.registry@default:default,org.eclipse.equinox.app@default:true,org.eclipse.equinox.common@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi@:,org.eclipse.osgi.services@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<stringAttribute key="vminstall" value="jre1.5.0_11"/>
-<stringAttribute key="workspace_bundles" value="com.thoughtworks.xstream@default:default,org.eclipse.ecf@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:true,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.download@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.exemplarysetup@default:true,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.updatechecker@5:true,org.eclipse.equinox.p2.updatechecker.app@default:default,org.eclipse.equinox.simpleconfigurator@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:true"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.classpath b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.project b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.project
deleted file mode 100644
index 36758f2..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.touchpoint.eclipse</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2daa5df..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,330 +0,0 @@
-#Fri Feb 22 11:24:21 EST 2008
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8bc0190..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:59:03 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF
deleted file mode 100644
index 2837163..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,39 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.touchpoint.eclipse;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Import-Package: javax.xml.parsers,
- org.eclipse.core.runtime;common=split,
- org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.engine,
- org.eclipse.equinox.internal.p2.garbagecollector,
- org.eclipse.equinox.internal.provisional.frameworkadmin,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.generator;resolution:=optional,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository,
- org.eclipse.equinox.internal.simpleconfigurator.manipulator,
- org.eclipse.osgi.service.datalocation;version="1.0.0",
- org.eclipse.osgi.service.environment;version="1.0.0",
- org.eclipse.osgi.service.resolver;version="1.2.0";resolution:=optional,
- org.eclipse.osgi.util;version="1.1.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.util.tracker;version="1.3.2",
- org.w3c.dom,
- org.xml.sax
-Export-Package: org.eclipse.equinox.internal.p2.touchpoint.eclipse;x-friends:="org.eclipse.equinox.p2.reconciler.dropins",
- org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;x-internal:=true,
- org.eclipse.equinox.internal.p2.update;x-friends:="org.eclipse.equinox.p2.reconciler.dropins"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.equinox.internal.p2.touchpoint.eclipse.Activator
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/about.html b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/build.properties b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/build.properties
deleted file mode 100644
index 4bbd9bd..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.properties b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.properties
deleted file mode 100644
index 15dc984..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Eclipse Touchpoint (Incubation)
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml
deleted file mode 100644
index 7719695..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<plugin>
-	<extension point="org.eclipse.equinox.p2.engine.touchpoints" id="eclipse" name="Eclipse Touchpoint">
-		<touchpoint 
-			type="org.eclipse.equinox.p2.osgi" 
-			class="org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint"
-			version="1.0.0"/>
-	</extension>
-	<extension
-			point="org.eclipse.equinox.p2.garbagecollector.marksetproviders"
-			id="EclipseTouchpoint">
-			<run 
-				class="org.eclipse.equinox.internal.p2.touchpoint.eclipse.MarkSetProvider"/>
-	</extension>
-	</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Activator.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Activator.java
deleted file mode 100644
index 77f5529..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Activator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.touchpoint.eclipse"; //$NON-NLS-1$
-	private static BundleContext context = null;
-
-	public void start(BundleContext ctx) throws Exception {
-		Activator.context = ctx;
-	}
-
-	public void stop(BundleContext ctx) throws Exception {
-		Activator.context = null;
-	}
-
-	public static BundleContext getContext() {
-		return Activator.context;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/AggregatedBundleRepository.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/AggregatedBundleRepository.java
deleted file mode 100644
index 8618595..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/AggregatedBundleRepository.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.File;
-import java.io.OutputStream;
-import java.util.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository.AbstractArtifactRepository;
-
-public class AggregatedBundleRepository extends AbstractArtifactRepository implements IFileArtifactRepository {
-
-	private static final String REPOSITORY_TYPE = AggregatedBundleRepository.class.getName();
-	private final Collection bundleRepositories;
-
-	public AggregatedBundleRepository(Collection bundleRepositories) {
-		super(REPOSITORY_TYPE, REPOSITORY_TYPE, "1.0", null, null, null);
-		this.bundleRepositories = bundleRepositories;
-	}
-
-	public File getArtifactFile(IArtifactKey key) {
-		for (Iterator it = bundleRepositories.iterator(); it.hasNext();) {
-			IFileArtifactRepository repository = (IFileArtifactRepository) it.next();
-			File artifactFile = repository.getArtifactFile(key);
-			if (artifactFile != null)
-				return artifactFile;
-		}
-		return null;
-	}
-
-	public File getArtifactFile(IArtifactDescriptor descriptor) {
-		for (Iterator it = bundleRepositories.iterator(); it.hasNext();) {
-			IFileArtifactRepository repository = (IFileArtifactRepository) it.next();
-			File artifactFile = repository.getArtifactFile(descriptor);
-			if (artifactFile != null)
-				return artifactFile;
-		}
-		return null;
-	}
-
-	public boolean contains(IArtifactDescriptor descriptor) {
-		for (Iterator it = bundleRepositories.iterator(); it.hasNext();) {
-			IFileArtifactRepository repository = (IFileArtifactRepository) it.next();
-			if (repository.contains(descriptor))
-				return true;
-		}
-		return false;
-	}
-
-	public boolean contains(IArtifactKey key) {
-		for (Iterator it = bundleRepositories.iterator(); it.hasNext();) {
-			IFileArtifactRepository repository = (IFileArtifactRepository) it.next();
-			if (repository.contains(key))
-				return true;
-		}
-		return false;
-	}
-
-	public IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key) {
-		Set artifactDescriptors = new HashSet();
-		for (Iterator it = bundleRepositories.iterator(); it.hasNext();) {
-			IFileArtifactRepository repository = (IFileArtifactRepository) it.next();
-			IArtifactDescriptor[] descriptors = repository.getArtifactDescriptors(key);
-			if (descriptors != null)
-				artifactDescriptors.addAll(Arrays.asList(descriptors));
-		}
-		return (IArtifactDescriptor[]) artifactDescriptors.toArray(new IArtifactDescriptor[artifactDescriptors.size()]);
-	}
-
-	public IArtifactKey[] getArtifactKeys() {
-		Set artifactKeys = new HashSet();
-		for (Iterator it = bundleRepositories.iterator(); it.hasNext();) {
-			IFileArtifactRepository repository = (IFileArtifactRepository) it.next();
-			IArtifactKey[] keys = repository.getArtifactKeys();
-			if (keys != null)
-				artifactKeys.addAll(Arrays.asList(keys));
-		}
-		return (IArtifactKey[]) artifactKeys.toArray(new IArtifactKey[artifactKeys.size()]);
-	}
-
-	public IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor) {
-		throw new UnsupportedOperationException("Repository does not support artifact retrieval");
-	}
-
-	public IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor) {
-		throw new UnsupportedOperationException("Repository does not support artifact retrieval");
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
deleted file mode 100644
index 63bd157..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.ActionFactory;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.FrameworkAdminRuntimeException;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Version;
-
-public class EclipseTouchpoint extends Touchpoint {
-
-	private static final TouchpointType TOUCHPOINT_TYPE = MetadataFactory.createTouchpointType("org.eclipse.equinox.p2.osgi", new Version("1.0")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	// TODO: phase id constants should be defined elsewhere.
-	public static final String INSTALL_PHASE_ID = "install"; //$NON-NLS-1$
-	public static final String UNINSTALL_PHASE_ID = "uninstall"; //$NON-NLS-1$
-
-	public static final String PROFILE_PROP_LAUNCHER_NAME = "eclipse.touchpoint.launcherName"; //$NON-NLS-1$
-	public static final String PARM_MANIPULATOR = "manipulator"; //$NON-NLS-1$
-	public static final String PARM_PLATFORM_CONFIGURATION = "platformConfiguration"; //$NON-NLS-1$
-	public static final String PARM_SOURCE_BUNDLES = "sourceBundles"; //$NON-NLS-1$
-	public static final String PARM_IU = "iu"; //$NON-NLS-1$
-	public static final String PARM_INSTALL_FOLDER = "installFolder"; //$NON-NLS-1$
-
-	public IStatus completePhase(IProgressMonitor monitor, IProfile profile, String phaseId, Map touchpointParameters) {
-		Manipulator manipulator = (Manipulator) touchpointParameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		try {
-			manipulator.save(false);
-		} catch (RuntimeException e) {
-			return Util.createError(Messages.error_saving_manipulator, e);
-		} catch (IOException e) {
-			return Util.createError(Messages.error_saving_manipulator, e);
-		}
-
-		if (INSTALL_PHASE_ID.equals(phaseId) || UNINSTALL_PHASE_ID.equals(phaseId)) {
-			PlatformConfigurationWrapper configuration = (PlatformConfigurationWrapper) touchpointParameters.get(EclipseTouchpoint.PARM_PLATFORM_CONFIGURATION);
-			try {
-				configuration.save();
-			} catch (ProvisionException pe) {
-				return Util.createError(Messages.error_saving_platform_configuration, pe);
-			}
-		}
-
-		SourceManipulator m = (SourceManipulator) touchpointParameters.get(EclipseTouchpoint.PARM_SOURCE_BUNDLES);
-		try {
-			m.save();
-		} catch (IOException e) {
-			return Util.createError(Messages.error_saving_source_bundles_list, e);
-		}
-
-		return Status.OK_STATUS;
-	}
-
-	private URL getConfigurationURL(IProfile profile) throws CoreException {
-		File configDir = Util.getConfigurationFolder(profile);
-		URL configURL = null;
-		try {
-			configURL = configDir.toURI().toURL();
-		} catch (IllegalArgumentException e) {
-			throw new CoreException(Util.createError("Configuration directory is not absolute.", e)); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			throw new CoreException(Util.createError("No URL protocol handler.", e)); //$NON-NLS-1$
-		}
-		return configURL;
-	}
-
-	public ProvisioningAction getAction(String actionId) {
-		return ActionFactory.create(actionId);
-	}
-
-	public TouchpointType getTouchpointType() {
-		//TODO this data probably needs to come from the XML
-		return TOUCHPOINT_TYPE;
-	}
-
-	public IStatus initializePhase(IProgressMonitor monitor, IProfile profile, String phaseId, Map touchpointParameters) {
-		touchpointParameters.put(PARM_INSTALL_FOLDER, Util.getInstallFolder(profile));
-		LazyManipulator manipulator = new LazyManipulator(profile);
-		touchpointParameters.put(PARM_MANIPULATOR, manipulator);
-		touchpointParameters.put(PARM_SOURCE_BUNDLES, new SourceManipulator(profile));
-		try {
-			URL configURL = getConfigurationURL(profile);
-			URL poolURL = Util.getBundlePoolLocation(profile);
-			touchpointParameters.put(PARM_PLATFORM_CONFIGURATION, new PlatformConfigurationWrapper(configURL, poolURL, manipulator));
-		} catch (CoreException ce) {
-			touchpointParameters.put(PARM_PLATFORM_CONFIGURATION, new PlatformConfigurationWrapper(null, null, null));
-			return Util.createError(Messages.error_constructing_platform_configuration_url, ce);
-		}
-		return null;
-	}
-
-	public IStatus initializeOperand(IProfile profile, String phaseId, InstallableUnitOperand operand, Map parameters) {
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(PARM_IU);
-		if (iu != null && Boolean.valueOf(iu.getProperty(IInstallableUnit.PROP_PARTIAL_IU)).booleanValue()) {
-			IInstallableUnit preparedIU = prepareIU(iu, profile);
-			if (preparedIU == null)
-				return Util.createError(NLS.bind(Messages.failed_prepareIU, iu));
-
-			parameters.put(PARM_IU, preparedIU);
-		}
-		return Status.OK_STATUS;
-	}
-
-	private IInstallableUnit prepareIU(IInstallableUnit iu, IProfile profile) {
-
-		Class c = null;
-		try {
-			c = Class.forName("org.eclipse.equinox.internal.provisional.p2.metadata.generator.MetadataGeneratorHelper"); //$NON-NLS-1$
-			if (c != null)
-				c = Class.forName("org.eclipse.osgi.service.resolver.PlatformAdmin"); //$NON-NLS-1$
-		} catch (ClassNotFoundException e) {
-			throw new IllegalStateException(NLS.bind(Messages.generator_not_available, e.getMessage()));
-		}
-
-		if (c != null) {
-			IArtifactKey[] artifacts = iu.getArtifacts();
-			if (artifacts == null || artifacts.length == 0)
-				return iu;
-
-			IArtifactKey artifactKey = artifacts[0];
-			if (artifactKey == null)
-				return iu;
-
-			File bundleFile = Util.getArtifactFile(artifactKey, profile);
-			if (bundleFile == null) {
-				LogHelper.log(Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey.toString())));
-				return null;
-			}
-			return MetadataGeneratorUtils.createBundleIU(artifactKey, bundleFile);
-		}
-
-		// should not occur
-		throw new IllegalStateException("Unexpected state: prepareIU"); //$NON-NLS-1$
-	}
-
-	public static IStatus loadManipulator(Manipulator manipulator) {
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e) {
-			return Util.createError(Messages.error_loading_manipulator);
-		} catch (FrameworkAdminRuntimeException e) {
-			return Util.createError(Messages.error_loading_manipulator);
-		} catch (IOException e) {
-			return Util.createError(Messages.error_loading_manipulator);
-		}
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java
deleted file mode 100644
index fd9e895..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/LazyManipulator.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.IOException;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.osgi.framework.*;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class LazyManipulator implements Manipulator {
-
-	private final static String FILTER_OBJECTCLASS = "(" + Constants.OBJECTCLASS + '=' + FrameworkAdmin.class.getName() + ')'; //$NON-NLS-1$
-	private final static String filterFwName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_FW_NAME + "=Equinox)"; //$NON-NLS-1$ //$NON-NLS-2$
-	private final static String filterLauncherName = "(" + FrameworkAdmin.SERVICE_PROP_KEY_LAUNCHER_NAME + "=Eclipse.exe)"; //$NON-NLS-1$ //$NON-NLS-2$
-	private final static String filterFwAdmin = "(&" + FILTER_OBJECTCLASS + filterFwName + filterLauncherName + ')'; //$NON-NLS-1$;
-
-	private Manipulator manipulator;
-	private final IProfile profile;
-
-	public LazyManipulator(IProfile profile) {
-		this.profile = profile;
-	}
-
-	private void loadDelegate() {
-		if (manipulator != null)
-			return;
-
-		manipulator = getFrameworkManipulator();
-		if (manipulator == null)
-			throw new IllegalStateException("Could not acquire the framework manipulator service."); //$NON-NLS-1$
-
-		LauncherData launcherData = manipulator.getLauncherData();
-		launcherData.setFwConfigLocation(Util.getConfigurationFolder(profile));
-		launcherData.setLauncher(Util.getLauncherPath(profile));
-		try {
-			manipulator.load();
-		} catch (IllegalStateException e2) {
-			// TODO if fwJar is not included, this exception will be thrown. But ignore it. 
-			//				e2.printStackTrace();
-		} catch (FrameworkAdminRuntimeException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		} catch (IOException e2) {
-			// TODO Auto-generated catch block
-			e2.printStackTrace();
-		}
-		//TODO These values should be inserted by a configuration unit (bug 204124)
-		manipulator.getConfigData().setFwDependentProp("eclipse.p2.profile", profile.getProfileId()); //$NON-NLS-1$
-		manipulator.getConfigData().setFwDependentProp("eclipse.p2.data.area", Util.computeRelativeAgentLocation(profile)); //$NON-NLS-1$
-	}
-
-	public static FrameworkAdmin getFrameworkAdmin() {
-		ServiceTracker fwAdminTracker = null;
-		try {
-			Filter filter = Activator.getContext().createFilter(filterFwAdmin);
-			fwAdminTracker = new ServiceTracker(Activator.getContext(), filter, null);
-			fwAdminTracker.open();
-			FrameworkAdmin fwAdmin = (FrameworkAdmin) fwAdminTracker.getService();
-			return fwAdmin;
-		} catch (InvalidSyntaxException e) {
-			//Can't happen we are writing the filter ourselves
-			return null;
-		} finally {
-			if (fwAdminTracker != null)
-				fwAdminTracker.close();
-		}
-	}
-
-	private Manipulator getFrameworkManipulator() {
-		FrameworkAdmin fwAdmin = getFrameworkAdmin();
-		if (fwAdmin != null)
-			return fwAdmin.getManipulator();
-		return null;
-	}
-
-	public void save(boolean backup) throws IOException, FrameworkAdminRuntimeException {
-		if (manipulator != null)
-			manipulator.save(backup);
-	}
-
-	// DELEGATE METHODS
-
-	public BundlesState getBundlesState() throws FrameworkAdminRuntimeException {
-		loadDelegate();
-		return manipulator.getBundlesState();
-	}
-
-	public ConfigData getConfigData() throws FrameworkAdminRuntimeException {
-		loadDelegate();
-		return manipulator.getConfigData();
-	}
-
-	public BundleInfo[] getExpectedState() throws IllegalStateException, IOException, FrameworkAdminRuntimeException {
-		loadDelegate();
-		return manipulator.getExpectedState();
-	}
-
-	public LauncherData getLauncherData() throws FrameworkAdminRuntimeException {
-		loadDelegate();
-		return manipulator.getLauncherData();
-	}
-
-	public long getTimeStamp() {
-		loadDelegate();
-		return manipulator.getTimeStamp();
-	}
-
-	public void initialize() {
-		loadDelegate();
-		manipulator.initialize();
-	}
-
-	public void load() throws IllegalStateException, FrameworkAdminRuntimeException {
-		loadDelegate();
-	}
-
-	public void setConfigData(ConfigData configData) {
-		loadDelegate();
-		manipulator.setConfigData(configData);
-	}
-
-	public void setLauncherData(LauncherData launcherData) {
-		loadDelegate();
-		manipulator.setLauncherData(launcherData);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MarkSetProvider.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MarkSetProvider.java
deleted file mode 100644
index 7d203db..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MarkSetProvider.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.File;
-import java.util.*;
-import org.eclipse.equinox.internal.p2.garbagecollector.IMarkSetProvider;
-import org.eclipse.equinox.internal.p2.garbagecollector.MarkSet;
-import org.eclipse.equinox.internal.p2.update.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-/**
- * IMarkSetProvider implementation for the EclipseTouchPoint.
- */
-public class MarkSetProvider implements IMarkSetProvider {
-	private static final String ARTIFACT_CLASSIFIER_OSGI_BUNDLE = "osgi.bundle"; //$NON-NLS-1$
-	private static final String ARTIFACT_CLASSIFIER_FEATURE = "org.eclipse.update.feature"; //$NON-NLS-1$
-
-	private Collection artifactKeyList = null;
-
-	public MarkSet[] getMarkSets(IProfile inProfile) {
-		artifactKeyList = new HashSet();
-		IArtifactRepository repositoryToGC = Util.getBundlePoolRepository(inProfile);
-		addArtifactKeys(inProfile);
-		IProfile currentProfile = getCurrentProfile();
-		if (currentProfile != null && inProfile.getProfileId().equals(currentProfile.getProfileId())) {
-			addRunningBundles(repositoryToGC);
-			addRunningFeatures(inProfile, repositoryToGC);
-		}
-		return new MarkSet[] {new MarkSet((IArtifactKey[]) artifactKeyList.toArray(new IArtifactKey[0]), repositoryToGC)};
-	}
-
-	private void addRunningFeatures(IProfile profile, IArtifactRepository repositoryToGC) {
-		try {
-			List allFeatures = getAllFeatures(Configuration.load(new File(Util.getConfigurationFolder(profile), "org.eclipse.update/platform.xml"), null)); //$NON-NLS-1$
-			for (Iterator iterator = allFeatures.iterator(); iterator.hasNext();) {
-				Feature f = (Feature) iterator.next();
-				IArtifactKey match = searchArtifact(f.getId(), new Version(f.getVersion()), ARTIFACT_CLASSIFIER_FEATURE, repositoryToGC);
-				if (match != null)
-					artifactKeyList.add(match);
-			}
-		} catch (ProvisionException e) {
-			//Ignore the exception
-		}
-	}
-
-	private List getAllFeatures(Configuration cfg) {
-		if (cfg == null)
-			return Collections.EMPTY_LIST;
-		List sites = cfg.getSites();
-		ArrayList result = new ArrayList();
-		for (Iterator iterator = sites.iterator(); iterator.hasNext();) {
-			Site object = (Site) iterator.next();
-			Feature[] features = object.getFeatures();
-			for (int i = 0; i < features.length; i++) {
-				result.add(features[i]);
-			}
-		}
-		return result;
-	}
-
-	private IProfile getCurrentProfile() {
-		ServiceReference sr = Activator.getContext().getServiceReference(IProfileRegistry.class.getName());
-		if (sr == null)
-			return null;
-		IProfileRegistry pr = (IProfileRegistry) Activator.getContext().getService(sr);
-		if (pr == null)
-			return null;
-		Activator.getContext().ungetService(sr);
-		return pr.getProfile(IProfileRegistry.SELF);
-	}
-
-	private void addArtifactKeys(IProfile aProfile) {
-		Iterator installableUnits = aProfile.query(InstallableUnitQuery.ANY, new Collector(), null).iterator();
-		while (installableUnits.hasNext()) {
-			IArtifactKey[] keys = ((IInstallableUnit) installableUnits.next()).getArtifacts();
-			if (keys == null)
-				continue;
-			for (int i = 0; i < keys.length; i++) {
-				artifactKeyList.add(keys[i]);
-			}
-		}
-	}
-
-	public IArtifactRepository getRepository(IProfile aProfile) {
-		return Util.getBundlePoolRepository(aProfile);
-	}
-
-	private void addRunningBundles(IArtifactRepository repo) {
-		artifactKeyList.addAll(findCorrespondinArtifacts(new WhatIsRunning().getBundlesBeingRun(), repo));
-	}
-
-	private IArtifactKey searchArtifact(String searchedId, Version searchedVersion, String classifier, IArtifactRepository repo) {
-		//This is somewhat cheating since normally we should get the artifact key from the IUs that were representing the running system (e.g. we could get that info from the rollback repo)
-		IArtifactKey[] keys = repo.getArtifactKeys();
-		for (int i = 0; i < keys.length; i++) {
-			if (keys[i].getClassifier().equals(classifier)) {
-				String id = keys[i].getId();
-				Version v = keys[i].getVersion();
-				if (id != null && id.equals(searchedId) && v != null && v.equals(searchedVersion))
-					return keys[i];
-			}
-		}
-		return null;
-	}
-
-	//Find for each bundle info a corresponding artifact in repo 
-	private ArrayList findCorrespondinArtifacts(BundleInfo[] bis, IArtifactRepository repo) {
-		ArrayList toRetain = new ArrayList();
-		for (int i = 0; i < bis.length; i++) {
-			IArtifactKey match = searchArtifact(bis[i].getSymbolicName(), new Version(bis[i].getVersion()), ARTIFACT_CLASSIFIER_OSGI_BUNDLE, repo);
-			if (match != null)
-				toRetain.add(match);
-		}
-		return toRetain;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Messages.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Messages.java
deleted file mode 100644
index 4da476d..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.touchpoint.eclipse.messages"; //$NON-NLS-1$
-	public static String error_loading_manipulator;
-	public static String BundlePool;
-	public static String failed_prepareIU;
-	public static String error_saving_manipulator;
-	public static String error_saving_platform_configuration;
-	public static String error_saving_source_bundles_list;
-	public static String error_constructing_platform_configuration_url;
-	public static String generator_not_available;
-	public static String artifact_file_not_found;
-
-	static {
-		// load message values from bundle file and assign to fields below
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MetadataGeneratorUtils.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MetadataGeneratorUtils.java
deleted file mode 100644
index 9dffd53..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/MetadataGeneratorUtils.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.BundleDescriptionFactory;
-import org.eclipse.equinox.internal.provisional.p2.metadata.generator.MetadataGeneratorHelper;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-public class MetadataGeneratorUtils {
-
-	public static IInstallableUnit createBundleIU(IArtifactKey artifactKey, File bundleFile) {
-		BundleDescriptionFactory factory = initializeBundleDescriptionFactory(Activator.getContext());
-		BundleDescription bundleDescription = factory.getBundleDescription(bundleFile);
-		return MetadataGeneratorHelper.createBundleIU(bundleDescription, (Map) bundleDescription.getUserObject(), bundleFile.isDirectory(), artifactKey);
-	}
-
-	private static BundleDescriptionFactory initializeBundleDescriptionFactory(BundleContext context) {
-
-		ServiceReference reference = context.getServiceReference(PlatformAdmin.class.getName());
-		if (reference == null)
-			throw new IllegalStateException("PlatformAdmin not registered.");
-		PlatformAdmin platformAdmin = (PlatformAdmin) context.getService(reference);
-		if (platformAdmin == null)
-			throw new IllegalStateException("PlatformAdmin not registered.");
-
-		try {
-			StateObjectFactory stateObjectFactory = platformAdmin.getFactory();
-			return new BundleDescriptionFactory(stateObjectFactory, null);
-		} finally {
-			context.ungetService(reference);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/PlatformConfigurationWrapper.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/PlatformConfigurationWrapper.java
deleted file mode 100644
index 9f9171d..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/PlatformConfigurationWrapper.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.update.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**	
- * 	This class provides a wrapper for reading and writing platform.xml.
- * 
- * 	Only a minimal set of operations is exposed.
- */
-public class PlatformConfigurationWrapper {
-
-	private Configuration configuration = null;
-	private Site poolSite = null;
-	private File configFile;
-	private URL poolURL;
-	private Manipulator manipulator;
-
-	private static String FEATURES = "features/"; //$NON-NLS-1$
-
-	private static URL getOSGiInstallArea(Manipulator manipulator) {
-		final String OSGI = "org.eclipse.osgi"; //$NON-NLS-1$
-		BundleInfo[] bis = manipulator.getConfigData().getBundles();
-		String searchFor = "org.eclipse.equinox.launcher"; //$NON-NLS-1$
-		for (int i = 0; i < bis.length; i++) {
-			if (bis[i].getSymbolicName().equals(searchFor)) {
-				if (bis[i].getLocation() != null) {
-					try {
-						if (bis[i].getLocation().startsWith("file:")) //$NON-NLS-1$
-							return fromOSGiJarToOSGiInstallArea(bis[i].getLocation().substring(5)).toURL();
-					} catch (MalformedURLException e) {
-						//do nothing
-					}
-				}
-				if (searchFor.equals(OSGI))
-					return null;
-				searchFor = OSGI;
-				i = -1;
-			}
-		}
-		return null;
-	}
-
-	private static File fromOSGiJarToOSGiInstallArea(String path) {
-		IPath parentFolder = new Path(path).removeLastSegments(1);
-		if (parentFolder.lastSegment().equals("plugins")) //$NON-NLS-1$
-			return parentFolder.removeLastSegments(1).toFile();
-		return parentFolder.toFile();
-	}
-
-	public PlatformConfigurationWrapper(URL configDir, URL featurePool, Manipulator manipulator) {
-		this.configuration = null;
-		this.configFile = new File(configDir.getFile(), "/org.eclipse.update/platform.xml"); //$NON-NLS-1$
-		this.poolURL = featurePool;
-		this.manipulator = manipulator;
-	}
-
-	private void loadDelegate() {
-		if (configuration != null)
-			return;
-
-		try {
-			if (configFile.exists()) {
-				configuration = Configuration.load(configFile, getOSGiInstallArea(manipulator));
-			} else {
-				configuration = new Configuration();
-			}
-		} catch (ProvisionException pe) {
-			// TODO: Make this a real message
-			throw new IllegalStateException("Error parsing platform configuration."); //$NON-NLS-1$;
-		}
-
-		poolSite = getSite(poolURL);
-		if (poolSite == null) {
-			poolSite = createSite(poolURL);
-			configuration.add(poolSite);
-		}
-	}
-
-	/*
-	 * Create and return a site object based on the given location.
-	 */
-	private Site createSite(URL location) {
-		Site result = new Site();
-		result.setUrl(location.toExternalForm());
-		result.setPolicy(Site.POLICY_MANAGED_ONLY);
-		result.setEnabled(true);
-		return result;
-	}
-
-	/*
-	 * Look in the configuration and return the site object whose location matches
-	 * the given URL. Return null if there is no match.
-	 */
-	private Site getSite(URL url) {
-		List sites = configuration.getSites();
-		for (Iterator iter = sites.iterator(); iter.hasNext();) {
-			Site nextSite = (Site) iter.next();
-			String nextURL = nextSite.getUrl();
-			if (new Path(nextURL).equals(new Path(url.toExternalForm()))) {
-				return nextSite;
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Look in the configuration and return the site which contains the feature
-	 * with the given identifier and version. Return null if there is none.
-	 */
-	private Site getSite(String id, String version) {
-		List sites = configuration.getSites();
-		for (Iterator iter = sites.iterator(); iter.hasNext();) {
-			Site site = (Site) iter.next();
-			Feature[] features = site.getFeatures();
-			for (int i = 0; i < features.length; i++) {
-				if (id.equals(features[i].getId()) && version.equals(features[i].getVersion()))
-					return site;
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.update.configurator.IPlatformConfiguration#createFeatureEntry(java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean, java.lang.String, java.net.URL[])
-	 */
-	public IStatus addFeatureEntry(File file, String id, String version, String pluginIdentifier, String pluginVersion, boolean primary, String application, URL[] root) {
-		loadDelegate();
-		if (configuration == null)
-			return new Status(IStatus.WARNING, Activator.ID, "Platform configuration not available.", null); //$NON-NLS-1$
-
-		URL fileURL = null;
-		try {
-			File featureDir = file.getParentFile();
-			if (featureDir == null || !featureDir.getName().equals("features"))
-				return new Status(IStatus.ERROR, Activator.ID, "Parent directory should be \"features\": " + file.getAbsolutePath(), null);
-			File locationDir = featureDir.getParentFile();
-			if (locationDir == null)
-				return new Status(IStatus.ERROR, Activator.ID, "Unable to calculate extension location for: " + file.getAbsolutePath(), null);
-
-			fileURL = locationDir.toURL();
-		} catch (MalformedURLException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-			return new Status(IStatus.ERROR, Activator.ID, "Unable to create URL from file: " + file.getAbsolutePath(), null);
-		}
-		Site site = getSite(fileURL);
-		if (site == null) {
-			site = createSite(fileURL);
-			configuration.add(site);
-		}
-		Feature addedFeature = new Feature(site);
-		addedFeature.setId(id);
-		addedFeature.setVersion(version);
-		addedFeature.setUrl(makeFeatureURL(id, version));
-		site.addFeature(addedFeature);
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * @see org.eclipse.update.configurator.IPlatformConfiguration#findConfiguredFeatureEntry(java.lang.String)
-	 */
-	public IStatus removeFeatureEntry(String id, String version) {
-		loadDelegate();
-		if (configuration == null)
-			return new Status(IStatus.WARNING, Activator.ID, "Platform configuration not available.", null); //$NON-NLS-1$
-
-		Site site = getSite(id, version);
-		if (site == null)
-			site = poolSite;
-		Feature removedFeature = site.removeFeature(makeFeatureURL(id, version));
-		return (removedFeature != null ? Status.OK_STATUS : new Status(IStatus.ERROR, Activator.ID, "A feature with the specified id was not found.", null)); //$NON-NLS-1$
-	}
-
-	/*
-	 * @see org.eclipse.update.configurator.IPlatformConfiguration#save()
-	 */
-	public void save() throws ProvisionException {
-		if (configuration != null) {
-			configFile.getParentFile().mkdirs();
-			configuration.save(configFile, getOSGiInstallArea(manipulator));
-		}
-	}
-
-	private static String makeFeatureURL(String id, String version) {
-		return FEATURES + id + "_" + version + "/"; //$NON-NLS-1$ //$NON-NLS-2$;
-	}
-
-	//	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/SourceManipulator.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/SourceManipulator.java
deleted file mode 100644
index 0faf471..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/SourceManipulator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.simpleconfigurator.manipulator.SimpleConfiguratorManipulatorImpl;
-import org.osgi.framework.Version;
-
-//This class deals with source bundles and how their addition to the sourcerce.info
-public class SourceManipulator {
-	private List sourceBundles;
-	private IProfile profile;
-	boolean changed = false;
-
-	public SourceManipulator(IProfile profile) {
-		this.profile = profile;
-	}
-
-	public void addBundle(File bundleFile) throws IOException {
-		if (sourceBundles == null)
-			load();
-		sourceBundles.add(new BundleInfo(bundleFile.toURL().toString()));
-	}
-
-	public void addBundle(File bundleFile, String bundleId, Version bundleVersion) throws IOException {
-		if (sourceBundles == null)
-			load();
-		BundleInfo sourceInfo = new BundleInfo(bundleFile.toURL().toString());
-		sourceInfo.setSymbolicName(bundleId);
-		sourceInfo.setVersion(bundleVersion.toString());
-		sourceBundles.add(sourceInfo);
-	}
-
-	public void removeBundle(File bundleFile) throws MalformedURLException, IOException {
-		if (sourceBundles == null)
-			load();
-		sourceBundles.remove(new BundleInfo(bundleFile.toURL().toString()));
-	}
-
-	public void save() throws IOException {
-		if (sourceBundles != null)
-			SimpleConfiguratorManipulatorImpl.saveConfiguration(sourceBundles, getFileLocation(), getLauncherLocation(), false);
-	}
-
-	private void load() throws MalformedURLException, IOException {
-		if (getFileLocation().exists())
-			sourceBundles = SimpleConfiguratorManipulatorImpl.readConfiguration(getFileLocation().toURL(), getLauncherLocation());
-		else
-			sourceBundles = new ArrayList();
-	}
-
-	private File getFileLocation() {
-		return new File(Util.getConfigurationFolder(profile), "org.eclipse.equinox.source/source.info"); //$NON-NLS-1$
-	}
-
-	private File getLauncherLocation() {
-		return Util.getInstallFolder(profile);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java
deleted file mode 100644
index 2845963..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Red Hat Incorporated - fix for bug 225145
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.*;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.TouchpointData;
-import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.util.ManifestElement;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
-
-public class Util {
-
-	/**
-	 * TODO "cache" is probably not the right term for this location
-	 */
-	private final static String CONFIG_FOLDER = "eclipse.configurationFolder"; //$NON-NLS-1$
-	private static final String REPOSITORY_TYPE = IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY;
-	private static final String CACHE_EXTENSIONS = "org.eclipse.equinox.p2.cache.extensions"; //$NON-NLS-1$
-	private static final String PIPE = "|"; //$NON-NLS-1$
-
-	public static AgentLocation getAgentLocation() {
-		return (AgentLocation) ServiceHelper.getService(Activator.getContext(), AgentLocation.class.getName());
-	}
-
-	public static IArtifactRepositoryManager getArtifactRepositoryManager() {
-		return (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-	}
-
-	public static URL getBundlePoolLocation(IProfile profile) {
-		String path = profile.getProperty(IProfile.PROP_CACHE);
-		if (path != null)
-			try {
-				// TODO this is a hack for now.
-				return new File(path).toURL();
-			} catch (MalformedURLException e) {
-				// TODO Do nothing and use the default approach
-			}
-		AgentLocation location = getAgentLocation();
-		if (location == null)
-			return null;
-		return location.getDataArea(Activator.ID);
-	}
-
-	static public IFileArtifactRepository getBundlePoolRepository(IProfile profile) {
-		URL location = getBundlePoolLocation(profile);
-		IArtifactRepositoryManager manager = getArtifactRepositoryManager();
-		try {
-			return (IFileArtifactRepository) manager.loadRepository(location, null);
-		} catch (ProvisionException e) {
-			//the repository doesn't exist, so fall through and create a new one
-		}
-		try {
-			String repositoryName = Messages.BundlePool;
-			IArtifactRepository bundlePool = manager.createRepository(location, repositoryName, REPOSITORY_TYPE);
-			manager.addRepository(bundlePool.getLocation());
-			bundlePool.setProperty(IRepository.PROP_SYSTEM, Boolean.valueOf(true).toString());
-			return (IFileArtifactRepository) bundlePool;
-		} catch (ProvisionException e) {
-			LogHelper.log(e);
-			throw new IllegalArgumentException("Bundle pool repository not writeable: " + location); //$NON-NLS-1$
-		}
-	}
-
-	public static IFileArtifactRepository getAggregatedBundleRepository(IProfile profile) {
-		Set bundleRepositories = new HashSet();
-		bundleRepositories.add(Util.getBundlePoolRepository(profile));
-
-		IArtifactRepositoryManager manager = getArtifactRepositoryManager();
-		List extensions = getListProfileProperty(profile, CACHE_EXTENSIONS);
-		for (Iterator iterator = extensions.iterator(); iterator.hasNext();) {
-			try {
-				String extension = (String) iterator.next();
-				URL extensionURL = new URL(extension);
-				IArtifactRepository repository = manager.loadRepository(extensionURL, null);
-				if (repository != null)
-					bundleRepositories.add(repository);
-			} catch (ProvisionException e) {
-				//skip repositories that could not be read
-			} catch (MalformedURLException e) {
-				// unexpected, URLs should be pre-checked
-				LogHelper.log(new Status(IStatus.ERROR, Activator.ID, e.getMessage(), e));
-			}
-		}
-		return new AggregatedBundleRepository(bundleRepositories);
-	}
-
-	private static List getListProfileProperty(IProfile profile, String key) {
-		List listProperty = new ArrayList();
-		String dropinRepositories = profile.getProperty(key);
-		if (dropinRepositories != null) {
-			StringTokenizer tokenizer = new StringTokenizer(dropinRepositories, PIPE);
-			while (tokenizer.hasMoreTokens()) {
-				listProperty.add(tokenizer.nextToken());
-			}
-		}
-		return listProperty;
-	}
-
-	public static BundleInfo createBundleInfo(File bundleFile, String manifest) {
-		BundleInfo bundleInfo = new BundleInfo();
-		try {
-			if (bundleFile != null)
-				bundleInfo.setLocation(bundleFile.toURL().toExternalForm());
-		} catch (MalformedURLException e) {
-			//Ignore since we are creating the URL from the file
-		}
-
-		bundleInfo.setManifest(manifest);
-		try {
-			Headers headers = Headers.parseManifest(new ByteArrayInputStream(manifest.getBytes()));
-			ManifestElement[] element = ManifestElement.parseHeader("bsn", (String) headers.get(Constants.BUNDLE_SYMBOLICNAME)); //$NON-NLS-1$
-			if (element == null || element.length == 0)
-				return null;
-			bundleInfo.setSymbolicName(element[0].getValue());
-
-			String version = (String) headers.get(Constants.BUNDLE_VERSION);
-			if (version == null)
-				return null;
-			bundleInfo.setVersion(version);
-		} catch (BundleException e) {
-			// unexpected
-			LogHelper.log(new Status(IStatus.ERROR, Activator.ID, e.getMessage(), e));
-			return null;
-		}
-		return bundleInfo;
-	}
-
-	public static File getArtifactFile(IArtifactKey artifactKey, IProfile profile) {
-		IFileArtifactRepository aggregatedView = getAggregatedBundleRepository(profile);
-		File bundleJar = aggregatedView.getArtifactFile(artifactKey);
-		return bundleJar;
-	}
-
-	public static File getConfigurationFolder(IProfile profile) {
-		String config = profile.getProperty(CONFIG_FOLDER);
-		if (config != null)
-			return new File(config);
-		return new File(getInstallFolder(profile), "configuration"); //$NON-NLS-1$
-	}
-
-	public static File getInstallFolder(IProfile profile) {
-		return new File(profile.getProperty(IProfile.PROP_INSTALL_FOLDER));
-	}
-
-	public static File getLauncherPath(IProfile profile) {
-		return new File(getInstallFolder(profile), getLauncherName(profile));
-	}
-
-	/**
-	 * Returns the name of the Eclipse application launcher.
-	 */
-	private static String getLauncherName(IProfile profile) {
-		String name = profile.getProperty(EclipseTouchpoint.PROFILE_PROP_LAUNCHER_NAME);
-
-		String os = getOSFromProfile(profile);
-		if (os == null) {
-			EnvironmentInfo info = (EnvironmentInfo) ServiceHelper.getService(Activator.getContext(), EnvironmentInfo.class.getName());
-			if (info != null)
-				os = info.getOS();
-		}
-		if (name == null)
-			name = "eclipse"; //$NON-NLS-1$
-
-		if (os.equals(org.eclipse.osgi.service.environment.Constants.OS_MACOSX)) {
-			return name + ".app/Contents/MacOS/" + name.toLowerCase(); //$NON-NLS-1$
-		}
-		return name;
-	}
-
-	private static String getOSFromProfile(IProfile profile) {
-		String environments = profile.getProperty(IProfile.PROP_ENVIRONMENTS);
-		if (environments == null)
-			return null;
-		for (StringTokenizer tokenizer = new StringTokenizer(environments, ","); tokenizer.hasMoreElements();) { //$NON-NLS-1$
-			String entry = tokenizer.nextToken();
-			int i = entry.indexOf('=');
-			String key = entry.substring(0, i).trim();
-			if (!key.equals("osgi.os")) //$NON-NLS-1$
-				continue;
-			return entry.substring(i + 1).trim();
-		}
-		return null;
-	}
-
-	public static String getManifest(TouchpointData[] data) {
-		for (int i = 0; i < data.length; i++) {
-			String manifest = data[i].getInstructions("manifest"); //$NON-NLS-1$
-			if (manifest != null && manifest.length() > 0)
-				return manifest;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the agent location, if possible as a path relative to the configuration
-	 * directory using the @config.dir substitution variable. AgentLocation will
-	 * substitute this variable with the configuration folder location on startup.
-	 * If the agent location is not a sub-directory of the configuration folder, this
-	 * method simply returns the absolute agent location expressed as a URL.
-	 */
-	public static String computeRelativeAgentLocation(IProfile profile) {
-		URL agentURL = Util.getAgentLocation().getURL();
-		//TODO handle proper path/url conversion
-		IPath agentPath = new Path(agentURL.getPath());
-		IPath configPath = new Path(Util.getConfigurationFolder(profile).getAbsolutePath());
-		if (configPath.isPrefixOf(agentPath))
-			return "@config.dir/" + agentPath.removeFirstSegments(configPath.segmentCount()).makeRelative().setDevice(null); //$NON-NLS-1$
-		if (agentPath.removeLastSegments(1).equals(configPath.removeLastSegments(1)))
-			return "@config.dir/../" + agentPath.lastSegment(); //$NON-NLS-1$
-		return agentURL.toString();
-	}
-
-	public static IStatus createError(String message) {
-		return createError(message, null);
-	}
-
-	public static IStatus createError(String message, Exception e) {
-		return new Status(IStatus.ERROR, Activator.ID, message, e);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/WhatIsRunning.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/WhatIsRunning.java
deleted file mode 100644
index 1b9aa8e..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/WhatIsRunning.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-
-public class WhatIsRunning {
-	public BundleInfo[] getBundlesBeingRun() {
-		return getFrameworkManipulator().getConfigData().getBundles();
-	}
-
-	private Manipulator getFrameworkManipulator() {
-		FrameworkAdmin fwAdmin = LazyManipulator.getFrameworkAdmin();
-		if (fwAdmin != null)
-			return fwAdmin.getRunningManipulator();
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionConstants.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionConstants.java
deleted file mode 100644
index d89861b..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionConstants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-public class ActionConstants {
-
-	public static final String PARM_ARTIFACT = "@artifact"; //$NON-NLS-1$
-	public static final String PARM_ARTIFACT_REQUESTS = "artifactRequests"; //$NON-NLS-1$
-	public static final String PARM_BUNDLE = "bundle"; //$NON-NLS-1$
-	public static final String PARM_FEATURE = "feature"; //$NON-NLS-1$
-	public static final String PARM_FEATURE_ID = "featureId"; //$NON-NLS-1$
-	public static final String PARM_FEATURE_VERSION = "featureVersion"; //$NON-NLS-1$
-	public static final String PARM_JVM_ARG = "jvmArg"; //$NON-NLS-1$
-	public static final String PARM_OPERAND = "operand"; //$NON-NLS-1$
-	public static final String PARM_PREVIOUS_START_LEVEL = "previousStartLevel"; //$NON-NLS-1$
-	public static final String PARM_PREVIOUS_STARTED = "previousStarted"; //$NON-NLS-1$
-	public static final String PARM_PREVIOUS_VALUE = "previousValue"; //$NON-NLS-1$
-	public static final String PARM_PROFILE = "profile"; //$NON-NLS-1$
-	public static final String PARM_PROGRAM_ARG = "programArg"; //$NON-NLS-1$
-	public static final String PARM_PROP_NAME = "propName"; //$NON-NLS-1$
-	public static final String PARM_PROP_VALUE = "propValue"; //$NON-NLS-1$
-	public static final String PARM_START_LEVEL = "startLevel"; //$NON-NLS-1$
-	public static final String PARM_STARTED = "started"; //$NON-NLS-1$
-	public static final String PARM_DEFAULT_VALUE = "default"; //$NON-NLS-1$
-	public static final String PARM_LAUNCHERNAME = "name"; //$NON-NLS-1$
-	public static final String PARM_PATH = "path"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionFactory.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionFactory.java
deleted file mode 100644
index 07c6fb8..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/ActionFactory.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class ActionFactory {
-
-	private static Map actions;
-
-	static {
-		actions = new HashMap();
-		actions.put(CollectAction.ID, CollectAction.class);
-		actions.put(InstallBundleAction.ID, InstallBundleAction.class);
-		actions.put(UninstallBundleAction.ID, UninstallBundleAction.class);
-		actions.put(AddSourceBundleAction.ID, AddSourceBundleAction.class);
-		actions.put(RemoveSourceBundleAction.ID, RemoveSourceBundleAction.class);
-		actions.put(InstallFeatureAction.ID, InstallFeatureAction.class);
-		actions.put(UninstallFeatureAction.ID, UninstallFeatureAction.class);
-		actions.put(SetLauncherNameAction.ID, SetLauncherNameAction.class);
-		actions.put(AddProgramArgumentAction.ID, AddProgramArgumentAction.class);
-		actions.put(RemoveProgramArgumentAction.ID, RemoveProgramArgumentAction.class);
-		actions.put(SetStartLevelAction.ID, SetStartLevelAction.class);
-		actions.put(MarkStartedAction.ID, MarkStartedAction.class);
-		actions.put(SetFrameworkDependentPropertyAction.ID, SetFrameworkDependentPropertyAction.class);
-		actions.put(SetFrameworkIndependentPropertyAction.ID, SetFrameworkIndependentPropertyAction.class);
-		actions.put(SetProgramPropertyAction.ID, SetProgramPropertyAction.class);
-		actions.put(AddJVMArgumentAction.ID, AddJVMArgumentAction.class);
-		actions.put(RemoveJVMArgumentAction.ID, RemoveJVMArgumentAction.class);
-		actions.put(MkdirAction.ID, MkdirAction.class);
-		actions.put(RmdirAction.ID, RmdirAction.class);
-	}
-
-	public static ProvisioningAction create(String actionId) {
-		Class clazz = (Class) actions.get(actionId);
-		if (clazz != null) {
-			try {
-				return (ProvisioningAction) clazz.newInstance();
-			} catch (InstantiationException e) {
-				LogHelper.log(Util.createError(NLS.bind(Messages.action_not_instantiated, actionId), e));
-				return null;
-			} catch (IllegalAccessException e) {
-				LogHelper.log(Util.createError(NLS.bind(Messages.action_not_instantiated, actionId), e));
-				return null;
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddJVMArgumentAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddJVMArgumentAction.java
deleted file mode 100644
index be5c221..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddJVMArgumentAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class AddJVMArgumentAction extends ProvisioningAction {
-	public static final String ID = "addJvmArg"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String jvmArg = (String) parameters.get(ActionConstants.PARM_JVM_ARG);
-		if (jvmArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_JVM_ARG, ID));
-		manipulator.getLauncherData().addJvmArg(jvmArg);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String jvmArg = (String) parameters.get(ActionConstants.PARM_JVM_ARG);
-		if (jvmArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_JVM_ARG, ID));
-		manipulator.getLauncherData().removeJvmArg(jvmArg);
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddProgramArgumentAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddProgramArgumentAction.java
deleted file mode 100644
index 27f9bcc..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddProgramArgumentAction.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class AddProgramArgumentAction extends ProvisioningAction {
-	public static final String ID = "addProgramArg"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String programArg = (String) parameters.get(ActionConstants.PARM_PROGRAM_ARG);
-		if (programArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROGRAM_ARG, ID));
-
-		if (programArg.equals(ActionConstants.PARM_ARTIFACT)) {
-			IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-			IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-
-			IArtifactKey[] artifacts = iu.getArtifacts();
-			if (artifacts == null || artifacts.length == 0)
-				return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-			IArtifactKey artifactKey = artifacts[0];
-
-			File fileLocation = Util.getArtifactFile(artifactKey, profile);
-			if (fileLocation == null || !fileLocation.exists())
-				return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-			programArg = fileLocation.getAbsolutePath();
-		}
-
-		manipulator.getLauncherData().addProgramArg(programArg);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String programArg = (String) parameters.get(ActionConstants.PARM_PROGRAM_ARG);
-		if (programArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROGRAM_ARG, ID));
-
-		if (programArg.equals(ActionConstants.PARM_ARTIFACT)) {
-			IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-			IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-			IArtifactKey[] artifacts = iu.getArtifacts();
-			if (artifacts == null || artifacts.length == 0)
-				return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-			IArtifactKey artifactKey = artifacts[0];
-
-			File fileLocation = Util.getArtifactFile(artifactKey, profile);
-			if (fileLocation == null || !fileLocation.exists())
-				return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-			programArg = fileLocation.getAbsolutePath();
-		}
-
-		manipulator.getLauncherData().removeProgramArg(programArg);
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddSourceBundleAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddSourceBundleAction.java
deleted file mode 100644
index 2f90c6a..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/AddSourceBundleAction.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class AddSourceBundleAction extends ProvisioningAction {
-	public static final String ID = "addSourceBundle"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		return AddSourceBundleAction.addSourceBundle(parameters);
-	}
-
-	public IStatus undo(Map parameters) {
-		return RemoveSourceBundleAction.removeSourceBundle(parameters);
-	}
-
-	public static IStatus addSourceBundle(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		SourceManipulator manipulator = (SourceManipulator) parameters.get(EclipseTouchpoint.PARM_SOURCE_BUNDLES);
-		String bundleId = (String) parameters.get(ActionConstants.PARM_BUNDLE);
-		if (bundleId == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_BUNDLE, ID));
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = null;
-		for (int i = 0; i < artifacts.length; i++) {
-			if (artifacts[i].toString().equals(bundleId)) {
-				artifactKey = artifacts[i];
-				break;
-			}
-		}
-		if (artifactKey == null)
-			throw new IllegalArgumentException(NLS.bind(Messages.no_matching_artifact, bundleId));
-
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-		if (bundleFile == null || !bundleFile.exists())
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-
-		try {
-			manipulator.addBundle(bundleFile, artifactKey.getId(), artifactKey.getVersion());
-		} catch (IOException e) {
-			return Util.createError(NLS.bind(Messages.cannot_configure_source_bundle, artifactKey));
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/CollectAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/CollectAction.java
deleted file mode 100644
index ab8e527..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/CollectAction.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.*;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-
-public class CollectAction extends ProvisioningAction {
-	public static final String ID = "collect"; //$NON-NLS-1$
-	public static final String ARTIFACT_FOLDER = "artifact.folder"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		InstallableUnitOperand operand = (InstallableUnitOperand) parameters.get(ActionConstants.PARM_OPERAND);
-		IArtifactRequest[] requests = CollectAction.collect(operand.second(), profile);
-
-		Collection artifactRequests = (Collection) parameters.get(ActionConstants.PARM_ARTIFACT_REQUESTS);
-		artifactRequests.add(requests);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		// nothing to do for now
-		return Status.OK_STATUS;
-	}
-
-	public static boolean isZipped(TouchpointData[] data) {
-		if (data == null || data.length == 0)
-			return false;
-		for (int i = 0; i < data.length; i++) {
-			if (data[i].getInstructions("zipped") != null) //$NON-NLS-1$
-				return true;
-		}
-		return false;
-	}
-
-	public static Properties createArtifactDescriptorProperties(IInstallableUnit installableUnit) {
-		Properties descriptorProperties = null;
-		if (CollectAction.isZipped(installableUnit.getTouchpointData())) {
-			descriptorProperties = new Properties();
-			descriptorProperties.setProperty(CollectAction.ARTIFACT_FOLDER, Boolean.TRUE.toString());
-		}
-		return descriptorProperties;
-	}
-
-	// TODO: Here we may want to consult multiple caches
-	public static IArtifactRequest[] collect(IInstallableUnit installableUnit, IProfile profile) {
-		IArtifactKey[] toDownload = installableUnit.getArtifacts();
-		if (toDownload == null || toDownload.length == 0)
-			return IArtifactRepositoryManager.NO_ARTIFACT_REQUEST;
-
-		IArtifactRepository aggregatedRepositoryView = Util.getAggregatedBundleRepository(profile);
-		IArtifactRepository bundlePool = Util.getBundlePoolRepository(profile);
-		List requests = new ArrayList();
-		for (int i = 0; i < toDownload.length; i++) {
-			IArtifactKey key = toDownload[i];
-			if (!aggregatedRepositoryView.contains(key)) {
-				Properties repositoryProperties = CollectAction.createArtifactDescriptorProperties(installableUnit);
-				requests.add(Util.getArtifactRepositoryManager().createMirrorRequest(key, bundlePool, null, repositoryProperties));
-			}
-		}
-
-		if (requests.isEmpty())
-			return IArtifactRepositoryManager.NO_ARTIFACT_REQUEST;
-
-		IArtifactRequest[] result = (IArtifactRequest[]) requests.toArray(new IArtifactRequest[requests.size()]);
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java
deleted file mode 100644
index ebfc124..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class InstallBundleAction extends ProvisioningAction {
-	public static final String ID = "installBundle"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		return InstallBundleAction.installBundle(parameters);
-	}
-
-	public IStatus undo(Map parameters) {
-		return UninstallBundleAction.uninstallBundle(parameters);
-	}
-
-	public static IStatus installBundle(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String bundleId = (String) parameters.get(ActionConstants.PARM_BUNDLE);
-		if (bundleId == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_BUNDLE, ID));
-
-		//TODO: eventually remove this. What is a fragment doing here??
-		if (iu.isFragment()) {
-			System.out.println("What is a fragment doing here!!! -- " + iu); //$NON-NLS-1$
-			return Status.OK_STATUS;
-		}
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = null;
-		for (int i = 0; i < artifacts.length; i++) {
-			if (artifacts[i].toString().equals(bundleId)) {
-				artifactKey = artifacts[i];
-				break;
-			}
-		}
-		if (artifactKey == null)
-			throw new IllegalArgumentException(NLS.bind(Messages.no_matching_artifact, bundleId));
-
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-		if (bundleFile == null || !bundleFile.exists())
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-
-		//By now we always have the manifest in the touchpoint data
-		String manifest = Util.getManifest(iu.getTouchpointData());
-		if (manifest == null)
-			return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
-		BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
-		if (bundleInfo == null)
-			return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
-		manipulator.getConfigData().addBundle(bundleInfo);
-
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallFeatureAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallFeatureAction.java
deleted file mode 100644
index b1b78e0..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallFeatureAction.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class InstallFeatureAction extends ProvisioningAction {
-	public static final String ID = "installFeature"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		return InstallFeatureAction.installFeature(parameters);
-	}
-
-	public IStatus undo(Map parameters) {
-		return UninstallFeatureAction.uninstallFeature(parameters);
-	}
-
-	public static IStatus installFeature(Map parameters) {
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		PlatformConfigurationWrapper configuration = (PlatformConfigurationWrapper) parameters.get(EclipseTouchpoint.PARM_PLATFORM_CONFIGURATION);
-		String feature = (String) parameters.get(ActionConstants.PARM_FEATURE);
-		String featureId = (String) parameters.get(ActionConstants.PARM_FEATURE_ID);
-		String featureVersion = (String) parameters.get(ActionConstants.PARM_FEATURE_VERSION);
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = null;
-		for (int i = 0; i < artifacts.length; i++) {
-			if (artifacts[i].toString().equals(feature)) {
-				artifactKey = artifacts[i];
-				break;
-			}
-		}
-
-		if (featureId == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_FEATURE_ID, ID));
-		else if (ActionConstants.PARM_DEFAULT_VALUE.equals(featureId)) {
-			featureId = artifactKey.getId();
-		}
-
-		if (featureVersion == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_FEATURE_VERSION, ID));
-		else if (ActionConstants.PARM_DEFAULT_VALUE.equals(featureVersion)) {
-			featureVersion = artifactKey.getVersion().toString();
-		}
-
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		File file = Util.getArtifactFile(artifactKey, profile);
-		if (file == null || !file.exists()) {
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-		}
-		return configuration.addFeatureEntry(file, featureId, featureVersion, artifactKey.getId(), artifactKey.getVersion().toString(), /*primary*/false, /*application*/null, /*root*/null);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java
deleted file mode 100644
index 394608e..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class MarkStartedAction extends ProvisioningAction {
-	public static final String ID = "markStarted"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		String started = (String) parameters.get(ActionConstants.PARM_STARTED);
-		if (started == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_STARTED, ID));
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = artifacts[0];
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-		if (bundleFile == null || !bundleFile.exists())
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-
-		String manifest = Util.getManifest(iu.getTouchpointData());
-		if (manifest == null)
-			return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
-		BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
-		if (bundleInfo == null)
-			return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
-
-		BundleInfo[] bundles = manipulator.getConfigData().getBundles();
-		for (int i = 0; i < bundles.length; i++) {
-			if (bundles[i].equals(bundleInfo)) {
-				getMemento().put(ActionConstants.PARM_PREVIOUS_STARTED, new Boolean(bundles[i].isMarkedAsStarted()));
-				bundles[i].setMarkedAsStarted(Boolean.valueOf(started).booleanValue());
-				break;
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = artifacts[0];
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-		if (bundleFile == null || !bundleFile.exists())
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-
-		String manifest = Util.getManifest(iu.getTouchpointData());
-		if (manifest == null)
-			return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
-		BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
-		if (bundleInfo == null)
-			return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
-
-		BundleInfo[] bundles = manipulator.getConfigData().getBundles();
-		for (int i = 0; i < bundles.length; i++) {
-			if (bundles[i].equals(bundleInfo)) {
-				Boolean previousStarted = (Boolean) getMemento().get(ActionConstants.PARM_PREVIOUS_STARTED);
-				if (previousStarted != null)
-					bundles[i].setMarkedAsStarted(previousStarted.booleanValue());
-				break;
-			}
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/Messages.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/Messages.java
deleted file mode 100644
index dbeb1e7..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.messages"; //$NON-NLS-1$
-	public static String artifact_file_not_found;
-	public static String action_not_instantiated;
-	public static String parameter_not_set;
-	public static String iu_contains_no_arifacts;
-	public static String no_matching_artifact;
-	public static String missing_manifest;
-	public static String failed_bundleinfo;
-	public static String cannot_configure_source_bundle;
-	public static String error_parsing_startlevel;
-
-	static {
-		// load message values from bundle file and assign to fields below
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MkdirAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MkdirAction.java
deleted file mode 100644
index bdf2e0f..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MkdirAction.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class MkdirAction extends ProvisioningAction {
-	public static final String ID = "mkdir"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		String path = (String) parameters.get(ActionConstants.PARM_PATH);
-		if (path == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PATH, ID));
-		new File(path).mkdir();
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		String path = (String) parameters.get(ActionConstants.PARM_PATH);
-		if (path == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PATH, ID));
-		new File(path).delete();
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveJVMArgumentAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveJVMArgumentAction.java
deleted file mode 100644
index fd2815e..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveJVMArgumentAction.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class RemoveJVMArgumentAction extends ProvisioningAction {
-	public static final String ID = "removeJvmArg"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String jvmArg = (String) parameters.get(ActionConstants.PARM_JVM_ARG);
-		if (jvmArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_JVM_ARG, ID));
-		manipulator.getLauncherData().removeJvmArg(jvmArg);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String jvmArg = (String) parameters.get(ActionConstants.PARM_JVM_ARG);
-		if (jvmArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_JVM_ARG, ID));
-		manipulator.getLauncherData().addJvmArg(jvmArg);
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveProgramArgumentAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveProgramArgumentAction.java
deleted file mode 100644
index 7f93933..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveProgramArgumentAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class RemoveProgramArgumentAction extends ProvisioningAction {
-	public static final String ID = "removeProgramArg"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String programArg = (String) parameters.get(ActionConstants.PARM_PROGRAM_ARG);
-		if (programArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROGRAM_ARG, ID));
-
-		if (programArg.equals(ActionConstants.PARM_ARTIFACT)) {
-			IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-			IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-			IArtifactKey[] artifacts = iu.getArtifacts();
-			if (artifacts == null || artifacts.length == 0)
-				return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-			IArtifactKey artifactKey = artifacts[0];
-
-			File fileLocation = Util.getArtifactFile(artifactKey, profile);
-			if (fileLocation == null || !fileLocation.exists())
-				return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-			programArg = fileLocation.getAbsolutePath();
-		}
-
-		manipulator.getLauncherData().removeProgramArg(programArg);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String programArg = (String) parameters.get(ActionConstants.PARM_PROGRAM_ARG);
-		if (programArg == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROGRAM_ARG, ID));
-
-		if (programArg.equals(ActionConstants.PARM_ARTIFACT)) {
-			IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-			IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-			IArtifactKey[] artifacts = iu.getArtifacts();
-			if (artifacts == null || artifacts.length == 0)
-				return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-			IArtifactKey artifactKey = artifacts[0];
-
-			File fileLocation = Util.getArtifactFile(artifactKey, profile);
-			if (fileLocation == null || !fileLocation.exists())
-				return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-			programArg = fileLocation.getAbsolutePath();
-		}
-
-		manipulator.getLauncherData().addProgramArg(programArg);
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveSourceBundleAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveSourceBundleAction.java
deleted file mode 100644
index 89c0b93..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RemoveSourceBundleAction.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class RemoveSourceBundleAction extends ProvisioningAction {
-	public static final String ID = "removeSourceBundle"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		return RemoveSourceBundleAction.removeSourceBundle(parameters);
-	}
-
-	public IStatus undo(Map parameters) {
-		return AddSourceBundleAction.addSourceBundle(parameters);
-	}
-
-	public static IStatus removeSourceBundle(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		SourceManipulator manipulator = (SourceManipulator) parameters.get(EclipseTouchpoint.PARM_SOURCE_BUNDLES);
-		String bundleId = (String) parameters.get(ActionConstants.PARM_BUNDLE);
-		if (bundleId == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_BUNDLE, ID));
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = null;
-		for (int i = 0; i < artifacts.length; i++) {
-			if (artifacts[i].toString().equals(bundleId)) {
-				artifactKey = artifacts[i];
-				break;
-			}
-		}
-		if (artifactKey == null)
-			throw new IllegalArgumentException(NLS.bind(Messages.no_matching_artifact, bundleId));
-
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-		if (bundleFile == null || !bundleFile.exists())
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-
-		try {
-			manipulator.removeBundle(bundleFile);
-		} catch (IOException e) {
-			return Util.createError(NLS.bind(Messages.cannot_configure_source_bundle, artifactKey));
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RmdirAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RmdirAction.java
deleted file mode 100644
index 41dc37c..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/RmdirAction.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class RmdirAction extends ProvisioningAction {
-	public static final String ID = "rmdir"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		String path = (String) parameters.get(ActionConstants.PARM_PATH);
-		if (path == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PATH, ID));
-		new File(path).delete();
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		String path = (String) parameters.get(ActionConstants.PARM_PATH);
-		if (path == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PATH, ID));
-		new File(path).mkdir();
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkDependentPropertyAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkDependentPropertyAction.java
deleted file mode 100644
index b2d980f..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkDependentPropertyAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class SetFrameworkDependentPropertyAction extends ProvisioningAction {
-	public static final String ID = "setFwDependentProp"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String propName = (String) parameters.get(ActionConstants.PARM_PROP_NAME);
-		if (propName == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_NAME, ID));
-		String propValue = (String) parameters.get(ActionConstants.PARM_PROP_VALUE);
-		if (propValue == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_VALUE, ID));
-		getMemento().put(ActionConstants.PARM_PREVIOUS_VALUE, manipulator.getConfigData().getFwDependentProp(propName));
-		manipulator.getConfigData().setFwDependentProp(propName, propValue);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String propName = (String) parameters.get(ActionConstants.PARM_PROP_NAME);
-		if (propName == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_NAME, ID));
-		String previousValue = (String) getMemento().get(ActionConstants.PARM_PREVIOUS_VALUE);
-		if (previousValue == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PREVIOUS_VALUE, ID));
-		manipulator.getConfigData().setFwDependentProp(propName, previousValue);
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkIndependentPropertyAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkIndependentPropertyAction.java
deleted file mode 100644
index c93ff5c..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetFrameworkIndependentPropertyAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class SetFrameworkIndependentPropertyAction extends ProvisioningAction {
-	public static final String ID = "setFwIndependentProp"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String propName = (String) parameters.get(ActionConstants.PARM_PROP_NAME);
-		if (propName == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_NAME, ID));
-		String propValue = (String) parameters.get(ActionConstants.PARM_PROP_VALUE);
-		if (propValue == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_VALUE, ID));
-		getMemento().put(ActionConstants.PARM_PREVIOUS_VALUE, manipulator.getConfigData().getFwDependentProp(propName));
-		manipulator.getConfigData().setFwIndependentProp(propName, propValue);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String propName = (String) parameters.get(ActionConstants.PARM_PROP_NAME);
-		if (propName == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_NAME, ID));
-		String previousValue = (String) getMemento().get(ActionConstants.PARM_PREVIOUS_VALUE);
-		if (previousValue == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PREVIOUS_VALUE, ID));
-		manipulator.getConfigData().setFwIndependentProp(propName, previousValue);
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetLauncherNameAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetLauncherNameAction.java
deleted file mode 100644
index c2e869e..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetLauncherNameAction.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.engine.Profile;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-
-public class SetLauncherNameAction extends ProvisioningAction {
-	public static final String ID = "setLauncherName"; //$NON-NLS-1$
-
-	private IStatus changeName(String newName, Manipulator manipulator, Profile profile) {
-		//force the load to make sure we read the values in the old filename
-		IStatus status = EclipseTouchpoint.loadManipulator(manipulator);
-		if (status != null && !status.isOK())
-			return status;
-		getMemento().put(EclipseTouchpoint.PROFILE_PROP_LAUNCHER_NAME, profile.getProperty(EclipseTouchpoint.PROFILE_PROP_LAUNCHER_NAME));
-		profile.setProperty(EclipseTouchpoint.PROFILE_PROP_LAUNCHER_NAME, newName);
-		manipulator.getLauncherData().setLauncher(Util.getLauncherPath(profile));
-		return Status.OK_STATUS;
-	}
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		Profile profile = (Profile) parameters.get(ActionConstants.PARM_PROFILE);
-		return changeName((String) parameters.get(ActionConstants.PARM_LAUNCHERNAME), manipulator, profile);
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		Profile profile = (Profile) parameters.get(ActionConstants.PARM_PROFILE);
-		return changeName((String) getMemento().get(EclipseTouchpoint.PROFILE_PROP_LAUNCHER_NAME), manipulator, profile);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetProgramPropertyAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetProgramPropertyAction.java
deleted file mode 100644
index 2e65293..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetProgramPropertyAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.osgi.util.NLS;
-
-public class SetProgramPropertyAction extends ProvisioningAction {
-	public static final String ID = "setProgramProperty"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String propName = (String) parameters.get(ActionConstants.PARM_PROP_NAME);
-		if (propName == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_NAME, ID));
-		String propValue = (String) parameters.get(ActionConstants.PARM_PROP_VALUE);
-		if (propValue == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_VALUE, ID));
-		getMemento().put(ActionConstants.PARM_PREVIOUS_VALUE, manipulator.getConfigData().getFwDependentProp(propName));
-		manipulator.getConfigData().setFwDependentProp(propName, propValue);
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String propName = (String) parameters.get(ActionConstants.PARM_PROP_NAME);
-		if (propName == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PROP_NAME, ID));
-		String previousValue = (String) getMemento().get(ActionConstants.PARM_PREVIOUS_VALUE);
-		if (previousValue == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_PREVIOUS_VALUE, ID));
-		manipulator.getConfigData().setFwDependentProp(propName, previousValue);
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java
deleted file mode 100644
index 9bed130..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class SetStartLevelAction extends ProvisioningAction {
-	public static final String ID = "setStartLevel"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		String startLevel = (String) parameters.get(ActionConstants.PARM_START_LEVEL);
-		if (startLevel == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_START_LEVEL, ID));
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = artifacts[0];
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-		if (bundleFile == null || !bundleFile.exists())
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-
-		String manifest = Util.getManifest(iu.getTouchpointData());
-		if (manifest == null)
-			return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
-		BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
-		if (bundleInfo == null)
-			return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
-
-		BundleInfo[] bundles = manipulator.getConfigData().getBundles();
-		for (int i = 0; i < bundles.length; i++) {
-			if (bundles[i].equals(bundleInfo)) {
-				getMemento().put(ActionConstants.PARM_PREVIOUS_START_LEVEL, new Integer(bundles[i].getStartLevel()));
-				try {
-					bundles[i].setStartLevel(Integer.parseInt(startLevel));
-				} catch (NumberFormatException e) {
-					return Util.createError(NLS.bind(Messages.error_parsing_startlevel, startLevel, bundles[i].getSymbolicName()), e);
-				}
-				break;
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	public IStatus undo(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = artifacts[0];
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-		if (bundleFile == null || !bundleFile.exists())
-			return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
-
-		String manifest = Util.getManifest(iu.getTouchpointData());
-		if (manifest == null)
-			return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
-		BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
-		if (bundleInfo == null)
-			return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
-
-		BundleInfo[] bundles = manipulator.getConfigData().getBundles();
-		for (int i = 0; i < bundles.length; i++) {
-			if (bundles[i].equals(bundleInfo)) {
-				Integer previousStartLevel = (Integer) getMemento().get(ActionConstants.PARM_PREVIOUS_START_LEVEL);
-				if (previousStartLevel != null)
-					bundles[i].setStartLevel(previousStartLevel.intValue());
-				break;
-			}
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java
deleted file mode 100644
index daf1ec9..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.io.File;
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.BundleInfo;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.Manipulator;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class UninstallBundleAction extends ProvisioningAction {
-	public static final String ID = "uninstallBundle"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		return UninstallBundleAction.uninstallBundle(parameters);
-	}
-
-	public IStatus undo(Map parameters) {
-		return InstallBundleAction.installBundle(parameters);
-	}
-
-	public static IStatus uninstallBundle(Map parameters) {
-		IProfile profile = (IProfile) parameters.get(ActionConstants.PARM_PROFILE);
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
-		String bundleId = (String) parameters.get(ActionConstants.PARM_BUNDLE);
-		if (bundleId == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_BUNDLE, ID));
-
-		//TODO: eventually remove this. What is a fragment doing here??
-		if (iu.isFragment()) {
-			System.out.println("What is a fragment doing here!!! -- " + iu); //$NON-NLS-1$
-			return Status.OK_STATUS;
-		}
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = null;
-		for (int i = 0; i < artifacts.length; i++) {
-			if (artifacts[i].toString().equals(bundleId)) {
-				artifactKey = artifacts[i];
-				break;
-			}
-		}
-		if (artifactKey == null)
-			throw new IllegalArgumentException(NLS.bind(Messages.no_matching_artifact, bundleId));
-
-		// the bundleFile might be null here, that's OK.
-		File bundleFile = Util.getArtifactFile(artifactKey, profile);
-
-		String manifest = Util.getManifest(iu.getTouchpointData());
-		if (manifest == null)
-			return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
-		BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
-		if (bundleInfo == null)
-			return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
-		manipulator.getConfigData().removeBundle(bundleInfo);
-
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallFeatureAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallFeatureAction.java
deleted file mode 100644
index 95ea30f..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallFeatureAction.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.*;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningAction;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IArtifactKey;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.osgi.util.NLS;
-
-public class UninstallFeatureAction extends ProvisioningAction {
-	public static final String ID = "uninstallFeature"; //$NON-NLS-1$
-
-	public IStatus execute(Map parameters) {
-		return UninstallFeatureAction.uninstallFeature(parameters);
-	}
-
-	public IStatus undo(Map parameters) {
-		return InstallFeatureAction.installFeature(parameters);
-	}
-
-	public static IStatus uninstallFeature(Map parameters) {
-		IInstallableUnit iu = (IInstallableUnit) parameters.get(EclipseTouchpoint.PARM_IU);
-		PlatformConfigurationWrapper configuration = (PlatformConfigurationWrapper) parameters.get(EclipseTouchpoint.PARM_PLATFORM_CONFIGURATION);
-		String feature = (String) parameters.get(ActionConstants.PARM_FEATURE);
-		String featureId = (String) parameters.get(ActionConstants.PARM_FEATURE_ID);
-		String featureVersion = (String) parameters.get(ActionConstants.PARM_FEATURE_VERSION);
-
-		IArtifactKey[] artifacts = iu.getArtifacts();
-		if (artifacts == null || artifacts.length == 0)
-			return Util.createError(NLS.bind(Messages.iu_contains_no_arifacts, iu));
-
-		IArtifactKey artifactKey = null;
-		for (int i = 0; i < artifacts.length; i++) {
-			if (artifacts[i].toString().equals(feature)) {
-				artifactKey = artifacts[i];
-				break;
-			}
-		}
-
-		if (featureId == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_FEATURE_ID, ID));
-		else if (ActionConstants.PARM_DEFAULT_VALUE.equals(featureId)) {
-			featureId = artifactKey.getId();
-		}
-
-		if (featureVersion == null)
-			return Util.createError(NLS.bind(Messages.parameter_not_set, ActionConstants.PARM_FEATURE_VERSION, ID));
-		else if (ActionConstants.PARM_DEFAULT_VALUE.equals(featureVersion)) {
-			featureVersion = artifactKey.getVersion().toString();
-		}
-
-		return configuration.removeFeatureEntry(featureId, featureVersion);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/messages.properties b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/messages.properties
deleted file mode 100644
index f8551de..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/messages.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-artifact_file_not_found=The artifact file for {0} was not found.
-action_not_instantiated=Action could not be instantiated for action id: {0}.
-parameter_not_set=The \"{0}\" parameter was not set in the \"{1}\" action.
-iu_contains_no_arifacts=Installable unit contains no artifacts: {0}.
-no_matching_artifact=No matching artifact found for: {0}.
-missing_manifest=The manifest is missing for: {0}.
-failed_bundleinfo=Failed to create bundleInfo for: {0}.
-cannot_configure_source_bundle=Cannot configure {0} as a source bundle.
-error_parsing_startlevel=Error parsing start level: {0} for bundle: {1}.
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/messages.properties b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/messages.properties
deleted file mode 100644
index 099b626..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/messages.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-error_loading_manipulator=Error while loading manipulator.
-failed_prepareIU=Failed to prepare partial IU: {0}.
-error_saving_manipulator=Error saving manipulator.
-error_saving_platform_configuration=Error saving platform configuration.
-error_saving_source_bundles_list=Error saving source bundles list.
-error_constructing_platform_configuration_url=Error constructing platform configuration url.
-generator_not_available=The partial IU could not be updated. Generator not available: {0}.
-artifact_file_not_found=The artifact file for {0} was not found.
-BundlePool=Bundle pool
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Configuration.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Configuration.java
deleted file mode 100644
index 43c3df8..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Configuration.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * @since 1.0
- */
-public class Configuration {
-
-	private List sites = new ArrayList();
-	String date;
-	boolean transientProperty;
-	String version;
-	String shared_ur;
-
-	public static Configuration load(File location, URL osgiInstallArea) throws ProvisionException {
-		return ConfigurationParser.parse(location, osgiInstallArea);
-	}
-
-	public Configuration() {
-		super();
-	}
-
-	public void save(File location, URL osgiInstallArea) throws ProvisionException {
-		ConfigurationWriter.save(this, location, osgiInstallArea);
-	}
-
-	public String getSharedUR() {
-		return shared_ur;
-	}
-
-	public void setSharedUR(String value) {
-		shared_ur = value;
-	}
-
-	public List getSites() {
-		return sites;
-	}
-
-	public void add(Site site) {
-		sites.add(site);
-	}
-
-	public String getDate() {
-		return date;
-	}
-
-	public void setDate(String date) {
-		this.date = date;
-	}
-
-	public void setVersion(String value) {
-		version = value;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	public void setTransient(boolean value) {
-		transientProperty = value;
-	}
-
-	public boolean isTransient() {
-		return transientProperty;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationConstants.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationConstants.java
deleted file mode 100644
index 10c096a..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationConstants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-/**
- * @since 1.0
- */
-public interface ConfigurationConstants {
-
-	final String ELEMENT_CONFIG = "config"; //$NON-NLS-1$
-	final String ELEMENT_FEATURE = "feature"; //$NON-NLS-1$
-	final String ELEMENT_SITE = "site"; //$NON-NLS-1$
-
-	final String ATTRIBUTE_DATE = "date"; //$NON-NLS-1$
-	final String ATTRIBUTE_ENABLED = "enabled"; //$NON-NLS-1$
-	final String ATTRIBUTE_ID = "id"; //$NON-NLS-1$
-	final String ATTRIBUTE_LINKFILE = "linkfile"; //$NON-NLS-1$
-	final String ATTRIBUTE_LIST = "list"; //$NON-NLS-1$
-	final String ATTRIBUTE_POLICY = "policy"; //$NON-NLS-1$
-	final String ATTRIBUTE_SHARED_UR = "shared_ur"; //$NON-NLS-1$
-	final String ATTRIBUTE_TRANSIENT = "transient"; //$NON-NLS-1$
-	final String ATTRIBUTE_UPDATEABLE = "updateable"; //$NON-NLS-1$
-	final String ATTRIBUTE_URL = "url"; //$NON-NLS-1$
-	final String ATTRIBUTE_VERSION = "version"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java
deleted file mode 100644
index 1f08569..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-import java.io.*;
-import java.net.URL;
-import java.util.StringTokenizer;
-import javax.xml.parsers.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.w3c.dom.*;
-import org.xml.sax.SAXException;
-
-/**
- * Parser for platform.xml files. 
- * 
- * @since 1.0
- */
-public class ConfigurationParser implements ConfigurationConstants {
-	private URL osgiInstallArea;
-
-	/*
-	 * Parse the given file handle which points to a platform.xml file and a configuration object.
-	 * Returns null if the file doesn't exist.
-	 */
-	public static Configuration parse(File file, URL osgiInstallArea) throws ProvisionException {
-		return new ConfigurationParser(osgiInstallArea).internalParse(file);
-	}
-
-	private ConfigurationParser(URL osgiInstallArea) {
-		this.osgiInstallArea = osgiInstallArea;
-	}
-
-	/*
-	 * Create a feature object based on the given DOM node. 
-	 * Return the new feature.
-	 */
-	private Feature createFeature(Node node, Site site) {
-		Feature result = new Feature(site);
-		String id = getAttribute(node, ATTRIBUTE_ID);
-		if (id != null)
-			result.setId(id);
-		String url = getAttribute(node, ATTRIBUTE_URL);
-		if (url != null)
-			result.setUrl(url);
-		String version = getAttribute(node, ATTRIBUTE_VERSION);
-		if (version != null)
-			result.setVersion(version);
-		return result;
-	}
-
-	/*
-	 * Create the features from the given DOM node.
-	 */
-	private void createFeatures(Node node, Site site) {
-		NodeList children = node.getChildNodes();
-		int size = children.getLength();
-		for (int i = 0; i < size; i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() != Node.ELEMENT_NODE)
-				continue;
-			if (!ELEMENT_FEATURE.equalsIgnoreCase(child.getNodeName()))
-				continue;
-			Feature feature = createFeature(child, site);
-			if (feature != null)
-				site.addFeature(feature);
-		}
-	}
-
-	/*
-	 * Create a site based on the given DOM node.
-	 */
-	private Site createSite(Node node) {
-		Site result = new Site();
-		String policy = getAttribute(node, ATTRIBUTE_POLICY);
-		if (policy != null)
-			result.setPolicy(policy);
-		String enabled = getAttribute(node, ATTRIBUTE_ENABLED);
-		if (enabled != null)
-			result.setEnabled(Boolean.valueOf(enabled).booleanValue());
-		String updateable = getAttribute(node, ATTRIBUTE_UPDATEABLE);
-		if (updateable != null)
-			result.setUpdateable(Boolean.valueOf(updateable).booleanValue());
-		String url = getAttribute(node, ATTRIBUTE_URL);
-		if (url != null) {
-			if (osgiInstallArea == null)
-				result.setUrl(url);
-			else
-				result.setUrl(Utils.makeAbsolute(url, osgiInstallArea));
-		}
-		String linkFile = getAttribute(node, ATTRIBUTE_LINKFILE);
-		if (linkFile != null)
-			result.setLinkFile(linkFile);
-		String list = getAttribute(node, ATTRIBUTE_LIST);
-		if (list != null)
-			for (StringTokenizer tokenizer = new StringTokenizer(list, ","); tokenizer.hasMoreTokens();) //$NON-NLS-1$
-				result.addPlugin(tokenizer.nextToken());
-		createFeatures(node, result);
-		return result;
-	}
-
-	/*
-	 * Return the attribute with the given name, or null if it does
-	 * not exist.
-	 */
-	private String getAttribute(Node node, String name) {
-		NamedNodeMap attributes = node.getAttributes();
-		Node temp = attributes.getNamedItem(name);
-		return temp == null ? null : temp.getNodeValue();
-	}
-
-	/*
-	 * Load the given file into a DOM document.
-	 */
-	private Document load(InputStream input) throws ParserConfigurationException, IOException, SAXException {
-		// load the feature xml
-		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-		DocumentBuilder builder = factory.newDocumentBuilder();
-		input = new BufferedInputStream(input);
-		try {
-			return builder.parse(input);
-		} finally {
-			if (input != null)
-				try {
-					input.close();
-				} catch (IOException e) {
-					// ignore
-				}
-		}
-	}
-
-	/*
-	 * Parse the given file handle which points to a platform.xml file and a configuration object.
-	 * Returns null if the file doesn't exist.
-	 */
-	private Configuration internalParse(File file) throws ProvisionException {
-		if (!file.exists())
-			return null;
-		try {
-			InputStream input = new BufferedInputStream(new FileInputStream(file));
-			Document document = load(input);
-			return process(document);
-		} catch (IOException e) {
-			throw new ProvisionException("An error occurred reading the platform configuration file: " + file, e);
-		} catch (ParserConfigurationException e) {
-			throw new ProvisionException("An error occurred reading the platform configuration", e);
-		} catch (SAXException e) {
-			throw new ProvisionException("An error occurred reading the platform configuration", e);
-		}
-	}
-
-	/*
-	 * Process the given DOM document and create the appropriate
-	 * site objects.
-	 */
-	private Configuration process(Document document) {
-		Node node = getConfigElement(document);
-		if (node == null)
-			return null;
-		Configuration configuration = createConfiguration(node);
-		NodeList children = node.getChildNodes();
-		int size = children.getLength();
-		for (int i = 0; i < size; i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() != Node.ELEMENT_NODE)
-				continue;
-			if (!ELEMENT_SITE.equalsIgnoreCase(child.getNodeName()))
-				continue;
-			Site site = createSite(child);
-			if (site != null)
-				configuration.add(site);
-		}
-		return configuration;
-	}
-
-	private Configuration createConfiguration(Node node) {
-		Configuration result = new Configuration();
-		String value = getAttribute(node, ATTRIBUTE_DATE);
-		if (value != null)
-			result.setDate(value);
-		value = getAttribute(node, ATTRIBUTE_TRANSIENT);
-		if (value != null)
-			result.setTransient(Boolean.valueOf(value).booleanValue());
-		value = getAttribute(node, ATTRIBUTE_SHARED_UR);
-		if (value != null)
-			result.setSharedUR(value);
-		value = getAttribute(node, ATTRIBUTE_VERSION);
-		if (value != null)
-			result.setVersion(value);
-		return result;
-	}
-
-	private Node getConfigElement(Document doc) {
-		NodeList children = doc.getChildNodes();
-		int size = children.getLength();
-		for (int i = 0; i < size; i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() != Node.ELEMENT_NODE)
-				continue;
-			if (ELEMENT_CONFIG.equalsIgnoreCase(child.getNodeName()))
-				return child;
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java
deleted file mode 100644
index f986e53..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-
-/**
- * @since 1.0
- */
-public class ConfigurationWriter implements ConfigurationConstants {
-
-	/*
-	 * Save the given configuration to the specified location.
-	 */
-	public static void save(Configuration configuration, File location, URL osgiInstallArea) throws ProvisionException {
-		XMLWriter writer = null;
-		try {
-			OutputStream output = new BufferedOutputStream(new FileOutputStream(location));
-			writer = new XMLWriter(output);
-			Map args = new HashMap();
-
-			String value = configuration.getDate();
-			if (value != null)
-				args.put(ATTRIBUTE_DATE, value);
-
-			value = configuration.getSharedUR();
-			if (value != null)
-				args.put(ATTRIBUTE_SHARED_UR, value);
-
-			value = configuration.getVersion();
-			if (value != null)
-				args.put(ATTRIBUTE_VERSION, value);
-
-			args.put(ATTRIBUTE_TRANSIENT, Boolean.toString(configuration.isTransient()));
-
-			writer.startTag(ELEMENT_CONFIG, args);
-
-			for (Iterator iter = configuration.getSites().iterator(); iter.hasNext();) {
-				Site site = (Site) iter.next();
-				write(writer, site, osgiInstallArea);
-			}
-
-			writer.endTag(ELEMENT_CONFIG);
-		} catch (UnsupportedEncodingException e) {
-			throw new ProvisionException("Exception when saving configuration to: " + location, e);
-		} catch (FileNotFoundException e) {
-			throw new ProvisionException("Exception when saving configuration to: " + location, e);
-		} finally {
-			if (writer != null) {
-				writer.flush();
-				writer.close();
-			}
-		}
-	}
-
-	/*
-	 * Write out the given site.
-	 */
-	private static void write(XMLWriter writer, Site site, URL osgiInstallArea) {
-		Map args = new HashMap();
-
-		String value = site.getLinkFile();
-		if (value != null)
-			args.put(ATTRIBUTE_LINKFILE, value);
-
-		value = site.getPolicy();
-		if (value != null)
-			args.put(ATTRIBUTE_POLICY, value);
-
-		value = site.getUrl();
-		if (value != null) {
-			if (osgiInstallArea == null)
-				args.put(ATTRIBUTE_URL, value);
-			else
-				args.put(ATTRIBUTE_URL, Utils.makeRelative(value, osgiInstallArea));
-		}
-
-		value = toString(site.getList());
-		if (value != null)
-			args.put(ATTRIBUTE_LIST, value);
-
-		args.put(ATTRIBUTE_UPDATEABLE, Boolean.toString(site.isUpdateable()));
-		args.put(ATTRIBUTE_ENABLED, Boolean.toString(site.isEnabled()));
-
-		writer.startTag(ELEMENT_SITE, args);
-		write(writer, site.getFeatures());
-		writer.endTag(ELEMENT_SITE);
-	}
-
-	/*
-	 * Convert the given list to a comma-separated string.
-	 */
-	private static String toString(String[] list) {
-		if (list == null || list.length == 0)
-			return null;
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < list.length; i++) {
-			buffer.append(list[i]);
-			if (i + 1 < list.length)
-				buffer.append(',');
-		}
-		return buffer.toString();
-	}
-
-	/*
-	 * Write out the given list of features.
-	 */
-	private static void write(XMLWriter writer, Feature[] features) {
-		if (features == null || features.length == 0)
-			return;
-		for (int i = 0; i < features.length; i++) {
-			Feature feature = features[i];
-			Map args = new HashMap();
-			String value = feature.getId();
-			if (value != null)
-				args.put(ATTRIBUTE_ID, value);
-			value = feature.getUrl();
-			if (value != null)
-				args.put(ATTRIBUTE_URL, value);
-			value = feature.getVersion();
-			if (value != null)
-				args.put(ATTRIBUTE_VERSION, value);
-			writer.startTag(ELEMENT_FEATURE, args);
-			writer.endTag(ELEMENT_FEATURE);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Feature.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Feature.java
deleted file mode 100644
index 54ca2d0..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Feature.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-/*
- * Represents a feature entry in a platform.xml file.
- */
-public class Feature {
-
-	private String id;
-	private String url;
-	private String version;
-	private Site site;
-
-	public Feature(Site site) {
-		super();
-		if (site == null)
-			throw new IllegalArgumentException("Features should not have an empty site."); //$NON-NLS-1$
-		this.site = site;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public Site getSite() {
-		return site;
-	}
-
-	public String getUrl() {
-		return url;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public void setUrl(String url) {
-		this.url = url;
-	}
-
-	public void setVersion(String version) {
-		this.version = version;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (!(obj instanceof Feature))
-			return false;
-		Feature other = (Feature) obj;
-		if (!equals(getId(), other.getId()))
-			return false;
-		// shallow equals here. sites should never be null
-		if (!equals(getSite().getUrl(), other.getSite().getUrl()))
-			return false;
-		if (!equals(getUrl(), other.getUrl()))
-			return false;
-		if (!equals(getVersion(), other.getVersion()))
-			return false;
-		return true;
-	}
-
-	private boolean equals(Object one, Object two) {
-		return one == null ? two == null : one.equals(two);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return super.hashCode();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Site.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Site.java
deleted file mode 100644
index 514c8a1..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Site.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/*
- * Represents a site in a platform.xml file.
- */
-public class Site {
-
-	public final static String POLICY_MANAGED_ONLY = "MANAGED-ONLY"; //$NON-NLS-1$
-	public final static String POLICY_USER_EXCLUDE = "USER-EXCLUDE"; //$NON-NLS-1$
-	public final static String POLICY_USER_INCLUDE = "USER-INCLUDE"; //$NON-NLS-1$
-
-	private String policy;
-	private boolean enabled;
-	private boolean updateable;
-	private String url;
-	private String linkFile;
-	private List features = new ArrayList();
-	private List list = new ArrayList();
-
-	public void addFeature(Feature feature) {
-		this.features.add(feature);
-	}
-
-	public void addPlugin(String plugin) {
-		this.list.add(plugin);
-	}
-
-	public Feature[] getFeatures() {
-		return (Feature[]) features.toArray(new Feature[features.size()]);
-	}
-
-	public Feature removeFeature(String featureURL) {
-		for (int i = 0; i < features.size(); i++) {
-			String nextURL = ((Feature) features.get(i)).getUrl();
-			if (nextURL != null && nextURL.equals(featureURL)) {
-				return (Feature) features.remove(i);
-			}
-		}
-		return null;
-	}
-
-	public String getLinkFile() {
-		return linkFile;
-	}
-
-	public String[] getList() {
-		return (String[]) list.toArray(new String[list.size()]);
-	}
-
-	public String getPolicy() {
-		return policy;
-	}
-
-	public String getUrl() {
-		return url;
-	}
-
-	public boolean isEnabled() {
-		return enabled;
-	}
-
-	public boolean isUpdateable() {
-		return updateable;
-	}
-
-	public void setEnabled(boolean enabled) {
-		this.enabled = enabled;
-	}
-
-	public void setLinkFile(String linkFile) {
-		this.linkFile = linkFile;
-	}
-
-	public void setPolicy(String policy) {
-		this.policy = policy;
-	}
-
-	public void setUpdateable(boolean updateable) {
-		this.updateable = updateable;
-	}
-
-	public void setUrl(String url) {
-		this.url = url;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return getUrl().hashCode();
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (!(obj instanceof Site))
-			return false;
-		Site other = (Site) obj;
-		if (isEnabled() != other.isEnabled())
-			return false;
-		if (isUpdateable() != other.isUpdateable())
-			return false;
-		if (!getUrl().equals(other.getUrl()))
-			return false;
-		if (!Utils.equals(getLinkFile(), other.getLinkFile()))
-			return false;
-		if (!Utils.equals(getPolicy(), other.getPolicy()))
-			return false;
-		if (!Utils.equals(getList(), other.getList()))
-			return false;
-		if (!Utils.equals(getFeatures(), other.getFeatures()))
-			return false;
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Utils.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Utils.java
deleted file mode 100644
index 871f1bd..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Utils.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-import java.io.File;
-import java.io.UnsupportedEncodingException;
-import java.net.*;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-/**
- * 
- * @since 1.0
- */
-public class Utils {
-	public static boolean isWindows = System.getProperty("os.name").startsWith("Win"); //$NON-NLS-1$ //$NON-NLS-2$	
-	private static boolean init = false;
-	private static boolean useEnc = true;
-
-	/*
-	 * Copied from UpdateURLDecoder v1.4 in org.eclipse.update.configurator.
-	 */
-	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;
-			}
-		}
-		return useEnc ? URLDecoder.decode(s, enc) : URLDecoder.decode(s);
-	}
-
-	/*
-	 * Copied from Utils v1.32 in org.eclipse.update.configurator.
-	 * 
-	 * Ensures file: URLs on Windows have the right form (i.e. '/' as segment separator, drive letter in lower case, etc)
-	 */
-	public static String canonicalizeURL(String url) {
-		if (!(isWindows && url.startsWith("file:"))) //$NON-NLS-1$
-			return url;
-		try {
-			String path = new URL(url).getPath();
-			// normalize to not have leading / so we can check the form
-			File file = new File(path);
-			path = file.toString().replace('\\', '/');
-			// handle URLs that don't have a path
-			if (path.length() == 0)
-				return url;
-			if (Character.isUpperCase(path.charAt(0))) {
-				char[] chars = path.toCharArray();
-				chars[0] = Character.toLowerCase(chars[0]);
-				path = new String(chars);
-				return new File(path).toURL().toExternalForm();
-			}
-		} catch (MalformedURLException e) {
-			// default to original url
-		}
-		return url;
-	}
-
-	/*
-	 * Return a boolean value indicating whether or not the given
-	 * objects are considered equal.
-	 */
-	public static boolean equals(Object one, Object two) {
-		return one == null ? two == null : one.equals(two);
-	}
-
-	/*
-	 * Return a boolean value indicating whether or not the given
-	 * lists are considered equal.
-	 */
-	public static boolean equals(Object[] one, Object[] two) {
-		if (one == null && two == null)
-			return true;
-		if (one == null || two == null)
-			return false;
-		if (one.length != two.length)
-			return false;
-		for (int i = 0; i < one.length; i++) {
-			boolean found = false;
-			for (int j = 0; !found && j < two.length; j++)
-				found = one[i].equals(two[j]);
-			if (!found)
-				return false;
-		}
-		return true;
-	}
-
-	private static final String FILE_PROTOCOL = "file:"; //$NON-NLS-1$
-
-	public static String makeRelative(String urlString, URL rootURL) {
-		// we only traffic in file: URLs
-		int index = urlString.indexOf(FILE_PROTOCOL);
-		if (index == -1)
-			return urlString;
-		index = index + 5;
-
-		// ensure we have an absolute path to start with
-		boolean done = false;
-		URL url = null;
-		String file = urlString;
-		while (!done) {
-			try {
-				url = new URL(file);
-				file = url.getFile();
-			} catch (java.net.MalformedURLException e) {
-				done = true;
-			}
-		}
-		if (url == null || !new File(url.getFile()).isAbsolute())
-			return urlString;
-
-		String rootString = rootURL.toExternalForm();
-		return urlString.substring(0, index) + makeRelative(urlString.substring(index), rootString.substring(rootString.indexOf(FILE_PROTOCOL) + 5));
-	}
-
-	public static String makeRelative(String original, String rootPath) {
-		IPath path = new Path(original);
-		// ensure we have an absolute path to start with
-		if (!path.isAbsolute())
-			return original;
-
-		//Returns the original string if no relativization has been done
-		String result = makeRelative(path, new Path(rootPath));
-		return path.toOSString().equals(result) ? original : result;
-	}
-
-	/*
-	 * Make the given path relative to the specified root, if applicable. If not, then
-	 * return the path as-is.
-	 * 
-	 * Method similar to one from SimpleConfigurationManipulatorImpl.
-	 */
-	private static String makeRelative(IPath toRel, IPath base) {
-		int i = base.matchingFirstSegments(toRel);
-		if (i == 0) {
-			return toRel.toOSString();
-		}
-		String result = "";
-		for (int j = 0; j < (base.segmentCount() - i); j++) {
-			result += ".." + Path.SEPARATOR;
-		}
-		if (i == toRel.segmentCount())
-			return ".";
-		result += toRel.setDevice(null).removeFirstSegments(i).toOSString();
-		return result;
-	}
-
-	/*
-	 * Make the given path absolute to the specified root, if applicable. If not, then
-	 * return the path as-is.
-	 * 
-	 * Method similar to one from SimpleConfigurationManipulatorImpl.
-	 */
-	public static String makeAbsolute(String original, String rootPath) {
-		IPath path = new Path(original);
-		// ensure we have a relative path to start with
-		if (path.isAbsolute())
-			return original;
-		IPath root = new Path(rootPath);
-		return root.addTrailingSeparator().append(original.replace(':', '}')).toOSString().replace('}', ':');
-	}
-
-	public static String makeAbsolute(String urlString, URL rootURL) {
-		// we only traffic in file: URLs
-		int index = urlString.indexOf(FILE_PROTOCOL);
-		if (index == -1)
-			return urlString;
-		index = index + 5;
-
-		// ensure we have a relative path to start with
-		boolean done = false;
-		URL url = null;
-		String file = urlString;
-		while (!done) {
-			try {
-				url = new URL(file);
-				file = url.getFile();
-			} catch (java.net.MalformedURLException e) {
-				done = true;
-			}
-		}
-		if (url == null || new File(url.getFile()).isAbsolute())
-			return urlString;
-
-		return urlString.substring(0, index - 5) + makeAbsolute(urlString.substring(index), rootURL.toExternalForm());
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/XMLWriter.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/XMLWriter.java
deleted file mode 100644
index 9b86646..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/XMLWriter.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.update;
-
-import java.io.*;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * A simple XML writer.
- * 
- * Copied from the org.eclipse.core.resources bundle.
- */
-public class XMLWriter extends PrintWriter {
-	protected int tab;
-
-	/* constants */
-	protected static final String XML_VERSION = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; //$NON-NLS-1$
-
-	public XMLWriter(OutputStream output) throws UnsupportedEncodingException {
-		super(new OutputStreamWriter(output, "UTF8")); //$NON-NLS-1$
-		tab = 0;
-		println(XML_VERSION);
-	}
-
-	public void endTag(String name) {
-		tab--;
-		printTag('/' + name, null);
-	}
-
-	public void printSimpleTag(String name, Object value) {
-		if (value != null) {
-			printTag(name, null, true, false);
-			print(getEscaped(String.valueOf(value)));
-			printTag('/' + name, null, false, true);
-		}
-	}
-
-	public void printTabulation() {
-		for (int i = 0; i < tab; i++)
-			super.print('\t');
-	}
-
-	public void printTag(String name, Map parameters) {
-		printTag(name, parameters, true, true);
-	}
-
-	public void printTag(String name, Map parameters, boolean shouldTab, boolean newLine) {
-		StringBuffer sb = new StringBuffer();
-		sb.append("<"); //$NON-NLS-1$
-		sb.append(name);
-		if (parameters != null)
-			for (Iterator it = parameters.keySet().iterator(); it.hasNext();) {
-				sb.append(" "); //$NON-NLS-1$
-				String key = (String) it.next();
-				sb.append(key);
-				sb.append("=\""); //$NON-NLS-1$
-				sb.append(getEscaped(String.valueOf(parameters.get(key))));
-				sb.append("\""); //$NON-NLS-1$
-			}
-		sb.append(">"); //$NON-NLS-1$
-		if (shouldTab)
-			printTabulation();
-		if (newLine)
-			println(sb.toString());
-		else
-			print(sb.toString());
-	}
-
-	public void startTag(String name, Map parameters) {
-		startTag(name, parameters, true);
-	}
-
-	public void startTag(String name, Map parameters, boolean newLine) {
-		printTag(name, parameters, true, newLine);
-		tab++;
-	}
-
-	private static void appendEscapedChar(StringBuffer buffer, char c) {
-		String replacement = getReplacement(c);
-		if (replacement != null) {
-			buffer.append('&');
-			buffer.append(replacement);
-			buffer.append(';');
-		} else {
-			buffer.append(c);
-		}
-	}
-
-	public static String getEscaped(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;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.classpath b/bundles/org.eclipse.equinox.p2.touchpoint.natives/.classpath
deleted file mode 100644
index 7cdeb73..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.project b/bundles/org.eclipse.equinox.p2.touchpoint.natives/.project
deleted file mode 100644
index cafa805..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.touchpoint.natives</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 78523cd..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,331 +0,0 @@
-#Thu Aug 16 11:00:59 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 6eacd08..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:59:07 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 7913d20..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.touchpoint.natives/META-INF/MANIFEST.MF
deleted file mode 100644
index 4844f0f..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.touchpoint.natives;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.touchpoint.natives.Activator
-Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.location,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.osgi.service.datalocation;version="1.0.0",
- org.eclipse.osgi.util;version="1.0.0",
- org.osgi.framework;version="1.3.0",
- org.osgi.util.tracker;version="1.3.3"
-Eclipse-LazyStart: true
-Require-Bundle: org.eclipse.equinox.common
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Export-Package: org.eclipse.equinox.internal.p2.touchpoint.natives;x-internal:=true
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/about.html b/bundles/org.eclipse.equinox.p2.touchpoint.natives/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/build.properties b/bundles/org.eclipse.equinox.p2.touchpoint.natives/build.properties
deleted file mode 100644
index 4bbd9bd..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.properties b/bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.properties
deleted file mode 100644
index ffa4396..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Native Touchpoint (Incubation)
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.xml b/bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.xml
deleted file mode 100644
index 8aa8e3e..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/plugin.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<plugin>
-	<extension point="org.eclipse.equinox.p2.engine.touchpoints" id="native" name="Native Touchpoint">
-		<touchpoint 
-			type="org.eclipse.equinox.p2.native" 
-			class="org.eclipse.equinox.internal.p2.touchpoint.natives.NativeTouchpoint"
-			version="1.0.0"/>
-	</extension>
-</plugin>
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Activator.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Activator.java
deleted file mode 100644
index f454618..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Activator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.natives;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-	public static final String ID = "org.eclipse.equinox.p2.touchpoint.native"; //$NON-NLS-1$
-	private static BundleContext context = null;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext aContext) throws Exception {
-		Activator.context = aContext;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext aContext) throws Exception {
-		context = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/BackupFiles.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/BackupFiles.java
deleted file mode 100644
index f878e29..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/BackupFiles.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.natives;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import java.util.zip.*;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.osgi.util.NLS;
-
-public class BackupFiles {
-
-	private static final String ZIP_SUFFIX = ".zip"; //$NON-NLS-1$
-	private static final String PROPERTIES_SUFFIX = ".properties"; //$NON-NLS-1$
-
-	private final File backupDir;
-	private boolean doBackup;
-
-	/**
-	 * Save or restore backups of files in backupDir
-	 */
-	public BackupFiles(File backupDir) {
-		this.doBackup = true;
-		this.backupDir = backupDir;
-		this.backupDir.mkdirs();
-	}
-
-	//    /**
-	//     * If doBackup is set to false, files are deleted on uninstall, instead of restored.
-	//     */
-	//    public void setDoBackup(boolean doBackup) {
-	//        this.doBackup = doBackup;
-	//    }
-
-	/**
-	 * Restore all backups made in this dir.
-	 */
-	public void restore(IProgressMonitor monitor) throws IOException {
-		// find backup properties files, do in reverse order
-		List propsFiles = new LinkedList();
-		for (int i = 0;; i += 1) {
-			File propsFile = getBackupProperties(i);
-			if (!propsFile.exists()) {
-				break;
-			}
-			propsFiles.add(0, propsFile);
-		}
-		IProgressMonitor[] pm = Util.splitProgressMonitor(monitor, propsFiles.size());
-		int j = 0;
-		for (Iterator i = propsFiles.iterator(); i.hasNext();) {
-			File propsFile = (File) i.next();
-			restoreFilesFromBackup(propsFile, pm[j++]);
-		}
-		if (!this.backupDir.delete()) {
-			//not empty?  log a warning?
-		} else {
-			// delete the parent if empty
-			this.backupDir.getParentFile().delete();
-		}
-		monitor.done();
-	}
-
-	/**
-	 * Find files under outputDir that will be overwritten in unzipURL
-	 * and save under backupDir, and delete.
-	 * Include properties file to indicate files to delete or restore on rolled back.
-	 * The progress monitor is used only to display sub-tasks; we don't update it otherwise.
-	 */
-	public void backupFilesInZip(String identifier, URL zipURL, File outputDir, IProgressMonitor monitor) throws IOException {
-		BackupProperties backupProps = new BackupProperties(identifier, outputDir);
-		ZipOutputStream zos = null;
-		String prevDir = null;
-		try {
-			ZipInputStream in = new ZipInputStream(zipURL.openStream());
-			ZipEntry ze;
-			while ((ze = in.getNextEntry()) != null) {
-				String name = ze.getName();
-				int i = name.lastIndexOf('/');
-				if (i != -1) {
-					String dir = name.substring(0, i);
-					if (this.doBackup && !dir.equals(prevDir)) {
-						monitor.subTask(name.substring(0, i));
-						prevDir = dir;
-					}
-				}
-				if (!ze.isDirectory()) {
-					File origFile = new File(outputDir, name);
-					if (this.doBackup && origFile.exists()) {
-						if (zos == null) {
-							File zipFile = backupProps.getArchive();
-							zos = new ZipOutputStream(new FileOutputStream(zipFile));
-						}
-						ZipEntry zipEntry = new ZipEntry(name);
-						zipEntry.setTime(origFile.lastModified());
-						zos.putNextEntry(zipEntry);
-						FileUtils.copyStream(new FileInputStream(origFile), true, zos, false);
-						zos.closeEntry();
-					} else {
-						backupProps.addFileToDelete(name);
-					}
-					origFile.delete();
-				}
-				in.closeEntry();
-			}
-			in.close();
-		} finally {
-			backupProps.store();
-			if (zos != null) {
-				zos.close();
-			}
-		}
-	}
-
-	private void restoreFilesFromBackup(File propsFile, IProgressMonitor monitor) throws IOException {
-		BackupProperties backupProps = new BackupProperties(propsFile);
-		monitor.beginTask(NLS.bind(Messages.restoring, propsFile.toString()), 3);
-		monitor.subTask("");
-		for (Iterator i = backupProps.getFilesToDelete().iterator(); i.hasNext();) {
-			String name = (String) i.next();
-			File full = new File(backupProps.getRootDir(), name);
-			full.delete();
-		}
-		monitor.worked(1);
-		File zipFile = backupProps.getArchive();
-		if (zipFile.exists()) { // only exists if files were saved
-			SubProgressMonitor sub = new SubProgressMonitor(monitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
-			FileUtils.unzipFile(zipFile, backupProps.getRootDir(), "", sub);
-			zipFile.delete();
-		} else {
-			monitor.worked(1);
-		}
-		for (Iterator i = backupProps.getDirsToDelete().iterator(); i.hasNext();) {
-			String name = (String) i.next();
-			File full = new File(backupProps.getRootDir(), name);
-			FileUtils.deleteEmptyDirs(full);
-		}
-		propsFile.delete();
-		monitor.worked(1);
-		monitor.done();
-	}
-
-	// Backup files are just 0.properties, 1.properties, etc.
-	// Get the next unused one.
-	private File getBackupProperties() {
-		for (int i = 0;; i += 1) {
-			File result = getBackupProperties(i);
-			if (!result.exists())
-				return result;
-		}
-	}
-
-	private File getBackupProperties(int i) {
-		return new File(BackupFiles.this.backupDir, Integer.toString(i) + PROPERTIES_SUFFIX);
-	}
-
-	private class BackupProperties extends Properties {
-		private static final long serialVersionUID = 2268313492348533029L;
-		private static final char FILE_KIND = 'f';
-		private static final char DIR_KIND = 'd';
-		private static final String ROOT_DIR = "rootDir"; //$NON-NLS-1$
-		private static final String ARTIFACT_KEY = "artifactKey"; //$NON-NLS-1$
-		//		private static final String ARTIFACT_USER = "artifactUser"; //$NON-NLS-1$
-
-		private int n = 0; // number of properties
-		private File file; // file to store properties in
-		private List keys = new LinkedList(); // keys, in order they were added or read
-		private final File rootDir; // root of where files are going
-		private Set dirsToCreate = new TreeSet(); // set of dirs we will create
-
-		// create properties based on file we are backing up to
-		public BackupProperties(String identifier, File rootDir) {
-			this.file = BackupFiles.this.getBackupProperties();
-			this.rootDir = rootDir;
-			setProperty(ROOT_DIR, rootDir.getPath().replace('\\', '/'));
-			setProperty(ARTIFACT_KEY, (identifier != null ? identifier : rootDir.getAbsolutePath()));
-			//			setProperty(ARTIFACT_USER, artifact.toUserString());
-			// make sure rootDir is deleted if appropriate
-			addDir("./"); //$NON-NLS-1$
-		}
-
-		// create backup properties from a previously saved BackupProperties
-		public BackupProperties(File file) throws IOException {
-			this.file = file;
-			FileInputStream stream = new FileInputStream(file);
-			try {
-				load(stream);
-			} finally {
-				stream.close();
-			}
-			this.rootDir = new File(getProperty(ROOT_DIR));
-		}
-
-		//		public String getArtifactKey() {
-		//			return getProperty(ARTIFACT_KEY);
-		//		}
-
-		//		public String getArtifactUserString() {
-		//			String result = getProperty(ARTIFACT_USER);
-		//			if (result != null) {
-		//				return result;
-		//			} else {
-		//				// return something if the key wasn't saved
-		//				result = getArtifactKey();
-		//				result = result.replaceFirst(",native,", ","); //$NON-NLS-1$ //$NON-NLS-2$
-		//				return result.replace(',', ' ').trim();
-		//			}
-		//		}
-
-		public File getRootDir() {
-			return this.rootDir;
-		}
-
-		// We are backing up files for this artifact.
-		// Create a backup zip based on the artifact key (as a hint).
-		public File getArchive() {
-			String path = this.file.getPath();
-			if (path.endsWith(PROPERTIES_SUFFIX)) {
-				path = path.substring(0, path.length() - PROPERTIES_SUFFIX.length());
-			}
-			return new File(path + ZIP_SUFFIX);
-		}
-
-		public List getFilesToDelete() {
-			return getMatchingProperties(FILE_KIND);
-		}
-
-		public List getDirsToDelete() {
-			return getMatchingProperties(DIR_KIND);
-		}
-
-		private List getMatchingProperties(char c) {
-			List result = new LinkedList();
-			for (Enumeration e = propertyNames(); e.hasMoreElements();) {
-				String key = (String) e.nextElement();
-				if (key.equals(BackupProperties.ROOT_DIR)) {
-					continue;
-				}
-				if (key.charAt(0) == c) {
-					result.add(getProperty(key));
-				}
-			}
-			return result;
-		}
-
-		public void addFileToDelete(String name) {
-			add(FILE_KIND, name);
-			addDir(name);
-		}
-
-		public void store() throws IOException {
-			// add the directories -- at end because we want them all in order
-			for (Iterator i = this.dirsToCreate.iterator(); i.hasNext();) {
-				String name = (String) i.next();
-				add(DIR_KIND, name);
-			}
-			FileOutputStream stream = new FileOutputStream(this.file);
-			try {
-				store(stream, /*header*/null);
-			} finally {
-				stream.close();
-			}
-		}
-
-		public Object put(Object key, Object value) {
-			if (!(key instanceof String))
-				throw new AssertionError("expected String: " + key); //$NON-NLS-1$
-			if (!(value instanceof String))
-				throw new AssertionError("expected String: " + value); //$NON-NLS-1$
-			this.keys.add(key);
-			return super.put(key, value);
-		}
-
-		// return keys in the order they were added
-		public synchronized Enumeration keys() {
-			final Iterator iterator = this.keys.iterator();
-			return new Enumeration() {
-				public boolean hasMoreElements() {
-					return iterator.hasNext();
-				}
-
-				public Object nextElement() {
-					return iterator.next();
-				}
-			};
-		}
-
-		private void add(char kind, String name) {
-			StringBuffer key = new StringBuffer(4);
-			key.append(kind).append(n++);
-			setProperty(key.toString(), name.replace('\\', '/'));
-		}
-
-		// if we're going to create this dir, remember that so we delete it
-		private void addDir(String name) {
-			int slash = name.lastIndexOf('/');
-			if (slash == -1)
-				return; // no dir
-			String dirName = name.substring(0, slash);
-			if (this.dirsToCreate.contains(dirName))
-				return; // already have it
-			if (new File(this.rootDir, dirName).exists())
-				return; // already exists
-			this.dirsToCreate.add(dirName);
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Messages.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Messages.java
deleted file mode 100644
index 7ec1e92..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Messages.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.natives;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.equinox.internal.p2.touchpoint.natives.messages"; //$NON-NLS-1$
-
-	static {
-		// load message values from bundle file and assign to fields below
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String unzipping;
-	public static String restoring;
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/NativeTouchpoint.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/NativeTouchpoint.java
deleted file mode 100644
index bbf5942..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/NativeTouchpoint.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.natives;
-
-import java.io.File;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.p2.engine.Profile;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation;
-import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.*;
-import org.osgi.framework.Version;
-
-public class NativeTouchpoint extends Touchpoint {
-	private static final String ID = "org.eclipse.equinox.p2.touchpoint.natives"; //$NON-NLS-1$
-
-	protected static IStatus createError(String message) {
-		return new Status(IStatus.ERROR, ID, message);
-	}
-
-	public ProvisioningAction getAction(String actionId) {
-		if (actionId.equals("collect")) {
-			return new ProvisioningAction() {
-				public IStatus execute(Map parameters) {
-					IProfile profile = (IProfile) parameters.get("profile");
-					InstallableUnitOperand operand = (InstallableUnitOperand) parameters.get("operand");
-					try {
-						IArtifactRequest[] requests = collect(operand.second(), profile);
-						Collection artifactRequests = (Collection) parameters.get("artifactRequests");
-						artifactRequests.add(requests);
-					} catch (ProvisionException e) {
-						return e.getStatus();
-					}
-					return Status.OK_STATUS;
-				}
-
-				public IStatus undo(Map parameters) {
-					// nothing to do for now
-					return Status.OK_STATUS;
-				}
-			};
-		}
-
-		if (actionId.equals("unzip")) {
-			return new ProvisioningAction() {
-				public IStatus execute(Map parameters) {
-					return unzip(parameters);
-				}
-
-				public IStatus undo(Map parameters) {
-					return cleanupzip(parameters);
-				}
-			};
-		}
-		if (actionId.equals("cleanupzip")) {
-			return new ProvisioningAction() {
-				public IStatus execute(Map parameters) {
-					return cleanupzip(parameters);
-				}
-
-				public IStatus undo(Map parameters) {
-					return unzip(parameters);
-				}
-			};
-		}
-
-		if (actionId.equals("chmod")) {
-			return new ProvisioningAction() {
-				public IStatus execute(Map parameters) {
-					String targetDir = (String) parameters.get("targetDir");
-					if (targetDir == null)
-						return createError("The \"targetDir\" parameter was not set in the \"chmod\" action.");
-					String targetFile = (String) parameters.get("targetFile");
-					if (targetFile == null)
-						return createError("The \"targetFile\" parameter was not set in the \"chmod\" action.");
-					String permissions = (String) parameters.get("permissions");
-					if (permissions == null)
-						return createError("The \"permissions\" parameter was not set in the \"chmod\" action");
-
-					new Permissions().chmod(targetDir, targetFile, permissions);
-					return Status.OK_STATUS;
-				}
-
-				public IStatus undo(Map parameters) {
-					//TODO: implement undo ??
-					return Status.OK_STATUS;
-				}
-			};
-		}
-
-		return null;
-	}
-
-	public TouchpointType getTouchpointType() {
-		return MetadataFactory.createTouchpointType("org.eclipse.equinox.p2.native", new Version(1, 0, 0));
-	}
-
-	IArtifactRequest[] collect(IInstallableUnit installableUnit, IProfile profile) throws ProvisionException {
-		IArtifactKey[] toDownload = installableUnit.getArtifacts();
-		if (toDownload == null)
-			return new IArtifactRequest[0];
-		IArtifactRepository destination = getDownloadCacheRepo();
-		IArtifactRequest[] requests = new IArtifactRequest[toDownload.length];
-		int count = 0;
-		for (int i = 0; i < toDownload.length; i++) {
-			//TODO Here there are cases where the download is not necessary again because what needs to be done is just a configuration step
-			requests[count++] = getArtifactRepositoryManager().createMirrorRequest(toDownload[i], destination);
-		}
-
-		if (requests.length == count)
-			return requests;
-		IArtifactRequest[] result = new IArtifactRequest[count];
-		System.arraycopy(requests, 0, result, 0, count);
-		return result;
-	}
-
-	private String getInstallFolder(IProfile profile) {
-		return profile.getProperty(IProfile.PROP_INSTALL_FOLDER);
-	}
-
-	private static AgentLocation getAgentLocation() {
-		return (AgentLocation) ServiceHelper.getService(Activator.getContext(), AgentLocation.class.getName());
-	}
-
-	static private IArtifactRepositoryManager getArtifactRepositoryManager() {
-		return (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
-	}
-
-	static private IFileArtifactRepository getDownloadCacheRepo() throws ProvisionException {
-		URL location = getDownloadCacheLocation();
-		if (location == null)
-			throw new IllegalStateException("Could not obtain the download cache location.");
-		IArtifactRepositoryManager manager = getArtifactRepositoryManager();
-		if (manager == null)
-			throw new IllegalStateException("The artifact repository manager could not be found.");
-		IArtifactRepository repository;
-		try {
-			repository = manager.loadRepository(location, null);
-		} catch (ProvisionException e) {
-			// the download cache doesn't exist or couldn't be read. Create new cache.
-			String repositoryName = location + " - Agent download cache"; //$NON-NLS-1$
-			repository = manager.createRepository(location, repositoryName, IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY);
-			manager.addRepository(repository.getLocation());
-			repository.setProperty(IRepository.PROP_SYSTEM, Boolean.TRUE.toString());
-		}
-
-		IFileArtifactRepository downloadCache = (IFileArtifactRepository) repository.getAdapter(IFileArtifactRepository.class);
-		if (downloadCache == null)
-			throw new ProvisionException("Agent download cache not writeable: " + location);
-		return downloadCache;
-	}
-
-	static private URL getDownloadCacheLocation() {
-		AgentLocation location = getAgentLocation();
-		return (location != null ? location.getArtifactRepositoryURL() : null);
-	}
-
-	public IStatus initializePhase(IProgressMonitor monitor, IProfile profile, String phaseId, Map touchpointParameters) {
-		touchpointParameters.put("installFolder", getInstallFolder(profile));
-		return null;
-	}
-
-	IStatus unzip(Map parameters) {
-		String source = (String) parameters.get("source");
-		if (source == null)
-			return createError("The \"source\" parameter was not set in the \"unzip\" action.");
-
-		String originalSource = source;
-		String target = (String) parameters.get("target");
-		if (target == null)
-			return createError("The \"target\" parameter was not set in the \"unzip\" action.");
-
-		IInstallableUnit iu = (IInstallableUnit) parameters.get("iu");
-		Profile profile = (Profile) parameters.get("profile");
-
-		if (source.equals("@artifact")) {
-			//TODO: fix wherever this occurs -- investigate as this is probably not desired
-			if (iu.getArtifacts() == null || iu.getArtifacts().length == 0)
-				return Status.OK_STATUS;
-
-			IArtifactKey artifactKey = iu.getArtifacts()[0];
-
-			IFileArtifactRepository downloadCache;
-			try {
-				downloadCache = getDownloadCacheRepo();
-			} catch (ProvisionException e) {
-				return e.getStatus();
-			}
-			File fileLocation = downloadCache.getArtifactFile(artifactKey);
-			if ((fileLocation == null) || !fileLocation.exists())
-				return createError("The artifact for " + artifactKey + " is not available");
-			source = fileLocation.getAbsolutePath();
-		}
-
-		File[] unzippedFiles = new Zip().unzip(source, target, null);
-		StringBuffer unzippedFileNameBuffer = new StringBuffer();
-		for (int i = 0; i < unzippedFiles.length; i++)
-			unzippedFileNameBuffer.append(unzippedFiles[i].getAbsolutePath()).append("|");
-
-		profile.setInstallableUnitProperty(iu, "unzipped" + "|" + originalSource + "|" + target, unzippedFileNameBuffer.toString());
-
-		return Status.OK_STATUS;
-	}
-
-	protected IStatus cleanupzip(Map parameters) {
-		String source = (String) parameters.get("source");
-		if (source == null)
-			return createError("The \"source\" parameter was not set in the \"cleanupzip\" action.");
-		String target = (String) parameters.get("target");
-		if (target == null)
-			return createError("The \"target\" parameter was not set in the \"cleanupzip\" action.");
-
-		IInstallableUnit iu = (IInstallableUnit) parameters.get("iu");
-		IProfile profile = (IProfile) parameters.get("profile");
-
-		String unzipped = profile.getInstallableUnitProperty(iu, "unzipped" + "|" + source + "|" + target);
-
-		if (unzipped == null)
-			return Status.OK_STATUS;
-
-		StringTokenizer tokenizer = new StringTokenizer(unzipped, "|");
-		List directories = new ArrayList();
-		while (tokenizer.hasMoreTokens()) {
-			String fileName = tokenizer.nextToken();
-			File file = new File(fileName);
-			if (!file.exists())
-				continue;
-
-			if (file.isDirectory())
-				directories.add(file);
-			else
-				file.delete();
-		}
-
-		for (Iterator it = directories.iterator(); it.hasNext();) {
-			File directory = (File) it.next();
-			directory.delete();
-		}
-
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Permissions.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Permissions.java
deleted file mode 100644
index 98bdcdf..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Permissions.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Red Hat Incorporated
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Red Hat Incorporated - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.natives;
-
-import java.io.IOException;
-import org.eclipse.core.runtime.IPath;
-
-public class Permissions {
-	public void chmod(String targetDir, String targetFile, String perms) {
-		Runtime r = Runtime.getRuntime();
-		try {
-			r.exec("chmod " + perms + " " + targetDir + IPath.SEPARATOR + targetFile);
-		} catch (IOException e) {
-			// FIXME:  we should probably throw some sort of error here
-		}
-	}
-
-	public void chmod(String target, String targetFile, int perms) {
-		chmod(target, targetFile, Integer.toString(perms));
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java
deleted file mode 100644
index 04ae8a0..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.natives;
-
-import org.eclipse.core.runtime.*;
-
-public class Util {
-
-	public static void log(String msg) {
-		log(new Status(IStatus.OK, Activator.ID, IStatus.OK, msg, null));
-	}
-
-	public static void log(IStatus status) {
-		System.out.println(Util.class.getName() + " " + status);
-	}
-
-	public static CoreException coreException(String msg) {
-		return new CoreException(errorStatus(msg, null));
-	}
-
-	public static CoreException coreException(Throwable e, String msg) {
-		return new CoreException(errorStatus(msg, e));
-	}
-
-	public static IStatus errorStatus(String msg, Throwable e) {
-		return new Status(IStatus.ERROR, Activator.ID, IStatus.OK, msg, e);
-	}
-
-	/**
-	 * Split monitor into n equal sub-monitors and return them.
-	 * This calls beginTask on monitor and assigns all its time to the sub-monitors.
-	 * monitor may be null.
-	 */
-	public static IProgressMonitor[] splitProgressMonitor(IProgressMonitor monitor, int n) {
-		if (monitor == null || monitor instanceof NullProgressMonitor) {
-			monitor = null;
-		} else {
-			monitor.beginTask("", n);
-		}
-		IProgressMonitor[] result = new IProgressMonitor[n];
-		for (int i = 0; i < n; i += 1) {
-			result[i] = createSubProgressMonitor(monitor, 1);
-		}
-		return result;
-	}
-
-	private static IProgressMonitor createSubProgressMonitor(IProgressMonitor monitor, int ticks) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		else
-			return new SubProgressMonitor(monitor, ticks, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Zip.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Zip.java
deleted file mode 100644
index 3add7ce..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Zip.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.touchpoint.natives;
-
-import java.io.File;
-import java.io.IOException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
-import org.eclipse.osgi.util.NLS;
-
-//TODO Be careful here with the permissions.... We may need to have a proper unzip technology here that supports file permissions for linux
-public class Zip {
-	public File[] unzip(String source, String destination, String backupDir) {
-		//		IArtifact artifact = data.getArtifact();
-		//		String destination = performVariableSubstitutions(data.getDestination());
-		//		if (canInstallArtifact()) {
-		//TODO if artifact has isExploded==true should pass in progress monitor
-		// for unzipping
-		File zipFile = new File(source);
-		if (zipFile == null || !zipFile.exists()) {
-			// internal error?
-			System.out.println(this.getClass().getName() + " the files to be unzipped is not here");
-			//			throw Util.coreException(null, NLS.bind(Messages.failed_to_download_artifact, source));
-		}
-
-		//		IProgressMonitor[] pm =  new SplitProgressMonitor(new NullProgressMonitor(), 2);
-		//		IProgressMonitor backupPM = pm[0];
-		//		IProgressMonitor unzipPM = pm[1];
-		try {
-			// Set Destination location
-			//			Path destPath = new Path(destination);
-			//			if (destPath.isAbsolute()) {
-			//				destinationDir = destPath.toFile();
-			//			} else {
-			//				destinationDir = new File(getLocation(Profile.INSTALL_LOCATION));
-			//				if (!destination.equals(".")) { //$NON-NLS-1$
-			//					destinationDir = new File(destinationDir, destination);
-			//				}
-			//			}
-
-			if (backupDir != null) {
-				try {
-					//				backupPM.beginTask(Messages.backing_up, 1);
-					BackupFiles backupFiles = new BackupFiles(new File(backupDir));
-					backupFiles.backupFilesInZip(backupDir, zipFile.toURL(), new File(destination), null);
-				} catch (IOException e) {
-					System.out.println(this.getClass().getName() + " something went wrong when backing up the files");
-					e.printStackTrace();
-					//				throw Util.coreException(e, NLS.bind(Messages.error_backing_up, zipFile));
-				} finally {
-					//				backupPM.done();
-				}
-			}
-			try {
-				String taskName = NLS.bind(Messages.unzipping, source);
-				return FileUtils.unzipFile(zipFile, new File(destination), taskName, new NullProgressMonitor());
-			} catch (IOException e) {
-				System.out.println(this.getClass().getName() + " something went wrong when unzipping");
-				System.out.println("zipfile: " + zipFile.getAbsolutePath());
-				System.out.println("destination: " + destination);
-				e.printStackTrace();
-				//				throw Util.coreException(e.getMessage());
-			} finally {
-				//				unzipPM.done();
-			}
-		} finally {
-			//			monitor.done();
-		}
-		//		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/messages.properties b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/messages.properties
deleted file mode 100644
index 15e212e..0000000
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/messages.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# NativeInstallAdapter
-restoring=Restoring {0}
-
-# Util
-unzipping=Extracting {0}
-
-
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch b/bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch
index e174132..191ce1a 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch
+++ b/bundles/org.eclipse.equinox.p2.ui.admin.rcp/ProvAdminUI.launch
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
 <booleanAttribute key="append.args" value="true"/>
 <booleanAttribute key="automaticAdd" value="false"/>
@@ -17,9 +17,9 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <booleanAttribute key="restart" value="false"/>
 <booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="org.eclipse.core.commands*3.4.0.I20080324-1800@default:default,org.eclipse.equinox.registry*3.4.0.v20080316@default:default,org.eclipse.ant.core*3.2.0.v20080319@default:default,org.eclipse.core.jobs*3.4.0.v20080310@default:default,org.eclipse.help*3.3.100.v20080320@default:default,org.eclipse.core.databinding*1.1.0.I20080325-0100@default:default,org.eclipse.swt*3.4.0.v3436a@default:default,org.eclipse.swt.win32.win32.x86*3.4.0.v3436@default:false,org.eclipse.jface*3.4.0.I20080328-1206@default:default,org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,org.eclipse.core.expressions*3.4.0.v20080327-1300@default:default,org.eclipse.core.variables*3.2.100.v20080324-1600@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default,org.eclipse.osgi*3.4.0.v20080326@:,org.eclipse.ui*3.4.0.I20080328-1206@default:default,org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,org.eclipse.ui.workbench*3.4.0.I20080328-1206@default:default,com.ibm.icu*3.8.1.v20080304@default:default,org.eclipse.core.runtime.compatibility.registry*3.2.200.v20070717@default:false,org.eclipse.core.runtime*3.4.0.v20080324-1725@default:true,org.eclipse.jface.databinding*1.2.0.I20080325-0100@default:default,org.eclipse.equinox.security*1.0.0.v20080327-1000@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default,org.eclipse.equinox.security.win32.x86*1.0.0.v20080324@default:false,org.eclipse.core.runtime.compatibility.auth*3.2.100.v20070502@default:default"/>
+<stringAttribute key="target_bundles" value="org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,org.eclipse.core.databinding*1.1.0.I20080304-0800@default:default,org.eclipse.equinox.registry*3.4.0.v20080201@default:default,org.eclipse.equinox.common*3.4.0.v20080201@default:default,org.eclipse.equinox.launcher.win32.win32.x86*1.0.100.v20080201a@default:false,org.eclipse.jface.databinding*1.2.0.I20080304-0800@default:default,org.eclipse.ui*3.4.0.I20080304-0800@default:default,org.eclipse.core.commands*3.4.0.I20080304-0800@default:default,org.eclipse.ant.core*3.2.0.v20080303@default:default,org.eclipse.core.runtime.compatibility.auth*3.2.100.v20070502@default:default,org.eclipse.jface*3.4.0.I20080304-0800@default:default,org.eclipse.core.contenttype*3.3.0.v20080201@default:default,org.eclipse.core.runtime.compatibility.registry*3.2.200.v20070717@default:false,org.eclipse.equinox.app*1.0.100.v20080303@default:true,org.eclipse.core.variables*3.2.0.v20070910@default:default,org.eclipse.help*3.3.100.v20080303@default:default,org.eclipse.osgi.services*3.1.200.v20071203@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default,org.eclipse.core.runtime*3.4.0.v20080303@default:default,org.eclipse.core.net*1.0.100.I20080226@default:default,org.eclipse.swt.win32.win32.x86*3.4.0.v3432@default:false,org.eclipse.core.expressions*3.4.0.v20080304-0800@default:default,org.eclipse.equinox.preferences*3.2.200.v20080201@default:default,org.eclipse.osgi*3.4.0.v20080304@:,org.eclipse.ui.workbench*3.4.0.I20080304-0800@default:default,org.eclipse.swt*3.4.0.v3432@default:default,com.ibm.icu*3.8.1.v20080103@default:default,org.eclipse.core.jobs*3.3.100.v20080224@default:default,org.eclipse.equinox.launcher*1.0.100.v20080303@default:default"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useDefaultConfigArea" value="true"/>
 <booleanAttribute key="useNamedJRE" value="false"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.ecf.identity*1.3.0.qualifier@default:default,org.eclipse.equinox.app*1.0.100.qualifier@default:default,org.eclipse.equinox.simpleconfigurator*0.1.0.qualifier@1:true,org.eclipse.equinox.p2.ui.admin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.sar*0.1.0@default:default,org.eclipse.equinox.common*3.4.0.qualifier@default:default,org.eclipse.equinox.p2.touchpoint.natives*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.updatesite*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.processors*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.ecf*1.4.0.qualifier@default:default,org.eclipse.equinox.p2.ui.admin.rcp*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.console*0.1.0.qualifier@default:true,org.eclipse.equinox.simpleconfigurator.manipulator*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.jarprocessor*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.director*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata.generator*0.1.0.qualifier@default:default,ie.wombat.jbdiff*0.1.0.1@default:default,org.eclipse.equinox.p2.artifact.optimizers*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.garbagecollector*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.touchpoint.eclipse*0.1.0.qualifier@default:default,org.sat4j.core*2.0.0.v20080307@default:default,org.eclipse.equinox.p2.updatechecker*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.ui.sdk*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.ui*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.exemplarysetup*0.1.0.qualifier@default:true,org.sat4j.pb*2.0.0.v20080307@default:default"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.ecf.identity*1.3.0.qualifier@default:default,org.eclipse.equinox.p2.jarprocessor*0.1.0.qualifier@default:default,org.eclipse.equinox.simpleconfigurator.manipulator*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.touchpoint.natives*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin.equinox*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.director*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.sar*0.1.0@default:default,ie.wombat.jbdiff*0.1.0.1@default:default,org.eclipse.equinox.p2.exemplarysetup*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.ui.sdk*0.1.0.qualifier@default:default,org.sat4j.core*2.0.0.v20080307@default:default,org.eclipse.equinox.p2.garbagecollector*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata.generator*0.1.0.qualifier@default:default,org.eclipse.equinox.frameworkadmin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.metadata.repository*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.repository*0.1.0.qualifier@default:default,org.eclipse.ecf.filetransfer*2.0.0.qualifier@default:default,org.eclipse.equinox.p2.touchpoint.eclipse*0.1.0.qualifier@default:default,org.eclipse.ecf*1.4.0.qualifier@default:default,org.eclipse.equinox.p2.ui.admin*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.updatechecker*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.ui.admin.rcp*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.artifact.optimizers*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.core*0.1.0.qualifier@default:default,org.sat4j.pb*2.0.0.v20080307@default:default,org.eclipse.equinox.p2.updatesite*0.1.0.qualifier@default:default,org.eclipse.ecf.provider.filetransfer*1.6.0.qualifier@default:default,org.eclipse.equinox.p2.engine*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.ui*0.1.0.qualifier@default:default,org.eclipse.equinox.p2.console*0.1.0.qualifier@default:true,org.eclipse.equinox.p2.artifact.processors*0.1.0.qualifier@default:default,org.eclipse.equinox.simpleconfigurator*0.1.0.qualifier@1:true,org.eclipse.equinox.p2.metadata*0.1.0.qualifier@default:default"/>
 </launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/.classpath b/bundles/org.eclipse.equinox.p2.updatechecker/.classpath
deleted file mode 100644
index c2ce266..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/.cvsignore b/bundles/org.eclipse.equinox.p2.updatechecker/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/.project b/bundles/org.eclipse.equinox.p2.updatechecker/.project
deleted file mode 100644
index 6e82955..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.updatechecker</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9671331..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,329 +0,0 @@
-#Fri Feb 22 11:15:24 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index dbe72f1..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:59:14 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.pde.core.prefs b/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.pde.core.prefs
deleted file mode 100644
index 6904bd9..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/.settings/org.eclipse.pde.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Sat Aug 11 20:17:52 EDT 2007
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.updatechecker/META-INF/MANIFEST.MF
deleted file mode 100644
index f9a14ab..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.p2.updatechecker;singleton:=true
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Version: 0.1.0.qualifier
-Bundle-Activator: org.eclipse.equinox.internal.p2.updatechecker.Activator
-Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
- org.eclipse.equinox.internal.provisional.p2.artifact.repository,
- org.eclipse.equinox.internal.provisional.p2.core,
- org.eclipse.equinox.internal.provisional.p2.core.repository,
- org.eclipse.equinox.internal.provisional.p2.director,
- org.eclipse.equinox.internal.provisional.p2.engine,
- org.eclipse.equinox.internal.provisional.p2.metadata,
- org.eclipse.equinox.internal.provisional.p2.metadata.query,
- org.eclipse.equinox.internal.provisional.p2.metadata.repository,
- org.eclipse.equinox.internal.provisional.p2.query,
- org.osgi.framework;version="1.4.0"
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
-Export-Package: org.eclipse.equinox.internal.p2.updatechecker;x-internal:=true,
- org.eclipse.equinox.internal.provisional.p2.updatechecker
-Require-Bundle: org.eclipse.equinox.common;bundle-version="[3.3.0,4.0)"
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/about.html b/bundles/org.eclipse.equinox.p2.updatechecker/about.html
deleted file mode 100644
index d62785d..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/about.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-		<h3>Third Party Content</h3>
-		<p>The Content includes items that have been sourced from third parties as set out below. If you 
-		did not receive this Content directly from the Eclipse Foundation, the following is provided 
-		for informational purposes only, and you should look to the Redistributor's license for 
-		terms and conditions of use.</p>
-
-		<h4>FileInstall 1.0</h4> 
-		<p>The bundle includes derivative works of software originally developed by Peter Kriens (aQute).
-		That original work was licensed under the EPL v1.0 and this derivative work is similarly licensed.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/build.properties b/bundles/org.eclipse.equinox.p2.updatechecker/build.properties
deleted file mode 100644
index dc77b9c..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/plugin.properties b/bundles/org.eclipse.equinox.p2.updatechecker/plugin.properties
deleted file mode 100644
index 8065811..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Equinox Provisioning Update Checker (Incubation)
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/Activator.java b/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/Activator.java
deleted file mode 100644
index 9b56f6d..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/Activator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.updatechecker;
-
-import org.eclipse.equinox.internal.provisional.p2.updatechecker.IUpdateChecker;
-import org.osgi.framework.*;
-
-/**
- * Activator class that registers the update checker service.
- */
-public class Activator implements BundleActivator {
-
-	private static BundleContext context;
-	private ServiceRegistration registrationChecker;
-
-	public static BundleContext getContext() {
-		return context;
-	}
-
-	public void start(BundleContext bundleContext) throws Exception {
-		Activator.context = bundleContext;
-		registrationChecker = context.registerService(IUpdateChecker.SERVICE_NAME, new UpdateChecker(), null);
-	}
-
-	public void stop(BundleContext bundleContext) throws Exception {
-		registrationChecker.unregister();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java b/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java
deleted file mode 100644
index 7611262..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/p2/updatechecker/UpdateChecker.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.updatechecker;
-
-import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.engine.*;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.p2.updatechecker.*;
-
-/**
- * Default implementation of {@link IUpdateChecker}.
- * <p>
- * This implementation is not optimized.  It doesn't optimize for multiple
- * polls on the same profile, nor does it cache any info about a profile from
- * poll to poll.
- */
-public class UpdateChecker implements IUpdateChecker {
-	public static boolean DEBUG = false;
-	public static boolean TRACE = false;
-	private HashSet checkers = new HashSet(); // threads
-	IProfileRegistry profileRegistry;
-	IPlanner planner;
-
-	private class UpdateCheckThread extends Thread {
-		boolean done = false;
-		long poll, delay;
-		IUpdateListener listener;
-		String profileId;
-		Query query;
-
-		UpdateCheckThread(String profileId, Query query, long delay, long poll, IUpdateListener listener) {
-			this.poll = poll;
-			this.delay = delay;
-			this.profileId = profileId;
-			this.query = query;
-			this.listener = listener;
-		}
-
-		public void run() {
-			try {
-				if (delay != ONE_TIME_CHECK && delay > 0) {
-					Thread.sleep(delay);
-				}
-				while (!done) {
-
-					log("Checking for updates for " + profileId + " at " + getTimeStamp()); //$NON-NLS-1$ //$NON-NLS-2$
-					IInstallableUnit[] iusWithUpdates = checkForUpdates(profileId, query);
-					if (iusWithUpdates.length > 0) {
-						log("Notifying listener of available updates"); //$NON-NLS-1$
-						UpdateEvent event = new UpdateEvent(profileId, iusWithUpdates);
-						if (!done)
-							listener.updatesAvailable(event);
-					} else {
-						log("No updates were available"); //$NON-NLS-1$
-					}
-					if (delay == ONE_TIME_CHECK || delay <= 0) {
-						done = true;
-					} else {
-						Thread.sleep(poll);
-					}
-				}
-			} catch (InterruptedException e) {
-				// nothing
-			} catch (Exception e) {
-				log("Exception in update check thread", e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.updatechecker.IUpdateChecker#addUpdateCheck(java.lang.String, long, long, org.eclipse.equinox.internal.provisional.p2.updatechecker.IUpdateListener)
-	 */
-	public void addUpdateCheck(String profileId, Query query, long delay, long poll, IUpdateListener listener) {
-		log("Adding update checker for " + profileId + " at " + getTimeStamp()); //$NON-NLS-1$ //$NON-NLS-2$
-		UpdateCheckThread thread = new UpdateCheckThread(profileId, query, delay, poll, listener);
-		checkers.add(thread);
-		thread.start();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.internal.provisional.p2.updatechecker.IUpdateChecker#removeUpdateCheck(org.eclipse.equinox.internal.provisional.p2.updatechecker.IUpdateListener)
-	 */
-	public void removeUpdateCheck(IUpdateListener listener) {
-		Iterator iter = checkers.iterator();
-		while (iter.hasNext()) {
-			UpdateCheckThread thread = (UpdateCheckThread) iter.next();
-			if (thread.listener == listener) {
-				thread.done = true;
-				checkers.remove(thread);
-				break;
-			}
-		}
-	}
-
-	/*
-	 * Return the array of ius in the profile that have updates
-	 * available.
-	 */
-	IInstallableUnit[] checkForUpdates(String profileId, Query query) {
-		IProfile profile = getProfileRegistry().getProfile(profileId);
-		ArrayList iusWithUpdates = new ArrayList();
-		if (profile == null)
-			return new IInstallableUnit[0];
-		ProvisioningContext context = new ProvisioningContext(getAvailableRepositories());
-		if (query == null)
-			query = InstallableUnitQuery.ANY;
-		Iterator iter = profile.query(query, new Collector(), null).iterator();
-		while (iter.hasNext()) {
-			IInstallableUnit iu = (IInstallableUnit) iter.next();
-			IInstallableUnit[] replacements = getPlanner().updatesFor(iu, context, null);
-			if (replacements.length > 0)
-				iusWithUpdates.add(iu);
-		}
-		return (IInstallableUnit[]) iusWithUpdates.toArray(new IInstallableUnit[iusWithUpdates.size()]);
-	}
-
-	/**
-	 * Returns the list of metadata repositories that are currently available.
-	 */
-	private URL[] getAvailableRepositories() {
-		IMetadataRepositoryManager repoMgr = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
-		URL[] repositories = repoMgr.getKnownRepositories(IMetadataRepositoryManager.REPOSITORIES_ALL);
-		ArrayList available = new ArrayList();
-		for (int i = 0; i < repositories.length; i++) {
-			try {
-				repoMgr.loadRepository(repositories[i], null);
-				available.add(repositories[i]);
-			} catch (ProvisionException e) {
-				//ignore unavailable repository
-			}
-		}
-		return (URL[]) available.toArray(new URL[available.size()]);
-	}
-
-	void log(String string, Throwable e) {
-		System.err.println(string + ": " + e); //$NON-NLS-1$
-		if (DEBUG)
-			e.printStackTrace();
-	}
-
-	void log(String string) {
-		if (TRACE)
-			System.out.println(string);
-	}
-
-	String getTimeStamp() {
-		Date d = new Date();
-		SimpleDateFormat df = new SimpleDateFormat("[MM/dd/yy;HH:mm:ss:SSS]"); //$NON-NLS-1$
-		return df.format(d);
-	}
-
-	IPlanner getPlanner() {
-		if (planner == null) {
-			planner = (IPlanner) ServiceHelper.getService(Activator.getContext(), IPlanner.class.getName());
-			if (planner == null) {
-				throw new IllegalStateException("Provisioning system has not been initialized"); //$NON-NLS-1$
-			}
-		}
-		return planner;
-	}
-
-	IProfileRegistry getProfileRegistry() {
-		if (profileRegistry == null) {
-			profileRegistry = (IProfileRegistry) ServiceHelper.getService(Activator.getContext(), IProfileRegistry.class.getName());
-			if (profileRegistry == null) {
-				throw new IllegalStateException("Provisioning system has not been initialized"); //$NON-NLS-1$
-			}
-		}
-		return profileRegistry;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateChecker.java b/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateChecker.java
deleted file mode 100644
index a343d78..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateChecker.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.updatechecker;
-
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-
-/**
- * An UpdateChecker periodically polls for updates to specified profiles and
- * informs listeners if updates are available.  Listeners may then determine
- * whether to retrieve the updates, inform the user, etc.
- */
-public interface IUpdateChecker {
-	public static final String SERVICE_NAME = IUpdateChecker.class.getName();
-	public static long ONE_TIME_CHECK = -1L;
-
-	public abstract void addUpdateCheck(String profileId, Query iusToCheckQuery, long delay, long poll, IUpdateListener listener);
-
-	public abstract void removeUpdateCheck(IUpdateListener listener);
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateListener.java b/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateListener.java
deleted file mode 100644
index 7cde636..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/IUpdateListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.updatechecker;
-
-/**
- * An IUpdateListener informs listeners that an update is available for
- * the specified profile.  Listeners should expect to receive this notification
- * from a background thread.
- */
-public interface IUpdateListener {
-
-	public void updatesAvailable(UpdateEvent event);
-}
diff --git a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/UpdateEvent.java b/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/UpdateEvent.java
deleted file mode 100644
index 187b32c..0000000
--- a/bundles/org.eclipse.equinox.p2.updatechecker/src/org/eclipse/equinox/internal/provisional/p2/updatechecker/UpdateEvent.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.p2.updatechecker;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-
-/**
- * An UpdateEvent describes what IU's have updates for a given profile.
- */
-public class UpdateEvent {
-
-	String profileId;
-	IInstallableUnit[] iusWithUpdates;
-
-	public UpdateEvent(String profileId, IInstallableUnit[] iusWithUpdates) {
-		this.profileId = profileId;
-		this.iusWithUpdates = iusWithUpdates;
-	}
-
-	public IInstallableUnit[] getIUs() {
-		return iusWithUpdates;
-	}
-
-	public String getProfileId() {
-		return profileId;
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.classpath b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.classpath
deleted file mode 100644
index ce0c7a5..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.cvsignore b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.project b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.project
deleted file mode 100644
index ba657ce..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.simpleconfigurator.manipulator</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ffb4d45..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,266 +0,0 @@
-#Wed Jan 23 10:00:33 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=false
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index fe84d45..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:59:48 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/META-INF/MANIFEST.MF
deleted file mode 100644
index 7b80fb6..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %bundleName
-Bundle-SymbolicName: org.eclipse.equinox.simpleconfigurator.manipulator;singleton:=true
-Bundle-Version: 0.1.0.qualifier
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.equinox.internal.simpleconfigurator.manipulator.Activator
-Eclipse-LazyStart: true
-Import-Package: org.eclipse.equinox.internal.frameworkadmin.utils,
- org.eclipse.equinox.internal.provisional.configuratormanipulator,
- org.eclipse.equinox.internal.provisional.frameworkadmin,
- org.osgi.framework;version="1.3.0",
- org.osgi.service.packageadmin;version="1.2.0",
- org.osgi.service.startlevel;version="1.0.0",
- org.osgi.util.tracker
-Bundle-Vendor: %providerName
-Export-Package: org.eclipse.equinox.internal.simpleconfigurator.manipulator;x-friends:="org.eclipse.equinox.p2.touchpoint.eclipse",
- org.eclipse.equinox.internal.simpleconfigurator.utils;x-internal:=true
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.4
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.4.0"
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/about.html b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/build.properties b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/build.properties
deleted file mode 100644
index ac72e5e..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-qualifier=context
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/plugin.properties b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/plugin.properties
deleted file mode 100644
index 62afbdc..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bundleName= Simple Configurator Manipulator
-providerName= Eclipse.org
-
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/Activator.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/Activator.java
deleted file mode 100644
index 651027e..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/Activator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.manipulator;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulator;
-import org.eclipse.equinox.internal.simpleconfigurator.utils.SimpleConfiguratorConstants;
-import org.osgi.framework.*;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class Activator implements BundleActivator {
-	final static boolean DEBUG = true;
-	private static BundleContext context;
-	private static ServiceTracker installLocationTracker;
-	private ServiceRegistration registration;
-	SimpleConfiguratorManipulatorImpl manipulator = null;
-
-	static BundleContext getContext() {
-		return context;
-	}
-
-	private void registerConfiguratorManipulator() {
-		Dictionary props = new Hashtable();
-		props.put(ConfiguratorManipulator.SERVICE_PROP_KEY_CONFIGURATOR_BUNDLESYMBOLICNAME, SimpleConfiguratorConstants.SERVICE_PROP_VALUE_CONFIGURATOR_SYMBOLICNAME);
-		props.put(Constants.SERVICE_VENDOR, "Eclipse.org");
-		manipulator = new SimpleConfiguratorManipulatorImpl();
-		registration = context.registerService(ConfiguratorManipulator.class.getName(), manipulator, props);
-	}
-
-	public void start(BundleContext bundleContext) throws Exception {
-		Activator.context = bundleContext;
-		this.registerConfiguratorManipulator();
-	}
-
-	public void stop(BundleContext bundleContext) throws Exception {
-		if (registration != null)
-			registration.unregister();
-		if (installLocationTracker != null) {
-			installLocationTracker.close();
-			installLocationTracker = null;
-		}
-		Activator.context = null;
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorFactoryImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorFactoryImpl.java
deleted file mode 100644
index 3819aac..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorFactoryImpl.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.manipulator;
-
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulator;
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulatorFactory;
-
-public class SimpleConfiguratorManipulatorFactoryImpl extends ConfiguratorManipulatorFactory {
-
-	protected ConfiguratorManipulator createConfiguratorManipulator() {
-		return new SimpleConfiguratorManipulatorImpl();
-	}
-
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java
deleted file mode 100644
index 72f4a2b..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java
+++ /dev/null
@@ -1,690 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.manipulator;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.equinox.internal.frameworkadmin.utils.Utils;
-import org.eclipse.equinox.internal.provisional.configuratormanipulator.ConfiguratorManipulator;
-import org.eclipse.equinox.internal.provisional.frameworkadmin.*;
-import org.eclipse.equinox.internal.simpleconfigurator.utils.SimpleConfiguratorConstants;
-import org.osgi.framework.Constants;
-
-public class SimpleConfiguratorManipulatorImpl implements ConfiguratorManipulator {
-	class LocationInfo {
-		String[] prerequisiteLocations = null;
-		String systemBundleLocation = null;
-		String[] systemFragmentedBundleLocations = null;
-	}
-
-	private final static boolean DEBUG = false;
-
-	static String CONFIG_LOCATION = SimpleConfiguratorConstants.CONFIG_LIST;
-	private static final String FILE_PROTOCOL = "file:"; //$NON-NLS-1$
-
-	private static final BundleInfo[] NULL_BUNDLEINFOS = new BundleInfo[0];
-
-	private Set manipulators = new HashSet();
-
-	/**	
-	 * Return the ConfiguratorConfigLocation which is determined 
-	 * by the parameters set in Manipulator. 
-	 * 
-	 * @param manipulator
-	 * @return URL
-	 */
-	private static URL getConfigLocation(Manipulator manipulator) throws IllegalStateException {
-		File fwConfigLoc = manipulator.getLauncherData().getFwConfigLocation();
-		File baseDir = null;
-		if (fwConfigLoc == null) {
-			baseDir = manipulator.getLauncherData().getHome();
-			if (baseDir == null) {
-				if (manipulator.getLauncherData().getLauncher() != null) {
-					baseDir = manipulator.getLauncherData().getLauncher().getParentFile();
-				} else {
-					throw new IllegalStateException("All of fwConfigFile, home, launcher are not set.");
-				}
-			}
-		} else {
-			if (fwConfigLoc.exists())
-				if (fwConfigLoc.isDirectory())
-					baseDir = fwConfigLoc;
-				else
-					baseDir = fwConfigLoc.getParentFile();
-			else {
-				// TODO We need to decide whether launcher data configLocation is the location of a file or a directory 
-				if (fwConfigLoc.getName().endsWith(".ini"))
-					baseDir = fwConfigLoc.getParentFile();
-				else
-					baseDir = fwConfigLoc;
-			}
-		}
-		try {
-			baseDir = new File(baseDir, SimpleConfiguratorConstants.CONFIGURATOR_FOLDER);
-			File targetFile = new File(baseDir, SimpleConfiguratorConstants.CONFIG_LIST);
-			try {
-				Utils.createParentDir(targetFile);
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-				return null;
-			}
-			return targetFile.toURL();
-		} catch (MalformedURLException e) {
-			// Never happen. ignore.
-			e.printStackTrace();
-			return null;
-		}
-
-	}
-
-	static boolean isPrerequisiteBundles(String location, LocationInfo info) {
-		boolean ret = false;
-
-		if (info.prerequisiteLocations == null)
-			return false;
-		for (int i = 0; i < info.prerequisiteLocations.length; i++)
-			if (location.equals(info.prerequisiteLocations[i])) {
-				ret = true;
-				break;
-			}
-
-		return ret;
-	}
-
-	static boolean isSystemBundle(String location, LocationInfo info) {
-		if (info.systemBundleLocation == null)
-			return false;
-		if (location.equals(info.systemBundleLocation))
-			return true;
-		return false;
-	}
-
-	static boolean isSystemFragmentBundle(String location, LocationInfo info) {
-		boolean ret = false;
-		if (info.systemFragmentedBundleLocations == null)
-			return false;
-		for (int i = 0; i < info.systemFragmentedBundleLocations.length; i++)
-			if (location.equals(info.systemFragmentedBundleLocations[i])) {
-				ret = true;
-				break;
-			}
-		return ret;
-	}
-
-	private static boolean isTargetConfiguratorBundle(BundleInfo[] bInfos) {
-		for (int i = 0; i < bInfos.length; i++) {
-			if (isTargetConfiguratorBundle(bInfos[i].getLocation())) {
-				return true;
-				//TODO confirm that startlevel of configurator bundle must be no larger than beginning start level of fw. However, there is no way to know the start level of cached ones.
-			}
-		}
-		return false;
-	}
-
-	private static boolean isTargetConfiguratorBundle(String location) {
-		final String symbolic = Utils.getPathFromClause(Utils.getManifestMainAttributes(location, Constants.BUNDLE_SYMBOLICNAME));
-		return (SimpleConfiguratorConstants.SERVICE_PROP_VALUE_CONFIGURATOR_SYMBOLICNAME.equals(symbolic));
-	}
-
-	private void algorithm(int initialSl, SortedMap bslToList, BundleInfo configuratorBInfo, List setToInitialConfig, List setToSimpleConfig, LocationInfo info) {
-		int configuratorSL = configuratorBInfo.getStartLevel();
-
-		Integer sL0 = (Integer) bslToList.keySet().iterator().next();// StartLevel == 0;
-		List list0 = (List) bslToList.get(sL0);
-		if (sL0.intValue() == 0)
-			for (Iterator ite2 = list0.iterator(); ite2.hasNext();) {
-				BundleInfo bInfo = (BundleInfo) ite2.next();
-				if (isSystemBundle(bInfo.getLocation(), info)) {
-					setToSimpleConfig.add(bInfo);
-					break;
-				}
-			}
-
-		for (Iterator ite = bslToList.keySet().iterator(); ite.hasNext();) {
-			Integer sL = (Integer) ite.next();
-			List list = (List) bslToList.get(sL);
-
-			if (sL.intValue() < configuratorSL) {
-				for (Iterator ite2 = list.iterator(); ite2.hasNext();) {
-					BundleInfo bInfo = (BundleInfo) ite2.next();
-					if (!isSystemBundle(bInfo.getLocation(), info))
-						setToInitialConfig.add(bInfo);
-				}
-			} else if (sL.intValue() > configuratorSL) {
-				for (Iterator ite2 = list.iterator(); ite2.hasNext();) {
-					BundleInfo bInfo = (BundleInfo) ite2.next();
-					if (isPrerequisiteBundles(bInfo.getLocation(), info) || isSystemFragmentBundle(bInfo.getLocation(), info))
-						if (!isSystemBundle(bInfo.getLocation(), info))
-							setToInitialConfig.add(bInfo);
-					setToSimpleConfig.add(bInfo);
-				}
-			} else {
-				boolean found = false;
-				for (Iterator ite2 = list.iterator(); ite2.hasNext();) {
-					BundleInfo bInfo = (BundleInfo) ite2.next();
-					if (found) {
-						if (!isSystemBundle(bInfo.getLocation(), info))
-							if (isPrerequisiteBundles(bInfo.getLocation(), info) || isSystemFragmentBundle(bInfo.getLocation(), info))
-								setToInitialConfig.add(bInfo);
-						setToSimpleConfig.add(bInfo);
-						continue;
-					}
-					if (isTargetConfiguratorBundle(bInfo.getLocation()))
-						found = true;
-					else if (!isSystemBundle(bInfo.getLocation(), info))
-						setToInitialConfig.add(bInfo);
-					setToSimpleConfig.add(bInfo);
-				}
-			}
-		}
-
-		setToInitialConfig.add(configuratorBInfo);
-	}
-
-	private boolean checkResolve(BundleInfo bInfo, BundlesState state) {//throws ManipulatorException {
-		if (bInfo == null)
-			throw new IllegalArgumentException("bInfo is null.");
-
-		if (!state.isResolved())
-			state.resolve(false);
-		//		if (DEBUG)
-		//			System.out.println(state.toString());
-
-		if (!state.isResolved(bInfo)) {
-			printoutUnsatisfiedConstraints(bInfo, state);
-			return false;
-		}
-		return true;
-	}
-
-	private boolean divideBundleInfos(Manipulator manipulator, List setToInitialConfig, List setToSimpleConfig, final int initialBSL) throws IOException {
-		BundlesState state = manipulator.getBundlesState();
-		BundleInfo[] targetBundleInfos = null;
-		if (state.isFullySupported()) {
-			targetBundleInfos = state.getExpectedState();
-		} else {
-			targetBundleInfos = manipulator.getConfigData().getBundles();
-		}
-		BundleInfo configuratorBInfo = null;
-		for (int i = 0; i < targetBundleInfos.length; i++) {
-			if (isTargetConfiguratorBundle(targetBundleInfos[i].getLocation())) {
-				if (targetBundleInfos[i].isMarkedAsStarted()) {
-					configuratorBInfo = targetBundleInfos[i];
-					break;
-				}
-			}
-		}
-		if (configuratorBInfo == null && !manipulators.contains(manipulator)) {
-			return false;
-		} else if (manipulators.contains(manipulator) && targetBundleInfos.length == 0) {
-			// Resulting state will have no bundles - so is an uninstall, including
-			// uninstall of the configurator. However, we have seen this manipulator
-			// before with a target configurator bundle, so allow uninstall to proceed,
-			// but only get one chance.
-			manipulators.remove(manipulator);
-		} else if (!manipulators.contains(manipulator)) {
-			manipulators.add(manipulator);
-		}
-
-		if (state.isFullySupported()) {
-			state.resolve(false);
-		}
-
-		LocationInfo info = new LocationInfo();
-		setSystemBundles(state, info);
-		if (configuratorBInfo != null) {
-			setPrerequisiteBundles(configuratorBInfo, state, info);
-			SortedMap bslToList = getSortedMap(initialBSL, targetBundleInfos);
-			algorithm(initialBSL, bslToList, configuratorBInfo, setToInitialConfig, setToSimpleConfig, info);
-		}
-		return true;
-	}
-
-	private SortedMap getSortedMap(int initialSl, BundleInfo[] bInfos) {
-		SortedMap bslToList = new TreeMap();
-		for (int i = 0; i < bInfos.length; i++) {
-			Integer sL = new Integer(bInfos[i].getStartLevel());
-			if (sL.intValue() == BundleInfo.NO_LEVEL)
-				sL = new Integer(initialSl);
-			List list = (List) bslToList.get(sL);
-			if (list == null) {
-				list = new LinkedList();
-				bslToList.put(sL, list);
-			}
-			list.add(bInfos[i]);
-		}
-		return bslToList;
-	}
-
-	private BundleInfo[] orderingInitialConfig(List setToInitialConfig) {
-		List notToBeStarted = new LinkedList();
-		List toBeStarted = new LinkedList();
-		for (Iterator ite2 = setToInitialConfig.iterator(); ite2.hasNext();) {
-			BundleInfo bInfo = (BundleInfo) ite2.next();
-			if (bInfo.isMarkedAsStarted())
-				toBeStarted.add(bInfo);
-			else
-				notToBeStarted.add(bInfo);
-		}
-		setToInitialConfig.clear();
-		setToInitialConfig.addAll(notToBeStarted);
-		setToInitialConfig.addAll(toBeStarted);
-		return Utils.getBundleInfosFromList(setToInitialConfig);
-
-	}
-
-	private void printoutUnsatisfiedConstraints(BundleInfo bInfo, BundlesState state) {
-		if (DEBUG) {
-			StringBuffer sb = new StringBuffer();
-			sb.append("Missing constraints:\n");
-			String[] missings = state.getUnsatisfiedConstraints(bInfo);
-			for (int i = 0; i < missings.length; i++)
-				sb.append(" " + missings[i] + "\n");
-			System.out.println(sb.toString());
-		}
-	}
-
-	private BundleInfo[] loadConfiguration(URL url, File launcherLocation) throws IOException {
-		if (url == null)
-			return NULL_BUNDLEINFOS;
-
-		try {
-			url.openStream();
-		} catch (FileNotFoundException e) {
-			return NULL_BUNDLEINFOS;
-		}
-
-		List bundleInfoList = readConfiguration(url, launcherLocation);
-		return Utils.getBundleInfosFromList(bundleInfoList);
-	}
-
-	/**
-	 * This method is copied from SimpleConfiguratorUtils class.
-	 */
-	public static List readConfiguration(URL url, File base) throws IOException {
-		List bundles = new ArrayList();
-		try {
-			// System.out.println("readConfiguration(URL url):url()=" + url);
-			// URL configFileUrl = getConfigFileUrl();
-			// URL configFileUrl = Utils.getUrl("file",null,
-			// inputFile.getAbsolutePath());
-			BufferedReader r = new BufferedReader(new InputStreamReader(url.openStream()));
-			// BufferedReader r = new BufferedReader(new FileReader(inputFile));
-
-			String line;
-			try {
-				URL baseUrl = new URL(url, "./");
-				while ((line = r.readLine()) != null) {
-					if (line.startsWith("#"))
-						continue;
-					line = line.trim();// symbolicName,version,location,startlevel,expectedState
-					if (line.length() == 0)
-						continue;
-
-					// (expectedState is an integer).
-					//System.out.println("line=" + line);
-					if (line.startsWith(SimpleConfiguratorConstants.PARAMETER_BASEURL + "=")) {
-						String baseUrlSt = line.substring((SimpleConfiguratorConstants.PARAMETER_BASEURL + "=").length());
-						if (!baseUrlSt.endsWith("/"))
-							baseUrlSt += "/";
-						baseUrl = new URL(url, baseUrlSt);
-						continue;
-					}
-					StringTokenizer tok = new StringTokenizer(line, ",", true);
-					String symbolicName = tok.nextToken();
-					if (symbolicName.equals(","))
-						symbolicName = null;
-					else
-						tok.nextToken(); // ,
-
-					String version = tok.nextToken();
-					if (version.equals(","))
-						version = null;
-					else
-						tok.nextToken(); // ,
-
-					String urlSt = tok.nextToken();
-					if (urlSt.equals(",")) {
-						if (symbolicName != null && version != null)
-							urlSt = symbolicName + "_" + version + ".jar";
-						else
-							urlSt = null;
-					} else
-						tok.nextToken(); // ,
-					try {
-						new URL(urlSt);
-						//						if (DEBUG)
-						//							System.out.println("1 urlSt=" + urlSt);
-					} catch (MalformedURLException e) {
-						urlSt = Utils.getUrlInFull(urlSt, baseUrl).toExternalForm();
-						//						if (DEBUG)
-						//							System.out.println("2 urlSt=" + urlSt);
-					}
-
-					int sl = Integer.parseInt(tok.nextToken().trim());
-					tok.nextToken(); // ,
-					boolean markedAsStarted = Boolean.valueOf(tok.nextToken()).booleanValue();
-					// URL urlBundle = null;
-					// try {
-					// urlBundle = new URL(urlSt);
-					// } catch (MalformedURLException e) {
-					// urlBundle = Utils.getFullUrl(urlSt, baseUrl);
-					// }
-
-					urlSt = makeAbsolute(urlSt, base != null ? base.toURL() : null);
-					BundleInfo bInfo = new BundleInfo(symbolicName, version, urlSt, sl, markedAsStarted);
-					bundles.add(bInfo);
-					// System.out.println("tail line=" + line);
-				}
-			} finally {
-				try {
-					r.close();
-				} catch (IOException ex) {
-					// ignore
-				}
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-			// TODO log something
-			// bundleInfos = NULL_BUNDLEINFOS;
-		}
-		return bundles;
-		// bundleInfos = (BundleInfo[]) bundles.toArray(new
-		// BundleInfo[bundles.size()]);
-	}
-
-	public BundleInfo[] save(Manipulator manipulator, boolean backup) throws IOException {
-		List setToInitialConfig = new LinkedList();
-		List setToSimpleConfig = new LinkedList();
-		ConfigData configData = manipulator.getConfigData();
-
-		//try {
-		if (!divideBundleInfos(manipulator, setToInitialConfig, setToSimpleConfig, configData.getInitialBundleStartLevel()))
-			return configData.getBundles();
-		//} catch (Exception e) {
-		//	e.printStackTrace();
-		//	System.exit(-1);
-		//}
-		//		if (DEBUG) {
-		//			System.out.println("setToInitialConfig=\n" + SimpleConfiguratorUtils.getListSt(setToInitialConfig));
-		//			System.out.println("setToSimpleConfig=\n" + SimpleConfiguratorUtils.getListSt(setToSimpleConfig));
-		//		}
-		URL configuratorConfigUrl = getConfigLocation(manipulator);
-		if (!configuratorConfigUrl.getProtocol().equals("file"))
-			new IllegalStateException("configuratorConfigUrl should start with \"file\".\nconfiguratorConfigUrl=" + configuratorConfigUrl);
-		File outputFile = new File(configuratorConfigUrl.getFile());
-		saveConfiguration(setToSimpleConfig, outputFile, getOSGiInstallArea(manipulator.getLauncherData()), backup);
-		configData.setFwIndependentProp(SimpleConfiguratorConstants.PROP_KEY_CONFIGURL, outputFile.toURL().toExternalForm());
-		return orderingInitialConfig(setToInitialConfig);
-	}
-
-	public static File getOSGiInstallArea(LauncherData launcherData) {
-		if (launcherData == null)
-			return null;
-		String[] args = launcherData.getProgramArgs();
-		if (args == null)
-			return null;
-		for (int i = 0; i < args.length; i++) {
-			if (args[i].equals("-startup") && i + 1 < args.length && args[i + 1].charAt(1) != '-') {
-				IPath parentFolder = new Path(args[i + 1]).removeLastSegments(1);
-				if (parentFolder.lastSegment().equals("plugins"))
-					return parentFolder.removeLastSegments(1).toFile();
-				return parentFolder.toFile();
-			}
-		}
-		return launcherData.getLauncher().getParentFile();
-	}
-
-	public static void saveConfiguration(List bundleInfoList, File outputFile, File base, boolean backup) throws IOException {
-		if (DEBUG) {
-			System.out.println("saveConfiguration(List bundleInfoList, File outputFile, boolean backup): outFile=" + outputFile.getAbsolutePath());
-		}
-		BufferedWriter bw;
-		if (backup)
-			if (outputFile.exists()) {
-				File dest = Utils.getSimpleDataFormattedFile(outputFile);
-				if (!outputFile.renameTo(dest)) {
-					throw new IOException("Fail to rename from (" + outputFile + ") to (" + dest + ")");
-				}
-			}
-
-		Collections.sort(bundleInfoList, new Comparator() {
-			public int compare(Object o1, Object o2) {
-				if (o1 instanceof BundleInfo && o2 instanceof BundleInfo) {
-					return ((BundleInfo) o1).getSymbolicName().compareTo(((BundleInfo) o2).getSymbolicName());
-				}
-				return 0;
-			}
-		});
-
-		if (bundleInfoList.size() > 0) {
-			Utils.createParentDir(outputFile);
-			bw = new BufferedWriter(new FileWriter(outputFile));
-
-			for (Iterator ite = bundleInfoList.iterator(); ite.hasNext();) {
-				BundleInfo bInfo = (BundleInfo) ite.next();
-				String location = bInfo.getLocation();
-
-				if (bInfo.getSymbolicName() == null)
-					bw.write(",");
-				else
-					bw.write(bInfo.getSymbolicName() + ",");
-				if (bInfo.getVersion() == null)
-					bw.write(",");
-				else
-					bw.write(bInfo.getVersion() + ",");
-
-				location = makeRelative(location, base != null ? base.toURL() : null);
-				bw.write(location + ",");
-				bw.write(bInfo.getStartLevel() + "," + bInfo.isMarkedAsStarted());
-				bw.newLine();
-			}
-			bw.flush();
-			bw.close();
-		} else {
-			if (outputFile.exists()) {
-				outputFile.delete();
-			}
-			File parentDir = outputFile.getParentFile();
-			if (parentDir.exists()) {
-				parentDir.delete();
-			}
-		}
-
-	}
-
-	private static String makeRelative(IPath toRel, IPath base) {
-		int i = base.matchingFirstSegments(toRel);
-		if (i == 0) {
-			return toRel.toOSString();
-		}
-		String result = ""; //$NON-NLS-1$
-		for (int j = 0; j < (base.segmentCount() - i); j++) {
-			result += ".." + IPath.SEPARATOR; //$NON-NLS-1$
-		}
-		if (i == toRel.segmentCount())
-			return "."; //$NON-NLS-1$
-		result += toRel.setDevice(null).removeFirstSegments(i).toOSString();
-		return result;
-	}
-
-	public static String makeRelative(String urlString, URL rootURL) {
-		// we only traffic in file: URLs
-		int index = urlString.indexOf(FILE_PROTOCOL);
-		if (index == -1)
-			return urlString;
-		index = index + 5;
-
-		// ensure we have an absolute path to start with
-		boolean done = false;
-		URL url = null;
-		String file = urlString;
-		while (!done) {
-			try {
-				url = new URL(file);
-				file = url.getFile();
-			} catch (java.net.MalformedURLException e) {
-				done = true;
-			}
-		}
-		if (url == null || !new File(url.getFile()).isAbsolute())
-			return urlString;
-
-		String rootString = rootURL.toExternalForm();
-		return urlString.substring(0, index) + makeRelative(new Path(urlString.substring(index)), new Path(rootString.substring(rootString.indexOf(FILE_PROTOCOL) + 5)));
-	}
-
-	public static String makeAbsolute(String original, String rootPath) {
-		IPath path = new Path(original);
-		// ensure we have a relative path to start with
-		if (path.isAbsolute())
-			return original;
-		IPath root = new Path(rootPath);
-		return root.addTrailingSeparator().append(original.replace(':', '}')).toOSString().replace('}', ':');
-	}
-
-	/*
-	 * Make the given path absolute to the specified root, if applicable. If not, then
-	 * return the path as-is.
-	 */
-	public static String makeAbsolute(String urlString, URL rootURL) {
-		// we only traffic in file: URLs
-		int index = urlString.indexOf(FILE_PROTOCOL);
-		if (index == -1)
-			return urlString;
-		index = index + 5;
-
-		// ensure we have a relative path to start with
-		boolean done = false;
-		URL url = null;
-		String file = urlString;
-		while (!done) {
-			try {
-				url = new URL(file);
-				file = url.getFile();
-			} catch (java.net.MalformedURLException e) {
-				done = true;
-			}
-		}
-		if (url == null || new File(url.getFile()).isAbsolute())
-			return urlString;
-
-		return urlString.substring(0, index - 5) + makeAbsolute(urlString.substring(index), rootURL.toExternalForm());
-	}
-
-	void setPrerequisiteBundles(BundleInfo configuratorBundleInfo, BundlesState state, LocationInfo info) {
-		if (state.isFullySupported())
-			if (!this.checkResolve(configuratorBundleInfo, state)) {
-				printoutUnsatisfiedConstraints(configuratorBundleInfo, state);
-				return;
-			}
-		BundleInfo[] prerequisites = state.getPrerequisteBundles(configuratorBundleInfo);
-		info.prerequisiteLocations = new String[prerequisites.length];
-		for (int i = 0; i < prerequisites.length; i++)
-			info.prerequisiteLocations[i] = prerequisites[i].getLocation();
-		return;
-
-	}
-
-	void setSystemBundles(BundlesState state, LocationInfo info) {
-		BundleInfo systemBundleInfo = state.getSystemBundle();
-		if (systemBundleInfo == null) {
-			// TODO Log
-			//throw new IllegalStateException("There is no systemBundle.\n");
-			return;
-		}
-		if (state.isFullySupported())
-			if (!this.checkResolve(systemBundleInfo, state)) {
-				printoutUnsatisfiedConstraints(systemBundleInfo, state);
-				return;
-			}
-		info.systemBundleLocation = systemBundleInfo.getLocation();
-		BundleInfo[] fragments = state.getSystemFragmentedBundles();
-		info.systemFragmentedBundleLocations = new String[fragments.length];
-		for (int i = 0; i < fragments.length; i++)
-			info.systemFragmentedBundleLocations[i] = fragments[i].getLocation();
-	}
-
-	public void updateBundles(Manipulator manipulator) throws IOException {
-		if (DEBUG)
-			System.out.println("SimpleConfiguratorManipulatorImpl#updateBundles()");
-
-		BundlesState bundleState = manipulator.getBundlesState();
-
-		if (bundleState == null)
-			return;
-		if (bundleState.isFullySupported())
-			bundleState.resolve(true);
-
-		BundleInfo[] currentBInfos = bundleState.getExpectedState();
-		if (!isTargetConfiguratorBundle(currentBInfos))
-			return;
-		Properties properties = new Properties();
-		String[] jvmArgs = manipulator.getLauncherData().getJvmArgs();
-		for (int i = 0; i < jvmArgs.length; i++)
-			if (jvmArgs[i].startsWith("-D")) {
-				int index = jvmArgs[i].indexOf("=");
-				if (index > 0 && jvmArgs[i].length() > 2) {
-					String key = jvmArgs[i].substring(2, index);
-					String value = jvmArgs[i].substring(index + 1);
-					properties.setProperty(key, value);
-				}
-			}
-
-		Utils.appendProperties(properties, manipulator.getConfigData().getFwIndependentProps());
-		boolean exclusiveInstallation = Boolean.valueOf(properties.getProperty(SimpleConfiguratorConstants.PROP_KEY_EXCLUSIVE_INSTALLATION)).booleanValue();
-		URL configuratorConfigUrl = getConfigLocation(manipulator);
-
-		BundleInfo[] toInstall = this.loadConfiguration(configuratorConfigUrl, getOSGiInstallArea(manipulator.getLauncherData()));
-
-		List toUninstall = new LinkedList();
-		if (exclusiveInstallation)
-			for (int i = 0; i < currentBInfos.length; i++) {
-				boolean install = false;
-				for (int j = 0; j < toInstall.length; j++)
-					if (currentBInfos[i].getLocation().equals(toInstall[j].getLocation())) {
-						install = true;
-						break;
-					}
-				if (!install)
-					toUninstall.add(currentBInfos[i]);
-			}
-
-		for (int i = 0; i < toInstall.length; i++) {
-			try {
-				bundleState.installBundle(toInstall[i]);
-			} catch (RuntimeException e) {
-				//Ignore
-			}
-		}
-		if (exclusiveInstallation)
-			for (Iterator ite = toUninstall.iterator(); ite.hasNext();) {
-				BundleInfo bInfo = (BundleInfo) ite.next();
-				bundleState.uninstallBundle(bInfo);
-			}
-
-		bundleState.resolve(true);
-		manipulator.getConfigData().setBundles(bundleState.getExpectedState());
-	}
-
-	public void cleanup(Manipulator manipulator) {
-		File outputFile = new File(getConfigLocation(manipulator).getFile());
-		outputFile.delete();
-
-		if (outputFile.getParentFile().isDirectory())
-			outputFile.getParentFile().delete();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java
deleted file mode 100644
index 2b0d814..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.utils;
-
-
-/**
- * Copied from org.eclipse.equinox.simpleconfigurator.
- * 
- */
-public class SimpleConfiguratorConstants {
-	public static final String PARAMETER_BASEURL = "org.eclipse.equinox.simpleconfigurator.baseUrl";
-	public static final String PROP_KEY_EXCLUSIVE_INSTALLATION = "org.eclipse.equinox.simpleconfigurator.exclusiveInstallation";
-
-	public static final String LAST_CONFIG_STAMP = "last.config.stamps"; //$NON-NLS-1$
-	public static final String CONFIG_LIST = "bundles.info"; //$NON-NLS-1$
-	public static final String CONFIGURATOR_FOLDER = "org.eclipse.equinox.simpleconfigurator"; //$NON-NLS-1$
-	public static final String CONFIG_INI = "config.ini"; //$NON-NLS-1$
-	public static final String PROP_KEY_CONFIGURL = "org.eclipse.equinox.simpleconfigurator.configUrl";
-	public static final String TARGET_CONFIGURATOR_NAME = "org.eclipse.equinox.simpleconfigurator";
-	public static final String SERVICE_PROP_VALUE_CONFIGURATOR_SYMBOLICNAME = TARGET_CONFIGURATOR_NAME;
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/.classpath b/bundles/org.eclipse.equinox.simpleconfigurator/.classpath
deleted file mode 100644
index 6f3b481..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/.cvsignore b/bundles/org.eclipse.equinox.simpleconfigurator/.cvsignore
deleted file mode 100644
index e043cc4..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-build.xml
-javaCompiler...args
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/.externalToolBuilders/Copy built version of simple configurator into metadata generator.launch b/bundles/org.eclipse.equinox.simpleconfigurator/.externalToolBuilders/Copy built version of simple configurator into metadata generator.launch
deleted file mode 100644
index b68ad48..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.externalToolBuilders/Copy built version of simple configurator into metadata generator.launch
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.equinox.simpleconfigurator"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.simpleconfigurator"/>
-<mapAttribute key="org.eclipse.ui.externaltools.ATTR_ANT_PROPERTIES">
-<mapEntry key="buildDirectory" value="${build_project}/trash"/>
-<mapEntry key="targetFolder" value="${resource_loc:/org.eclipse.equinox.p2.metadata.generator}"/>
-<mapEntry key="eclipse.pdebuild.scripts" value="/D:/eclipse/plugins/org.eclipse.pde.build_3.3.0.v20070312/scripts/"/>
-<mapEntry key="eclipse.running" value="true"/>
-<mapEntry key="thisPlugin" value="${resource_loc:/org.eclipse.equinox.simpleconfigurator}"/>
-<mapEntry key="eclipse.pdebuild.templates" value="/D:/eclipse/plugins/org.eclipse.pde.build_3.3.0.v20070312/templates/"/>
-<mapEntry key="eclipse.pdebuild.home" value="/D:/eclipse/plugins/org.eclipse.pde.build_3.3.0.v20070312/./"/>
-<mapEntry key="eclipse.home" value="D:\eclipse"/>
-<mapEntry key="baseLocation" value="${target_home}"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.simpleconfigurator/localbuild.xml}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/.project b/bundles/org.eclipse.equinox.simpleconfigurator/.project
deleted file mode 100644
index b2ad3e6..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.simpleconfigurator</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<triggers>full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/Copy built version of simple configurator into metadata generator.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 03ed95e..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,265 +0,0 @@
-#Fri Feb 22 11:15:38 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=true
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=800
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=false
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 5ae244b..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Sun Sep 23 11:59:41 EDT 2007
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_core
-formatter_settings_version=11
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.staticondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=true
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF
deleted file mode 100644
index 2214467..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.equinox.simpleconfigurator;singleton:=true
-Bundle-Version: 0.1.0.qualifier
-Bundle-Name: %bundleName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.equinox.internal.simpleconfigurator.Activator
-Eclipse-LazyStart: true
-Import-Package: org.eclipse.osgi.framework.console;version="1.0.0";resolution:=optional,
- org.eclipse.osgi.service.datalocation;version="1.0.0";resolution:=optional,
- org.eclipse.osgi.service.resolver;version="1.2.0";resolution:=optional,
- org.osgi.framework;version="1.3.0",
- org.osgi.service.packageadmin;version="1.2.0",
- org.osgi.service.startlevel;version="1.0.0",
- org.osgi.util.tracker;version="1.3.0"
-Export-Package: org.eclipse.equinox.internal.provisional.configurator
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/about.html b/bundles/org.eclipse.equinox.simpleconfigurator/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/build.properties b/bundles/org.eclipse.equinox.simpleconfigurator/build.properties
deleted file mode 100644
index ac72e5e..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties
-qualifier=context
-src.includes = about.html
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/localbuild.xml b/bundles/org.eclipse.equinox.simpleconfigurator/localbuild.xml
deleted file mode 100644
index a5d7fd7..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/localbuild.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<!-- ====================================================================== 
-     Mar 14, 2007 11:17:02 AM                                                        
-
-     project    
-     description
-                   
-     Administrator                                                                
-     ====================================================================== -->
-<project name="project" default="default">
-	<description>
-            description
-    </description>
-
-	<!-- ================================= 
-          target: default              
-         ================================= -->
-	<target name="default" description="--> description">
-		<echo message="bd is ${buildDirectory}"/>
-		<tstamp/>
-		<eclipse.buildScript elements="plugin@org.eclipse.equinox.simpleconfigurator" 
-			buildDirectory="${buildDirectory}" 
-			configInfo="*,*,*" 
-			baseLocation="${baseLocation}" 
-			buildingOSGi="true" 
-			outputUpdateJars="false"
-			pluginpath="${thisPlugin}"
-			forceContextQualifier="z${DSTAMP}${TSTAMP}"
-			/>
-		<ant antfile="build.xml" target="build.jars"/>
-		<ant antfile="build.xml" target="build.update.jar"/>
-		<move todir="${targetFolder}" includeEmptyDirs="no" failonerror="yes">
-			<fileset dir="${basedir}">
-				<include name="*.jar"/>
-			</fileset>
-			<regexpmapper from="^(.*)_.*$" to="\1.jar"/>
-		</move>
-		<ant antfile="build.xml" target="clean"/>
-		<delete file="build.xml"/>
-		<delete file="javaCompiler...args"/>
-	</target>
-
-
-</project>
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/plugin.properties b/bundles/org.eclipse.equinox.simpleconfigurator/plugin.properties
deleted file mode 100644
index 8cbe5d8..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bundleName= Simple Configurator
-providerName= Eclipse.org
-
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/provisional/configurator/Configurator.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/provisional/configurator/Configurator.java
deleted file mode 100644
index 2291eb6..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/provisional/configurator/Configurator.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.provisional.configurator;
-
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * The implementation of this interface will be registered into a service registry
- * by a Configurator Bundle.
- * 
- * The client bundle can apply configuration which can be interpreted by referring
- * the specified location to the current running OSGi environment. In addition, 
- * the client can expect bundle state in advance .  
- * 
- * TODO: this interface might not be required to be defined.
- * 
- * 
- * **********************************************
- * Current Definition of Configurator Bundle: 
- * 
- * Configurator Bundle will do the following operation at its startup.
- * 
- * 1. Create a Configurator object.
- * 2. Register it as a service to the service registry.
- * 3. Get where to read for knowing what kinds of bundles in its implementation dependent way.
- * 4. Call {@link Configurator#applyConfiguration(URL)} with the URL.
- * 
- * At its stopping, the service registered will be unregistered.
- * 
- * @see ConfiguratorManipulator
- *
- */
-public interface Configurator {
-
-	/**
-	 * Apply configuration read from the specified url to the OSGi 
-	 * environment currently running.
-	 * 
-	 * @param url URL to be read.
-	 * @throws IOException - If reading information from the specified url fails. 
-	 */
-	void applyConfiguration(URL url) throws IOException;
-
-	/**
-	 * Apply configuration read from the previously used url to the OSGi 
-	 * environment currently running. If it is never used, do nothing.
-	 * 
-	 * @throws IOException - If reading information from the specified url fails. 
-	 */
-	void applyConfiguration() throws IOException;
-
-	/**
-	 * Return the url in use.
-	 * If it is never used, return null.
-	 * 
-	 * @return
-	 */
-	URL getUrlInUse();
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/Activator.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/Activator.java
deleted file mode 100644
index 333df29..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/Activator.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.eclipse.equinox.internal.provisional.configurator.Configurator;
-import org.eclipse.equinox.internal.simpleconfigurator.utils.EquinoxUtils;
-import org.eclipse.equinox.internal.simpleconfigurator.utils.SimpleConfiguratorConstants;
-import org.osgi.framework.*;
-
-/**
- * At its start, SimpleConfigurator bundle does the followings.
- * 
- * 1. A value will be gotten by @{link BundleContext#getProperty(key)} with 
- * {@link SimpleConfiguratorConstants#PROP_KEY_CONFIGURL} as a key.
- * The value will be used for the referal URL. Under the url, there must be a simple 
- * bundles list file to be installed with thier start level and flag of marked as started.
- * 
- * 2. If the value is null, do nothing any more.
- * 3. Otherwise, retrieve the bundles list from the url and install,
- *  set start level of and start bundles, as specified.
- * 
- * 4. A value will be gotten by @{link BundleContext#getProperty(key)} with 
- * {@link SimpleConfiguratorConstants#PROP_KEY_EXCLUSIVE_INSTALLATION} as a key.
- * 
- * 5. If it equals "false", it will do exclusive installation, which means that 
- * the bundles will not be listed in the specified url but installed at the time
- * of the method call except SystemBundle will be uninstalled. 
- * Otherwise, no uninstallation will not be done.
- * 
- */
-public class Activator implements BundleActivator {
-	public final static boolean DEBUG = false;
-	private ServiceRegistration configuratorRegistration;
-	private ServiceRegistration commandRegistration;
-
-	public void start(BundleContext context) throws Exception {
-		SimpleConfiguratorImpl bundleConfigurator = new SimpleConfiguratorImpl(context, context.getBundle());
-		bundleConfigurator.applyConfiguration();
-
-		Dictionary props = new Hashtable();
-		props.put(Constants.SERVICE_VENDOR, "Eclipse"); //$NON-NLS-1$
-		props.put(Constants.SERVICE_PID, SimpleConfiguratorConstants.TARGET_CONFIGURATOR_NAME);
-		ServiceFactory configurationFactory = new SimpleConfiguratorFactory(context);
-		configuratorRegistration = context.registerService(Configurator.class.getName(), configurationFactory, props);
-
-		try {
-			if (null != context.getBundle().loadClass("org.eclipse.osgi.framework.console.CommandProvider")) //$NON-NLS-1$
-				commandRegistration = EquinoxUtils.registerConsoleCommands(context);
-		} catch (ClassNotFoundException e) {
-			// CommandProvider is not available
-			// Ok -- optional
-		}
-
-		if (DEBUG)
-			System.out.println("registered Configurator"); //$NON-NLS-1$
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		if (configuratorRegistration != null) {
-			configuratorRegistration.unregister();
-			configuratorRegistration = null;
-		}
-		if (commandRegistration != null) {
-			commandRegistration.unregister();
-			commandRegistration = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/ConfigApplier.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/ConfigApplier.java
deleted file mode 100644
index 5dc6f37..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/ConfigApplier.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-import org.eclipse.equinox.internal.simpleconfigurator.utils.*;
-import org.osgi.framework.*;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.osgi.service.startlevel.StartLevel;
-
-class ConfigApplier {
-	private static final String LAST_BUNDLES_TXT = "last.bundles.info";
-
-	private BundleContext manipulatingContext;
-	private PackageAdmin adminService = null;
-	private StartLevel startLevelService = null;
-	private final boolean runningOnEquinox;
-	private boolean checkManifestBeforeInstall = false;
-
-	private Bundle callingBundle;
-
-	ConfigApplier(BundleContext context, Bundle callingBundle) {
-		this.manipulatingContext = context;
-		this.callingBundle = callingBundle;
-		//String vendor = context.getProperty(Constants.FRAMEWORK_VENDOR);
-		//System.out.println("vendor=" + vendor);
-		this.runningOnEquinox = "Eclipse".equals(context.getProperty(Constants.FRAMEWORK_VENDOR)); //$NON-NLS-1$
-		ServiceReference packageAdminRef = manipulatingContext.getServiceReference(PackageAdmin.class.getName());
-		if (packageAdminRef == null)
-			throw new IllegalStateException("No PackageAdmin service is available.");
-
-		adminService = (PackageAdmin) manipulatingContext.getService(packageAdminRef);
-
-		ServiceReference startLevelRef = manipulatingContext.getServiceReference(StartLevel.class.getName());
-		if (startLevelRef == null)
-			throw new IllegalStateException("No StartLevelService service is available.");
-		startLevelService = (StartLevel) manipulatingContext.getService(startLevelRef);
-
-	}
-
-	void install(BundleInfo[] expectedState, URL url, boolean exclusiveMode) {
-		HashSet toUninstall = null;
-		if (!exclusiveMode) {
-			BundleInfo[] lastInstalledBundles = getLastState();
-			if (lastInstalledBundles != null) {
-				toUninstall = new HashSet(Arrays.asList(lastInstalledBundles));
-				toUninstall.removeAll(Arrays.asList(expectedState));
-			}
-			saveStateAsLast(url);
-		}
-
-		Collection prevouslyResolved = getResolvedBundles();
-		Collection toRefresh = new ArrayList();
-		Collection toStart = new ArrayList();
-		if (exclusiveMode) {
-			toRefresh.addAll(installBundles(expectedState, toStart));
-			toRefresh.addAll(uninstallBundles(expectedState, adminService));
-		} else {
-			toRefresh.addAll(installBundles(expectedState, toStart));
-			if (toUninstall != null)
-				toRefresh.addAll(uninstallBundles(toUninstall));
-		}
-		refreshPackages((Bundle[]) toRefresh.toArray(new Bundle[toRefresh.size()]), manipulatingContext);
-		if (toRefresh.size() > 0)
-			try {
-				manipulatingContext.getBundle().loadClass("org.eclipse.osgi.service.resolver.PlatformAdmin"); //$NON-NLS-1$
-				// now see if there are any currently resolved bundles with option imports which could be resolved or
-				// if there are fragments with additional constraints which conflict with an already resolved host
-				Bundle[] additionalRefresh = StateResolverUtils.getAdditionalRefresh(prevouslyResolved, manipulatingContext);
-				if (additionalRefresh.length > 0)
-					refreshPackages(additionalRefresh, manipulatingContext);
-			} catch (ClassNotFoundException cnfe) {
-				// do nothing; no resolver package available
-			}
-		startBundles((Bundle[]) toStart.toArray(new Bundle[toStart.size()]));
-		//if time stamps are the same
-		//  do nothing
-		//  return
-		//if list exists
-		//  force the list in the fwk
-		//else
-		//  discover bundles in folders and force the list in the fwk
-	}
-
-	private Collection getResolvedBundles() {
-		Collection resolved = new HashSet();
-		Bundle[] allBundles = manipulatingContext.getBundles();
-		for (int i = 0; i < allBundles.length; i++)
-			if ((allBundles[i].getState() & (Bundle.INSTALLED | Bundle.UNINSTALLED)) == 0)
-				resolved.add(allBundles[i]);
-		return resolved;
-	}
-
-	private Collection uninstallBundles(HashSet toUninstall) {
-		Collection removedBundles = new ArrayList(toUninstall.size());
-		for (Iterator iterator = toUninstall.iterator(); iterator.hasNext();) {
-			BundleInfo current = (BundleInfo) iterator.next();
-			Bundle[] matchingBundles = adminService.getBundles(current.getSymbolicName(), getVersionRange(current.getVersion()));
-			for (int j = 0; matchingBundles != null && j < matchingBundles.length; j++) {
-				try {
-					removedBundles.add(matchingBundles[j]);
-					matchingBundles[j].uninstall();
-				} catch (BundleException e) {
-					//TODO log in debug mode...
-				}
-			}
-		}
-		return removedBundles;
-	}
-
-	private void saveStateAsLast(URL url) {
-		InputStream sourceStream = null;
-		OutputStream destinationStream = null;
-
-		File lastBundlesTxt = getLastBundleTxt();
-		try {
-			try {
-				destinationStream = new FileOutputStream(lastBundlesTxt);
-				sourceStream = url.openStream();
-				SimpleConfiguratorUtils.transferStreams(sourceStream, destinationStream);
-			} finally {
-				if (destinationStream != null)
-					destinationStream.close();
-				if (sourceStream != null)
-					sourceStream.close();
-			}
-		} catch (IOException e) {
-			//nothing
-		}
-	}
-
-	private File getLastBundleTxt() {
-		return manipulatingContext.getDataFile(LAST_BUNDLES_TXT);
-	}
-
-	private BundleInfo[] getLastState() {
-		File lastBundlesTxt = getLastBundleTxt();
-		if (!lastBundlesTxt.isFile())
-			return null;
-		try {
-			return (BundleInfo[]) SimpleConfiguratorUtils.readConfiguration(lastBundlesTxt.toURL()).toArray(new BundleInfo[1]);
-		} catch (IOException e) {
-			return null;
-		}
-	}
-
-	private ArrayList installBundles(BundleInfo[] finalList, Collection toStart) {
-		ArrayList installed = new ArrayList();
-		//printSystemBundle();
-
-		boolean useReference = true;
-		if (manipulatingContext.getProperty(SimpleConfiguratorConstants.PROP_KEY_USE_REFERENCE) == null)
-			useReference = true;
-		else
-			useReference = Boolean.valueOf(manipulatingContext.getProperty(SimpleConfiguratorConstants.PROP_KEY_USE_REFERENCE)).booleanValue();
-
-		for (int i = 0; i < finalList.length; i++) {
-			if (finalList[i] == null)
-				continue;
-			//TODO here we do not deal with bundles that don't have a symbolic id
-			//TODO Need to handle the case where getBundles return multiple value
-
-			String symbolicName = finalList[i].getSymbolicName();
-			String version = finalList[i].getVersion();
-
-			if (checkManifestBeforeInstall) {
-				Dictionary manifest = Utils.getOSGiManifest(finalList[i].getLocation());
-				if (manifest == null) {
-					Utils.log(1, null, null, "No bundle found at: " + finalList[i].getLocation(), null);
-					finalList[i] = null;
-					continue;
-				}
-
-				//if (manifest != null)
-				try {
-					symbolicName = (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME);
-				} catch (RuntimeException re) {
-					System.err.println("cannot get Manifest :" + finalList[i]);
-					throw re;
-				}
-				if (symbolicName != null && symbolicName.indexOf(";") != -1)
-					symbolicName = symbolicName.substring(0, symbolicName.indexOf(";")).trim();
-
-				version = (String) manifest.get(Constants.BUNDLE_VERSION);
-			}
-
-			Bundle[] matches = null;
-			if (symbolicName != null && version != null)
-				matches = adminService.getBundles(symbolicName, getVersionRange(version));
-
-			Bundle current = matches == null ? null : (matches.length == 0 ? null : matches[0]);
-			if (current == null) {
-				try {
-					String location = finalList[i].getLocation();
-					if (location == null)
-						continue;
-					if (runningOnEquinox && useReference && location.startsWith("file:")) //$NON-NLS-1$
-						location = "reference:" + location; //$NON-NLS-1$
-
-					//TODO Need to eliminate System Bundle.
-					// If a system bundle doesn't have a SymbolicName header, like Knopflerfish 4.0.0,
-					// it will be installed unfortunately. 
-					current = manipulatingContext.installBundle(location);
-					if (Activator.DEBUG)
-						System.out.println("installed bundle:" + finalList[i]);
-					installed.add(current);
-				} catch (BundleException e) {
-					System.err.println("Can't install " + symbolicName + "/" + version + " from location " + finalList[i].getLocation());
-					e.printStackTrace();
-					continue;
-				}
-			}
-			int startLevel = finalList[i].getStartLevel();
-			if (startLevel != BundleInfo.NO_LEVEL)
-				if (current.getBundleId() != 0) {
-					String name = current.getSymbolicName();
-					try {
-						if (startLevel > 0)
-							if (!SimpleConfiguratorConstants.TARGET_CONFIGURATOR_NAME.equals(name))
-								startLevelService.setBundleStartLevel(current, startLevel);
-					} catch (IllegalArgumentException ex) {
-						Utils.log(4, null, null, "fail to set start level of Bundle:" + finalList[i], ex);
-					}
-				}
-			if (finalList[i].isMarkedAsStarted()) {
-				toStart.add(current);
-			}
-		}
-		return installed;
-	}
-
-	private void refreshPackages(Bundle[] bundles, BundleContext manipulatingContext) {
-		if (bundles.length == 0)
-			return;
-		ServiceReference packageAdminRef = manipulatingContext.getServiceReference(PackageAdmin.class.getName());
-		PackageAdmin packageAdmin = null;
-		if (packageAdminRef != null) {
-			packageAdmin = (PackageAdmin) manipulatingContext.getService(packageAdminRef);
-			if (packageAdmin == null)
-				return;
-		}
-		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();
-					}
-				}
-			}
-		};
-		manipulatingContext.addFrameworkListener(listener);
-		packageAdmin.refreshPackages(bundles);
-		synchronized (flag) {
-			while (!flag[0]) {
-				try {
-					flag.wait();
-				} catch (InterruptedException e) {
-				}
-			}
-		}
-		//		if (DEBUG) {
-		//			for (int i = 0; i < bundles.length; i++) {
-		//				System.out.println(SimpleConfiguratorUtils.getBundleStateString(bundles[i]));
-		//			}
-		//		}
-		manipulatingContext.removeFrameworkListener(listener);
-		manipulatingContext.ungetService(packageAdminRef);
-	}
-
-	private void startBundles(Bundle[] bundles) {
-		for (int i = 0; i < bundles.length; i++) {
-			Bundle bundle = bundles[i];
-			if (bundle.getState() == Bundle.STARTING && (bundle == callingBundle || bundle == manipulatingContext.getBundle()))
-				continue;
-
-			try {
-				bundle.start();
-				if (Activator.DEBUG)
-					System.out.println("started Bundle:" + bundle.getSymbolicName() + "(" + bundle.getLocation() + ":" + bundle.getBundleId() + ")");
-			} catch (BundleException e) {
-				e.printStackTrace();
-				//				FrameworkLogEntry entry = new FrameworkLogEntry(FrameworkAdaptor.FRAMEWORK_SYMBOLICNAME, NLS.bind(EclipseAdaptorMsg.ECLIPSE_STARTUP_FAILED_START, bundle.getLocation()), 0, e, null);
-				//				log.log(entry);
-			}
-		}
-	}
-
-	/**
-	 * Uninstall bundles which are not listed on finalList.  
-	 * 
-	 * @param finalList bundles list not to be uninstalled.
-	 * @param adminService package admin service.
-	 * @return Collection HashSet of bundles finally installed.
-	 */
-	private Collection uninstallBundles(BundleInfo[] finalList, PackageAdmin adminService) {
-		Bundle[] allBundles = manipulatingContext.getBundles();
-
-		//Build a set with all the bundles from the system
-		Set removedBundles = new HashSet(allBundles.length);
-		//		configurator.setPrerequisiteBundles(allBundles);
-		for (int i = 0; i < allBundles.length; i++) {
-			if (allBundles[i].getBundleId() == 0)
-				continue;
-			removedBundles.add(allBundles[i]);
-		}
-
-		//Remove all the bundles appearing in the final list from the set of installed bundles
-		for (int i = 0; i < finalList.length; i++) {
-			if (finalList[i] == null)
-				continue;
-			Bundle[] toAdd = adminService.getBundles(finalList[i].getSymbolicName(), getVersionRange(finalList[i].getVersion()));
-			for (int j = 0; toAdd != null && j < toAdd.length; j++) {
-				removedBundles.remove(toAdd[j]);
-			}
-		}
-
-		for (Iterator iter = removedBundles.iterator(); iter.hasNext();) {
-			try {
-				Bundle bundle = ((Bundle) iter.next());
-				bundle.uninstall();
-				if (Activator.DEBUG)
-					System.out.println("uninstalled Bundle:" + bundle.getSymbolicName() + "(" + bundle.getLocation() + ":" + bundle.getBundleId() + ")");
-			} catch (BundleException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-
-		return removedBundles;
-	}
-
-	private String getVersionRange(String version) {
-		return version == null ? null : new StringBuffer().append('[').append(version).append(',').append(version).append(']').toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorFactory.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorFactory.java
deleted file mode 100644
index 7e8dbeb..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorFactory.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator;
-
-import org.osgi.framework.*;
-
-public class SimpleConfiguratorFactory implements ServiceFactory {
-	private BundleContext context;
-
-	public SimpleConfiguratorFactory(BundleContext context) {
-		this.context = context;
-	}
-
-	public Object getService(Bundle bundle, ServiceRegistration registration) {
-		return new SimpleConfiguratorImpl(context, bundle);
-	}
-
-	public void ungetService(Bundle bundle, ServiceRegistration registration, Object service) {
-		// nothing to do
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java
deleted file mode 100644
index 47db7c7..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-import org.eclipse.equinox.internal.provisional.configurator.Configurator;
-import org.eclipse.equinox.internal.simpleconfigurator.utils.*;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-/**
- * SimpleConfigurator provides ways to install bundles listed in a file accessible
- * by the specified URL and expect states for it in advance without actual application.
- * 
- * In every methods of SimpleConfiguration object,
- *  
- * 1. A value will be gotten by @{link BundleContext#getProperty(key) with 
- * {@link SimpleConfiguratorConstants#PROP_KEY_EXCLUSIVE_INSTALLATION} as a key.
- * 2. If it equals "true", it will do exclusive installation, which means that 
- * the bundles will not be listed in the specified url but installed at the time
- * of the method call except SystemBundle will be uninstalled. Otherwise, no uninstallation will not be done.
- */
-public class SimpleConfiguratorImpl implements Configurator {
-
-	private static URL configurationURL = null;
-	private static Object configurationLock = new Object();
-
-	private BundleContext context;
-	private ConfigApplier configApplier;
-	private Bundle bundle;
-
-	public SimpleConfiguratorImpl(BundleContext context, Bundle bundle) {
-		this.context = context;
-		this.bundle = bundle;
-	}
-
-	private URL getConfigurationURL() {
-		String specifiedURL = context.getProperty(SimpleConfiguratorConstants.PROP_KEY_CONFIGURL);
-		if (specifiedURL == null)
-			specifiedURL = "file:" + SimpleConfiguratorConstants.CONFIGURATOR_FOLDER + "/" + SimpleConfiguratorConstants.CONFIG_LIST;
-
-		try {
-			//If it is not a file URL use it as is
-			if (!specifiedURL.startsWith("file:"))
-				return new URL(specifiedURL);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-
-		try {
-			// if it is an absolute file URL, use it as is
-			boolean done = false;
-			URL url = null;
-			String file = specifiedURL;
-			while (!done) {
-				try {
-					url = new URL(file);
-					file = url.getFile();
-				} catch (java.net.MalformedURLException e) {
-					done = true;
-				}
-			}
-			if (url != null && new File(url.getFile()).isAbsolute())
-				return url;
-
-			//if it is an relative file URL, then resolve it against the configuration area
-			URL configURL = EquinoxUtils.getConfigAreaURL(context);
-			if (configURL != null) {
-				File target = new File(configURL.getFile(), url.getFile());
-				if (target.exists())
-					return target.toURL();
-				return null;
-			}
-		} catch (MalformedURLException e) {
-			return null;
-		}
-
-		//Last resort
-		try {
-			return new URL(specifiedURL);
-		} catch (MalformedURLException e) {
-			//Ignore
-		}
-
-		return null;
-	}
-
-	public void applyConfiguration(URL url) throws IOException {
-		synchronized (configurationLock) {
-			if (Activator.DEBUG)
-				System.out.println("applyConfiguration() URL=" + url);
-			if (url == null)
-				return;
-			configurationURL = url;
-
-			List bundleInfoList = SimpleConfiguratorUtils.readConfiguration(url);
-			if (Activator.DEBUG)
-				System.out.println("applyConfiguration() bundleInfoList.size()=" + bundleInfoList.size());
-			if (bundleInfoList.size() == 0)
-				return;
-			if (this.configApplier == null)
-				configApplier = new ConfigApplier(context, bundle);
-			configApplier.install(Utils.getBundleInfosFromList(bundleInfoList), url, isExclusiveInstallation());
-		}
-	}
-
-	private boolean isExclusiveInstallation() {
-		String value = context.getProperty(SimpleConfiguratorConstants.PROP_KEY_EXCLUSIVE_INSTALLATION);
-		if (value == null || value.trim().length() == 0)
-			value = "true";
-		return Boolean.valueOf(value).booleanValue();
-	}
-
-	public void applyConfiguration() throws IOException {
-		synchronized (configurationLock) {
-			if (configurationURL == null)
-				configurationURL = getConfigurationURL();
-
-			applyConfiguration(configurationURL);
-		}
-	}
-
-	public URL getUrlInUse() {
-		synchronized (configurationLock) {
-			return configurationURL;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ApplyCommand.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ApplyCommand.java
deleted file mode 100644
index da5f020..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ApplyCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.console;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.equinox.internal.provisional.configurator.Configurator;
-import org.eclipse.osgi.framework.console.CommandInterpreter;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * An OSGi console command to apply a configuration
- */
-public class ApplyCommand {
-
-	private URL configURL;
-	private CommandInterpreter interpreter;
-	private BundleContext context;
-
-	public ApplyCommand(CommandInterpreter interpreter, BundleContext context, URL configURL) {
-		this.interpreter = interpreter;
-		this.context = context;
-		this.configURL = configURL;
-	}
-
-	/**
-	 * Runs the apply console command
-	 */
-	public void run() {
-		ServiceTracker tracker = new ServiceTracker(context, Configurator.class.getName(), null);
-		tracker.open();
-		Configurator configurator = (Configurator) tracker.getService();
-		if (configurator != null) {
-			try {
-				if (configURL != null)
-					configurator.applyConfiguration(configURL);
-				else
-					configurator.applyConfiguration();
-				
-				if (configurator.getUrlInUse() == null)
-					interpreter.println("Config URL not set.");
-			} catch (IOException e) {
-				interpreter.println(e.getMessage());
-			}
-		} else {
-			interpreter.println("No configurator registered"); //$NON-NLS-1$
-		}
-		tracker.close();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ConfiguratorCommandProvider.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ConfiguratorCommandProvider.java
deleted file mode 100644
index 22915b1..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/console/ConfiguratorCommandProvider.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.console;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.osgi.framework.console.CommandInterpreter;
-import org.eclipse.osgi.framework.console.CommandProvider;
-import org.osgi.framework.BundleContext;
-
-public class ConfiguratorCommandProvider implements CommandProvider {
-	public static final String NEW_LINE = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private BundleContext context;
-
-	public ConfiguratorCommandProvider(BundleContext context) {
-		this.context = context;
-	}
-
-	/**
-	 * Returns the given string as an URL, or <code>null</code> if
-	 * the string could not be interpreted as an URL.
-	 */
-	private URL toURL(CommandInterpreter interpreter, String urlString) {
-		try {
-			return new URL(urlString);
-		} catch (MalformedURLException e) {
-			interpreter.println(e.getMessage());
-			return null;
-		}
-	}
-
-	/**
-	 * Apply the current configuration
-	 * @param configuration URL (optional)
-	 */
-	public void _confapply(CommandInterpreter interpreter) {
-		String parameter = interpreter.nextArgument();
-		URL configURL = null;
-		if (parameter != null)
-			configURL = toURL(interpreter, parameter);
-
-		new ApplyCommand(interpreter, context, configURL).run();
-	}
-
-	public String getHelp() {
-		StringBuffer help = new StringBuffer();
-		help.append(NEW_LINE);
-		help.append("---"); //$NON-NLS-1$
-		help.append("Configurator Commands"); //$NON-NLS-1$
-		help.append("---"); //$NON-NLS-1$
-		help.append(NEW_LINE);
-		help.append("\tconfapply [<config URL>] - Applies a configuration"); //$NON-NLS-1$
-		return help.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/BundleInfo.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/BundleInfo.java
deleted file mode 100644
index bfefb62..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/BundleInfo.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.utils;
-
-/**
- * This object represents information of a bundle.
- *
- */
-public class BundleInfo {
-	public static final int NO_LEVEL = -1;
-
-	private String symbolicName = null;
-	private String version = null;
-	private String location;
-
-	private boolean markedAsStarted = false;
-	private int startLevel = NO_LEVEL;
-	private boolean resolved = false;
-
-	public BundleInfo(String symbolic, String version, String location, int startLevel, boolean started) {
-		this.symbolicName = symbolic;
-		this.version = version;
-		this.location = location.trim();
-		this.markedAsStarted = started;
-		this.startLevel = startLevel;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object toCompare) {
-		if (toCompare instanceof BundleInfo) {
-			BundleInfo info = (BundleInfo) toCompare;
-			//if (info.symbolicName.equals(symbolicName) && info.version.equals(version) && (info.url == null || url == null ? true : info.url.equals(url)))
-			if (info.symbolicName != null && info.version != null && symbolicName != null && version != null) {
-				if (info.symbolicName.equals(symbolicName) && info.version.equals(version) && (info.location == null || location == null ? true : info.location.equals(location)))
-					return true;
-			} else {
-				return (info.location == null || location == null ? false : info.location.equals(location));
-			}
-		}
-		return false;
-	}
-
-	public String getLocation() {
-		return location;
-	}
-
-	public int getStartLevel() {
-		return startLevel;
-	}
-
-	public String getSymbolicName() {
-		return symbolicName;
-	}
-
-	public String getVersion() {
-		return version;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		int result = symbolicName == null ? 0 : symbolicName.hashCode();
-		result = result + (version == null ? 0 : version.hashCode());
-		result = result + (location == null ? 0 : location.hashCode());
-		return result;
-	}
-
-	public boolean isMarkedAsStarted() {
-		return markedAsStarted;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("BundleInfo("); //$NON-NLS-1$
-		if (symbolicName != null)
-			buffer.append(symbolicName);
-		buffer.append(", "); //$NON-NLS-1$
-		if (version != null)
-			buffer.append(version);
-		buffer.append(", "); //$NON-NLS-1$
-		buffer.append("location="); //$NON-NLS-1$
-		buffer.append(location);
-		buffer.append(", startLevel="); //$NON-NLS-1$
-		buffer.append(startLevel);
-		buffer.append(", toBeStarted="); //$NON-NLS-1$
-		buffer.append(markedAsStarted);
-		buffer.append(", resolved="); //$NON-NLS-1$
-		buffer.append(resolved);
-		buffer.append(')');
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/EquinoxUtils.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/EquinoxUtils.java
deleted file mode 100644
index c7d62d7..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/EquinoxUtils.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.utils;
-
-import java.net.URL;
-import org.eclipse.equinox.internal.simpleconfigurator.console.ConfiguratorCommandProvider;
-import org.eclipse.osgi.framework.console.CommandProvider;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.osgi.framework.*;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class EquinoxUtils {
-
-	public static URL getConfigAreaURL(BundleContext context) {
-		Filter filter = null;
-		try {
-			filter = context.createFilter(Location.CONFIGURATION_FILTER);
-		} catch (InvalidSyntaxException e) {
-			// should not happen
-		}
-		ServiceTracker configLocationTracker = new ServiceTracker(context, filter, null);
-		configLocationTracker.open();
-		try {
-			Location configLocation = (Location) configLocationTracker.getService();
-			if (configLocation == null)
-				return null;
-
-			URL baseURL = configLocation.getURL();
-			if (baseURL != null)
-				return baseURL;
-
-			return null;
-		} finally {
-			configLocationTracker.close();
-		}
-	}
-
-	public static ServiceRegistration registerConsoleCommands(BundleContext context) {
-		return context.registerService(CommandProvider.class.getName(), new ConfiguratorCommandProvider(context), null);
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java
deleted file mode 100644
index b36f656..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorConstants.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.utils;
-
-public class SimpleConfiguratorConstants {
-	/**
-	 * If BundleContext#getProperty(PROP_KEY_EXCLUSIVE_INSTALLATION) equals "true" ignoring case, 
-	 * Configurator.applyConfiguration(url) will uninstall the installed bundles which are not 
-	 * listed in the simpleconfigurator config file after install bundles listed.
-	 * Otherwise, it never uninstall any bundles. 
-	 * 
-	 * Default: false
-	 */
-	public static final String PROP_KEY_EXCLUSIVE_INSTALLATION = "org.eclipse.equinox.simpleconfigurator.exclusiveInstallation"; //$NON-NLS-1$
-
-	/**
-	 * If BundleContext#getProperty(PROP_KEY_USE_REFERENCE) does not equal "false" ignoring case, 
-	 * when a SimpleConfigurator installs a bundle, "reference:" is added to its bundle location in order to avoid
-	 * caching its bundle jar.  Otherwise, it will add nothing to any bundle location.
-	 * 	 
-	 * Default: true
-	 */
-	public static final String PROP_KEY_USE_REFERENCE = "org.eclipse.equinox.simpleconfigurator.useReference"; //$NON-NLS-1$
-
-	/**
-	 * BundleContext#getProperty(PROP_KEY_CONFIGURL) is used for SimpleConfigurator to do life cycle control of bundles.
-	 * The file specified by the returned url is read by SimpleConfigurator and do life cycle control according to it.
-	 * If improper value or null is returned, SimpleConfigurator doesn't do it.
-	 * 
-	 * Default: null
-	 */
-	public static final String PROP_KEY_CONFIGURL = "org.eclipse.equinox.simpleconfigurator.configUrl"; //$NON-NLS-1$
-
-	public static final String CONFIG_LIST = "bundles.info"; //$NON-NLS-1$
-	public static final String CONFIGURATOR_FOLDER = "org.eclipse.equinox.simpleconfigurator"; //$NON-NLS-1$
-
-	public static final String TARGET_CONFIGURATOR_NAME = "org.eclipse.equinox.simpleconfigurator"; //$NON-NLS-1$
-
-	public static final String PARAMETER_BASEURL = "org.eclipse.equinox.simpleconfigurator.baseUrl"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java
deleted file mode 100644
index 153e12b..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.utils;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-
-public class SimpleConfiguratorUtils {
-
-	public static List readConfiguration(URL url) throws IOException {
-		List bundles = new ArrayList();
-		try {
-			BufferedReader r = new BufferedReader(new InputStreamReader(url.openStream()));
-
-			String line;
-			try {
-				URL baseUrl = new URL(url, "./"); //$NON-NLS-1$
-				while ((line = r.readLine()) != null) {
-					if (line.startsWith("#")) //$NON-NLS-1$
-						continue;
-					line = line.trim();// symbolicName,version,location,startlevel,expectedState
-					if (line.length() == 0)
-						continue;
-
-					// (expectedState is an integer).
-					if (line.startsWith(SimpleConfiguratorConstants.PARAMETER_BASEURL + "=")) { //$NON-NLS-1$
-						String baseUrlSt = line.substring((SimpleConfiguratorConstants.PARAMETER_BASEURL + "=").length()); //$NON-NLS-1$
-						if (!baseUrlSt.endsWith("/")) //$NON-NLS-1$
-							baseUrlSt += "/"; //$NON-NLS-1$
-						baseUrl = new URL(url, baseUrlSt);
-						continue;
-					}
-					StringTokenizer tok = new StringTokenizer(line, ",", true); //$NON-NLS-1$
-					String symbolicName = tok.nextToken();
-					if (symbolicName.equals(",")) //$NON-NLS-1$
-						symbolicName = null;
-					else
-						tok.nextToken(); // ,
-
-					String version = tok.nextToken();
-					if (version.equals(",")) //$NON-NLS-1$
-						version = null;
-					else
-						tok.nextToken(); // ,
-
-					String urlSt = tok.nextToken();
-					if (urlSt.equals(",")) { //$NON-NLS-1$
-						if (symbolicName != null && version != null)
-							urlSt = symbolicName + "_" + version + ".jar"; //$NON-NLS-1$ //$NON-NLS-2$
-						else
-							urlSt = null;
-					} else
-						tok.nextToken(); // ,
-					try {
-						new URL(urlSt);
-					} catch (MalformedURLException e) {
-						urlSt = Utils.getUrlInFull(urlSt, baseUrl).toExternalForm();
-					}
-
-					int sl = Integer.parseInt(tok.nextToken().trim());
-					tok.nextToken(); // ,
-					boolean markedAsStarted = Boolean.valueOf(tok.nextToken()).booleanValue();
-					// URL urlBundle = null;
-					// try {
-					// urlBundle = new URL(urlSt);
-					// } catch (MalformedURLException e) {
-					// urlBundle = Utils.getFullUrl(urlSt, baseUrl);
-					// }
-
-					BundleInfo bInfo = new BundleInfo(symbolicName, version, urlSt, sl, markedAsStarted);
-					bundles.add(bInfo);
-				}
-			} finally {
-				try {
-					r.close();
-				} catch (IOException ex) {
-					// ignore
-				}
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-			// TODO log something
-			// bundleInfos = NULL_BUNDLEINFOS;
-		}
-		return bundles;
-	}
-
-	public static void transferStreams(InputStream source, OutputStream destination) throws IOException {
-		source = new BufferedInputStream(source);
-		destination = new BufferedOutputStream(destination);
-		try {
-			byte[] buffer = new byte[8192];
-			while (true) {
-				int bytesRead = -1;
-				if ((bytesRead = source.read(buffer)) == -1)
-					break;
-				destination.write(buffer, 0, bytesRead);
-			}
-		} finally {
-			try {
-				source.close();
-			} catch (IOException e) {
-				// ignore
-			}
-			try {
-				destination.close();
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/StateResolverUtils.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/StateResolverUtils.java
deleted file mode 100644
index 0b1b5f9..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/StateResolverUtils.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.utils;
-
-import java.util.*;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.*;
-
-public class StateResolverUtils {
-
-	public static Bundle[] getAdditionalRefresh(Collection currentResolved, BundleContext context) {
-		ServiceReference ref = context.getServiceReference(PlatformAdmin.class.getName());
-		if (ref == null)
-			return new Bundle[0];
-		PlatformAdmin platformAdmin = (PlatformAdmin) context.getService(ref);
-		if (platformAdmin == null)
-			return new Bundle[0];
-		try {
-			State state = platformAdmin.getState(false);
-			BundleDescription[] bundles = state.getBundles();
-			HashSet results = new HashSet(bundles.length);
-			getAdditionRefresh(bundles, state, currentResolved, results, context);
-			return (Bundle[]) results.toArray(new Bundle[results.size()]);
-		} finally {
-			context.ungetService(ref);
-		}
-	}
-
-	private static void getAdditionRefresh(BundleDescription[] bundleDescriptions, State state, Collection currentResolved, Set results, BundleContext context) {
-		bundles: for (int i = 0; i < bundleDescriptions.length; i++) {
-			Bundle bundle = context.getBundle(bundleDescriptions[i].getBundleId());
-			if (bundle == null)
-				continue bundles;
-			// look for a fragment which adds a conflicted constraint to an already resolved host
-			if (!bundleDescriptions[i].isResolved() && bundleDescriptions[i].getHost() != null) {
-				ResolverError[] errors = state.getResolverErrors(bundleDescriptions[i]);
-				for (int j = 0; j < errors.length; j++) {
-					if ((errors[j].getType() & ResolverError.FRAGMENT_CONFLICT) != 0) {
-						BundleDescription[] possibleHosts = state.getBundles(bundleDescriptions[i].getHost().getName());
-						for (int k = 0; k < possibleHosts.length; k++) {
-							Bundle hostBundle = context.getBundle(possibleHosts[k].getBundleId());
-							if (hostBundle != null && currentResolved.contains(hostBundle) && bundleDescriptions[i].getHost().isSatisfiedBy(possibleHosts[k]))
-								results.add(hostBundle);
-						}
-					}
-				}
-				continue bundles;
-			}
-			if (!currentResolved.contains(bundle) || !bundleDescriptions[i].isResolved())
-				continue bundles;
-			// look for optional imports which are unresolved but are resolvable
-			ImportPackageSpecification[] imports = bundleDescriptions[i].getImportPackages();
-			for (int j = 0; j < imports.length; j++)
-				if (ImportPackageSpecification.RESOLUTION_OPTIONAL.equals(imports[j].getDirective(Constants.RESOLUTION_DIRECTIVE)) && !imports[j].isResolved() && state.getStateHelper().isResolvable(imports[j])) {
-					results.add(bundle);
-					continue bundles;
-				}
-			// look for optional requires which are unresolved but are resolvable
-			BundleSpecification[] requires = bundleDescriptions[i].getRequiredBundles();
-			for (int j = 0; j < requires.length; j++)
-				if (requires[j].isOptional() && !requires[j].isResolved() && state.getStateHelper().isResolvable(requires[j])) {
-					results.add(bundle);
-					continue bundles;
-				}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/Utils.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/Utils.java
deleted file mode 100644
index 4100ed3..0000000
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/Utils.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.simpleconfigurator.utils;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.jar.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.eclipse.equinox.internal.simpleconfigurator.Activator;
-
-/**
- * This class was copied from 
- * org.eclipse.equinox.internal.frameworkadmin.utils package of
- * org.eclipse.equinox.frameworkadmin plugin on March 3 2007.
- * 
- * The reason why it was copied is to make simpleconfigurator dependent on 
- * any bundles(org.eclipse.equinox.framework).
- * 
- */
-
-public class Utils {
-	private final static String PATH_SEP = "/"; //$NON-NLS-1$
-
-	public static URL checkFullUrl(URL url, String urlName) throws IllegalArgumentException {//throws ManipulatorException {
-		if (url == null)
-			throw new IllegalArgumentException(urlName + " is null");
-		if (!url.getProtocol().endsWith("file"))
-			return url;
-		File file = new File(url.getFile());
-		if (!file.isAbsolute())
-			throw new IllegalArgumentException(urlName + "(" + url + ") does not have absolute path");
-		if (file.getAbsolutePath().startsWith(PATH_SEP))
-			return url;
-		try {
-			return getUrl("file", null, PATH_SEP + file.getAbsolutePath());
-		} catch (MalformedURLException e) {
-			throw new IllegalArgumentException(urlName + "(" + "file:" + PATH_SEP + file.getAbsolutePath() + ") is not fully quallified");
-		}
-	}
-
-	public static void deleteDir(File file) throws IOException {
-		if (file.isFile()) {
-			if (!file.delete())
-				throw new IOException("Fail to delete File(" + file.getAbsolutePath() + ")");
-			return;
-		}
-		File[] children = file.listFiles();
-		for (int i = 0; i < children.length; i++) {
-			deleteDir(children[i]);
-		}
-		if (!file.delete())
-			throw new IOException("Fail to delete Dir(" + file.getAbsolutePath() + ")");
-		return;
-	}
-
-	public static BundleInfo[] getBundleInfosFromList(List list) {
-		if (list == null)
-			return new BundleInfo[0];
-		BundleInfo[] ret = new BundleInfo[list.size()];
-		list.toArray(ret);
-		return ret;
-	}
-
-	public static Dictionary getOSGiManifest(String location) {
-		if (location.startsWith("file:") && !location.endsWith(".jar"))
-			return basicLoadManifest(new File(location.substring("file:".length())));
-
-		try {
-			URL url = new URL("jar:" + location + "!/");
-			JarURLConnection jarConnection = (JarURLConnection) url.openConnection();
-			Manifest manifest = jarConnection.getManifest();
-			Attributes attributes = manifest.getMainAttributes();
-			Hashtable table = new Hashtable();
-			for (java.util.Iterator ite = attributes.keySet().iterator(); ite.hasNext();) {
-
-				String key = ite.next().toString();
-				// While table contains non OSGiManifest, it doesn't matter.
-				table.put(key, attributes.getValue(key));
-			}
-			return table;
-		} catch (MalformedURLException e1) {
-			if (Activator.DEBUG) {
-				System.err.println("location=" + location);
-				e1.printStackTrace();
-			}
-		} catch (IOException e) {
-			if (Activator.DEBUG) {
-				System.err.println("location=" + location);
-				e.printStackTrace();
-			}
-		}
-		return null;
-	}
-
-	//Return a dictionary representing a manifest. The data may result from plugin.xml conversion  
-	private static Dictionary basicLoadManifest(File bundleLocation) {
-		InputStream manifestStream = null;
-		ZipFile jarFile = null;
-		try {
-			String fileExtention = bundleLocation.getName();
-			fileExtention = fileExtention.substring(fileExtention.lastIndexOf('.') + 1);
-			if ("jar".equalsIgnoreCase(fileExtention) && bundleLocation.isFile()) { //$NON-NLS-1$
-				jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ);
-				ZipEntry manifestEntry = jarFile.getEntry(JarFile.MANIFEST_NAME);
-				if (manifestEntry != null) {
-					manifestStream = jarFile.getInputStream(manifestEntry);
-				}
-			} else {
-				manifestStream = new BufferedInputStream(new FileInputStream(new File(bundleLocation, JarFile.MANIFEST_NAME)));
-			}
-		} catch (IOException e) {
-			//ignore
-		}
-		Dictionary manifest = null;
-
-		//It is not a manifest, but a plugin or a fragment
-
-		if (manifestStream != null) {
-			try {
-				Manifest m = new Manifest(manifestStream);
-				manifest = manifestToProperties(m.getMainAttributes());
-			} catch (IOException ioe) {
-				return null;
-			} finally {
-				try {
-					manifestStream.close();
-				} catch (IOException e1) {
-					//Ignore
-				}
-				try {
-					if (jarFile != null)
-						jarFile.close();
-				} catch (IOException e2) {
-					//Ignore
-				}
-			}
-		}
-		return manifest;
-	}
-
-	private static Properties manifestToProperties(Attributes d) {
-		Iterator iter = d.keySet().iterator();
-		Properties result = new Properties();
-		while (iter.hasNext()) {
-			Attributes.Name key = (Attributes.Name) iter.next();
-			result.put(key.toString(), d.get(key));
-		}
-		return result;
-	}
-
-	public static URL getUrl(String protocol, String host, String file) throws MalformedURLException {// throws ManipulatorException {
-		file = Utils.replaceAll(file, File.separator, "/");
-		return new URL(protocol, host, file);
-	}
-
-	public static URL getUrlInFull(String path, URL from) throws MalformedURLException {//throws ManipulatorException {
-		Utils.checkFullUrl(from, "from");
-		path = Utils.replaceAll(path, File.separator, "/");
-		String fromSt = Utils.removeLastCh(from.toExternalForm(), '/');
-		if (path.startsWith("/")) {
-			String fileSt = from.getFile();
-			return new URL(fromSt.substring(0, fromSt.lastIndexOf(fileSt) - 1) + path);
-		}
-		return new URL(fromSt + "/" + path);
-	}
-
-	public static String removeLastCh(String target, char ch) {
-		while (target.charAt(target.length() - 1) == ch) {
-			target = target.substring(0, target.length() - 1);
-		}
-		return target;
-	}
-
-	public static String replaceAll(String st, String oldSt, String newSt) {
-		int index = -1;
-		while ((index = st.indexOf(oldSt)) != -1) {
-			st = st.substring(0, index) + newSt + st.substring(index + oldSt.length());
-		}
-		return st;
-	}
-
-	public static void log(int level, Object obj, String method, String message, Throwable e) {
-		String msg = "";
-		if (method == null) {
-			if (obj != null)
-				msg = "(" + obj.getClass().getName() + ")";
-		} else if (obj == null)
-			msg = "[" + method + "]" + message;
-		else
-			msg = "[" + method + "](" + obj.getClass().getName() + ")";
-		msg += message;
-
-//		if (LogService logService = Activator.getLogService();
-//		if (logService != null) {
-//			logService.log(level, msg, e);
-//		} else {
-		String levelSt = null;
-		if (level == 1)
-			levelSt = "DEBUG";
-		else if (level == 2)
-			levelSt = "INFO";
-		else if (level == 3)
-			levelSt = "WARNING";
-		else if (level == 4) {
-			levelSt = "ERROR";
-//				useLog = true;
-		}
-//			if (useLog) {
-		System.err.println("[" + levelSt + "]" + msg);
-		if (e != null)
-			e.printStackTrace();
-//			}
-	}
-}
diff --git a/org.eclipse.equinox.p2.releng/.project b/org.eclipse.equinox.p2.releng/.project
deleted file mode 100644
index 5383151..0000000
--- a/org.eclipse.equinox.p2.releng/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.releng</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/HOW TO RUN.txt b/org.eclipse.equinox.p2.releng/HOW TO RUN.txt
deleted file mode 100644
index 4db026a..0000000
--- a/org.eclipse.equinox.p2.releng/HOW TO RUN.txt
+++ /dev/null
@@ -1 +0,0 @@
-See http://wiki.eclipse.org/Equinox_Provisioning_Getting_Started
\ No newline at end of file
diff --git a/org.eclipse.equinox.p2.releng/Provisioning base.target b/org.eclipse.equinox.p2.releng/Provisioning base.target
deleted file mode 100644
index a2b01aa..0000000
--- a/org.eclipse.equinox.p2.releng/Provisioning base.target
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.2"?>
-
-<target name="Provisioning base">
-
-   <location path="d:\targets\provisioning-base"/>
-
-   <content>
-      <plugins>
-         <plugin id="org.eclipse.core.jobs"/>
-         <plugin id="org.eclipse.equinox.app"/>
-         <plugin id="org.eclipse.equinox.common"/>
-         <plugin id="org.eclipse.equinox.launcher"/>
-         <plugin id="org.eclipse.equinox.registry"/>
-         <plugin id="org.eclipse.osgi"/>
-         <plugin id="org.eclipse.osgi.services"/>
-         <plugin id="org.junit"/>
-      </plugins>
-      <features>
-      </features>
-      <extraLocations>
-         <location path="D:\targets\equinox\eclipse"/>
-      </extraLocations>
-   </content>
-
-</target>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/.project
deleted file mode 100644
index 7d1eaed..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.agent.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties
deleted file mode 100644
index d88e78e..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml
deleted file mode 100644
index f0f6bf9..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.agent.feature/feature.xml
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.agent.feature"
-      label="Equinox Provisioning Agent Feature"
-      version="1.0.0.qualifier">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.engine"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.jarprocessor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.artifact.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.identity"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.exemplarysetup"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.eclipse"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.natives"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.equinox"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.console"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.provider.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator.manipulator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui.admin"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui.admin.rcp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatechecker"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.garbagecollector"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.generator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatesite"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.pb"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/.project
deleted file mode 100644
index 94ed94a..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.compatibility.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/build.properties
deleted file mode 100644
index d88e78e..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/feature.xml
deleted file mode 100644
index 30c827a..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.compatibility.feature/feature.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.compatibility.feature"
-      label="p2 Compatibility Feature"
-      version="1.0.0.qualifier">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.equinox.p2.agent.feature" version="1.0.0.qualifier"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.equinox.p2.reconciler.dropins"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.directorywatcher"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.generator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/.project
deleted file mode 100644
index 8c3f5e3..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.director.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties
deleted file mode 100644
index d88e78e..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/feature.xml
deleted file mode 100644
index d7f8d56..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.director.feature/feature.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.director.feature"
-      label="Equinox Provisioning Director Application Feature"
-      version="1.0.0.qualifier">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director.app"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.engine"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.jarprocessor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.artifact.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.identity"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.exemplarysetup"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.eclipse"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.natives"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.equinox"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.console"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.provider.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator.manipulator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.garbagecollector"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.pb"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/.project
deleted file mode 100644
index f062146..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.generator.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties
deleted file mode 100644
index 32d1ed1..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/build.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml
-customBuildCallbacks=customBuildCallbacks.xml
-customBuildCallbacks.inheritall=true
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/customBuildCallbacks.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/customBuildCallbacks.xml
deleted file mode 100644
index d04cc19..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/customBuildCallbacks.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<!-- ===================================================================== -->
-<!-- Custom targets called from a project's generated build.xml            -->
-<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
-<!-- ===================================================================== -->
-<project name="Build specific targets and properties" default="noDefault">
-
-	<!-- ===================================================================== -->
-	<!-- Default target                                                        -->
-	<!-- ===================================================================== -->
-	<target name="noDefault">
-		<echo message="This file must be called with explicit targets" />
-	</target>
-	
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target gather.bin.parts                        -->
-	<!-- Available parameters :                                                -->
-	<!--  destination.temp.folder - the directory plugins will be collected to -->
-	<!--  feature.directory - the directory containing the resulting feature   -->
-	<!-- ===================================================================== -->
-	<target name="pre.gather.bin.parts">
-	</target>
-	
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target gather.bin.parts                         -->
-	<!-- Available parameters :                                                -->
-	<!--  destination.temp.folder - the directory plugins will be collected to -->
-	<!--  feature.directory - the directory containing the resulting feature   -->
-	<!-- ===================================================================== -->
-	<target name="post.gather.bin.parts">
-		<!-- load the properties file to get the bundle versions -->
-		<property file="${buildDirectory}/finalPluginsVersions.properties"/>
-		<!-- zip up the simple.configurator into the generator bundle -->
-		<zip 
-			basedir="${destination.temp.folder}/org.eclipse.equinox.simpleconfigurator_${org.eclipse.equinox.simpleconfigurator}"
-			destfile="${destination.temp.folder}/org.eclipse.equinox.p2.metadata.generator_${org.eclipse.equinox.p2.metadata.generator}/org.eclipse.equinox.simpleconfigurator.jar">
-		</zip>
-	</target>
-
-</project>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/feature.xml
deleted file mode 100644
index dd1b785..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.generator.feature/feature.xml
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.generator.feature"
-      label="Equinox Provisioning Generator"
-      version="1.0.0.qualifier">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.eclipse.equinox.p2.artifact.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.console"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.engine"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.exemplarysetup"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.jarprocessor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.generator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.eclipse"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.natives"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.identity"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.provider.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.equinox"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator.manipulator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.garbagecollector"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.pb"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/.project
deleted file mode 100644
index fdb00c9..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.selfhosting.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/build.properties
deleted file mode 100644
index d88e78e..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/feature.xml
deleted file mode 100644
index 6bdf518..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.selfhosting.feature/feature.xml
+++ /dev/null
@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.selfhosting.feature"
-      label="Equinox Provisioning Self-hosting Feature"
-      version="1.0.0.qualifier">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director.app"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.engine"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.jarprocessor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.artifact.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.identity"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.exemplarysetup"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.eclipse"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.natives"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.equinox"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.console"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.provider.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator.manipulator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.selfhosting"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.garbagecollector"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.generator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.pb"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/.project
deleted file mode 100644
index aa0690c..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.user.ui.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/build.properties
deleted file mode 100644
index d88e78e..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/feature.xml
deleted file mode 100644
index feced1f..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.feature/feature.xml
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.user.ui.feature"
-      label="Equinox Provisioning User UI Feature"
-      version="1.0.0.qualifier">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
-   </license>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.engine"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.jarprocessor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.artifact.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.identity"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.exemplarysetup"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.eclipse"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.natives"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.equinox"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.console"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.provider.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator.manipulator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui.sdk"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatechecker"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.garbagecollector"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.directorywatcher"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.reconciler.dropins"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.generator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatesite"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.pb"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/.project
deleted file mode 100644
index aa0690c..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.user.ui.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/build.properties
deleted file mode 100644
index a57a171..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,license.html,epl-v10.html
-src.includes = license.html,epl-v10.html
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/epl-v10.html b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/feature.xml
deleted file mode 100644
index 9800278..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/feature.xml
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.user.ui.sdk"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.4"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.equinox.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.artifact.repository.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.console.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.core.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.directorywatcher.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.engine.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.exemplarysetup.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.garbagecollector.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.jarprocessor.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.generator.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.repository.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.reconciler.dropins.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.eclipse.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.natives.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui.sdk.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatechecker.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatesite.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator.manipulator.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/license.html b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/license.html
deleted file mode 100644
index c6af966..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui.sdk/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/.project b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/.project
deleted file mode 100644
index 14cf063..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.equinox.p2.user.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/build.properties
deleted file mode 100644
index 9e53b4e..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               license.html,\
-               epl-v10.html,\
-               feature.properties,\
-               eclipse_update_120.jpg
-src.includes = license.html,epl-v10.html
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/eclipse_update_120.jpg b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/epl-v10.html b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.properties
deleted file mode 100644
index 17901cc..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.properties
+++ /dev/null
@@ -1,128 +0,0 @@
-# "featureName" property - name of the feature
-featureName=Equinox Provisioning Platform
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Eclipse Provisioning Platform
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2008 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.xml b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.xml
deleted file mode 100644
index c2fa4e4..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/feature.xml
+++ /dev/null
@@ -1,221 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.equinox.p2.user.ui"
-      label="%featureName"
-      version="1.0.0.qualifier"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.4"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.equinox.p2.director"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.engine"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.jarprocessor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.artifact.repository"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.identity"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.exemplarysetup"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.eclipse"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.touchpoint.natives"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.frameworkadmin.equinox"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.console"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.provider.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.simpleconfigurator.manipulator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.ui.sdk"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatechecker"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.garbagecollector"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.directorywatcher"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.reconciler.dropins"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.metadata.generator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.equinox.p2.updatesite"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.sat4j.pb"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/license.html b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/license.html
deleted file mode 100644
index c6af966..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/build.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/build.properties
deleted file mode 100644
index 5278417..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes =\
-epl-v10.html,\
-eclipse_update_120.jpg,\
-feature.xml,\
-feature.properties,\
-license.html
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/eclipse_update_120.jpg b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/epl-v10.html b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/feature.properties b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/feature.properties
deleted file mode 100644
index ca570e6..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse P2 Developer Resources
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Common OS-independent API documentation and source code zips for the Eclipse Platform.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2008 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/license.html b/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/license.html
deleted file mode 100644
index c6af966..0000000
--- a/org.eclipse.equinox.p2.releng/buildtime-features/org.eclipse.equinox.p2.user.ui/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/org.eclipse.equinox.p2.releng/projectSet-extssh.psf b/org.eclipse.equinox.p2.releng/projectSet-extssh.psf
deleted file mode 100644
index c68870c..0000000
--- a/org.eclipse.equinox.p2.releng/projectSet-extssh.psf
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<psf version="2.0">
-<provider id="org.eclipse.team.cvs.core.cvsnature">
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf,org.eclipse.ecf"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.core.identity,org.eclipse.ecf.core.identity"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.filetransfer,org.eclipse.ecf.filetransfer"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.provider.filetransfer,org.eclipse.ecf.provider.filetransfer"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.jarprocessor"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.director.app"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.directorywatcher"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.touchpoint.eclipse"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.engine"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.installer,org.eclipse.equinox.p2.installer"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.console,org.eclipse.equinox.p2.console"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.touchpoint.natives"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests,org.eclipse.equinox.p2.tests"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.exemplarysetup,org.eclipse.equinox.p2.exemplarysetup"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.garbagecollector"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.equinox.p2.reconciler.dropins"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.core"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/org.eclipse.equinox.p2.releng,org.eclipse.equinox.p2.releng"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.metadata.generator"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.artifact.optimizers"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.processors,org.eclipse.equinox.p2.artifact.processors"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.artifact.repository"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.metadata.repository"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.p2.selfhosting"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui,org.eclipse.equinox.p2.ui"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.ui.admin"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.ui.sdk"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin.rcp,org.eclipse.equinox.p2.ui.admin.rcp"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.p2.updatechecker"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.updatesite"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tools,org.eclipse.equinox.p2.tools"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.simpleconfigurator.manipulator"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.test,org.eclipse.equinox.frameworkadmin.test"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.frameworkadmin.equinox"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.apache.xerces,org.apache.xerces,v2_8_0"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.apache.xml.resolver,org.apache.xml.resolver,v1_1_0"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff,ie.wombat.jbdiff"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff.test,ie.wombat.jbdiff.test"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.sar,org.eclipse.equinox.p2.sar"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.core,org.sat4j.core_v2.0.0,v2_0_0"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.pb,org.sat4j.pb_v2.0.0,v2_0_0"/>
-</provider>
-</psf>
diff --git a/org.eclipse.equinox.p2.releng/projectSet.psf b/org.eclipse.equinox.p2.releng/projectSet.psf
deleted file mode 100644
index 7e19bea..0000000
--- a/org.eclipse.equinox.p2.releng/projectSet.psf
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<psf version="2.0">
-<provider id="org.eclipse.team.cvs.core.cvsnature">
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf,org.eclipse.ecf"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.core.identity,org.eclipse.ecf.core.identity"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.filetransfer,org.eclipse.ecf.filetransfer"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.provider.filetransfer,org.eclipse.ecf.provider.filetransfer"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.jarprocessor"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.director.app"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.directorywatcher"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.touchpoint.eclipse"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.engine"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.installer,org.eclipse.equinox.p2.installer"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.console,org.eclipse.equinox.p2.console"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.touchpoint.natives"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests,org.eclipse.equinox.p2.tests"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.exemplarysetup,org.eclipse.equinox.p2.exemplarysetup"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.garbagecollector"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.equinox.p2.reconciler.dropins"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.core"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/org.eclipse.equinox.p2.releng,org.eclipse.equinox.p2.releng"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.metadata.generator"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.optimizers,org.eclipse.equinox.p2.artifact.optimizers"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.processors,org.eclipse.equinox.p2.artifact.processors"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.artifact.repository"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.metadata.repository"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.selfhosting,org.eclipse.equinox.p2.selfhosting"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui,org.eclipse.equinox.p2.ui"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin,org.eclipse.equinox.p2.ui.admin"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.ui.sdk"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui.admin.rcp,org.eclipse.equinox.p2.ui.admin.rcp"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.p2.updatechecker"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatesite,org.eclipse.equinox.p2.updatesite"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tools,org.eclipse.equinox.p2.tools"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff,ie.wombat.jbdiff"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/ie.wombat.jbdiff.test,ie.wombat.jbdiff.test"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.sar,org.eclipse.equinox.p2.sar"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.frameworkadmin.equinox"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.test,org.eclipse.equinox.frameworkadmin.test"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.simpleconfigurator.manipulator"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.equinox/p2/bundles/org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.apache.xerces,org.apache.xerces,v2_8_0"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.apache.xml.resolver,org.apache.xml.resolver,v1_1_0"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.core,org.sat4j.core_v2.0.0,v2_0_0"/>
-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/tools,org.eclipse.orbit/org.sat4j.pb,org.sat4j.pb_v2.0.0,v2_0_0"/>
-</provider>
-</psf>